prefixkit Ask an engineerAsk Support RU

Zigbee devices Smart plugs with energy metering

Aqara WS-K08E

Light switch H2 EU (double rocker). Works with Zigbee2MQTT with no vendor hub or cloud: it pairs with a Zigbee stick and shows up in Home Assistant.

Vendor
Aqara
Model
WS-K08E
Type
Smart plugs with energy metering
Power
mains: usually a router that extends the mesh
Firmware updates (OTA)
yes, through Zigbee2MQTT
Also sold as
Aqara WS-K08D

Find it in shops: AliExpress

Links open a search in the shop; some are affiliate links: buying through them costs you nothing extra and supports this site. We do not sell devices or get them from manufacturers.

What it exposes

FeaturePropertyValuesControl
PowerpowerWread only
CurrentcurrentAread only
EnergyenergykWhread only
Led indicatorled_indicator—settable
Flip indicator lightflip_indicator_light—settable
On / off (left)state_left—settable
On / off (right)state_right—settable
Device temperaturedevice_temperature°Cread only
Power outage countpower_outage_count—read only
After power losspower_on_behavioron, previous, off, invertedsettable
Operation mode (left)operation_mode_leftdecoupled, control_relaysettable
Operation mode (right)operation_mode_rightdecoupled, control_relaysettable
Lock relay (left)lock_relay_left—settable
Lock relay (right)lock_relay_right—settable
Multi click (left_down)multi_click_left_down—settable
Multi click (right_down)multi_click_right_down—settable
Identifyidentifyidentifysettable
Action (button press)actionhold_left, hold_left_down, hold_right, hold_right_down, single_left, single_left_down, single_right, single_right_down …read only

MQTT: state and commands

Zigbee2MQTT publishes the device state to zigbee2mqtt/my_device (my_device is the name you give the device). An example message:

{
  "power": 12.4,
  "current": 0.06,
  "energy": 3.21,
  "led_indicator": false,
  "flip_indicator_light": false,
  "state_left": "ON",
  "state_right": "ON",
  "device_temperature": 31,
  "power_outage_count": 0,
  "power_on_behavior": "on",
  "operation_mode_left": "decoupled",
  "operation_mode_right": "decoupled",
  "lock_relay_left": false,
  "lock_relay_right": false,
  "linkquality": 120
}

Send commands to zigbee2mqtt/my_device/set:

mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_left":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_right":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"led_indicator":true}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"flip_indicator_light":true}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"power_on_behavior":"previous"}'

Watch the topics live from the browser: MQTT client.

Home Assistant automation example

Zigbee2MQTT creates Home Assistant entities from the device name. If it is called my_device, an automation in automations.yaml can look like this:

- alias: "Turn off when idle"
  mode: single
  triggers:
    - trigger: numeric_state
      entity_id: sensor.my_device_power
      below: 2
      for: "00:15:00"
  actions:
    - action: switch.turn_off
      target:
        entity_id: switch.my_device_left

Check the YAML: YAML checker.

How to pair it

  1. In Zigbee2MQTT click Permit join.
  2. Put the device in pairing mode: usually a long press of the reset button (5–10 s) until the LED blinks; bulbs: switch the power off and on 5–6 times.
  3. Keep the device close to the coordinator or a router while pairing.
  4. Give it a clear name: MQTT topics and Home Assistant entities are built from it.

Exact procedure and model notes: the device page in the Zigbee2MQTT docs. No coordinator yet: coordinator picker.

Similar devices

Idea?