prefixkit Ask an engineerAsk Support RU

Zigbee devices Smart plugs with energy metering

Ensystec Ensystec-Leak-Protect-Zigbee

Leak protect controller with Zigbee module. Works with Zigbee2MQTT with no vendor hub or cloud: it pairs with a Zigbee stick and shows up in Home Assistant.

Vendor
Ensystec
Model
Ensystec-Leak-Protect-Zigbee
Type
Smart plugs with energy metering
Power
battery: an end device, does not extend the mesh
Firmware updates (OTA)
yes, through Zigbee2MQTT

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
On / off (1)state_1—settable
Water leakwater_leak—read only
Low battery (1)battery_low_1—read only
Powerpowerunknown, mains (single phase), mains (3 phase), batteryread only
Alarm resetalarm_resetresetsettable
Force open (6)force_open_6Force opensettable
Input 1 water meter (7)input_1_water_meter_7m3 · 0…281474976710655settable
Input 1 divisor (7)input_1_divisor_71…16777215settable
Input 1 multiplier (7)input_1_multiplier_71…16777215settable
Input 2 water meter (8)input_2_water_meter_8m3 · 0…281474976710655settable
Input 2 divisor (8)input_2_divisor_81…16777215settable
Input 2 multiplier (8)input_2_multiplier_81…16777215settable
Input 3 water meter (9)input_3_water_meter_9m3 · 0…281474976710655settable
Input 3 divisor (9)input_3_divisor_91…16777215settable
Input 3 multiplier (9)input_3_multiplier_91…16777215settable
Input 4 water meter (10)input_4_water_meter_10m3 · 0…281474976710655settable
Input 4 divisor (10)input_4_divisor_101…16777215settable
Input 4 multiplier (10)input_4_multiplier_101…16777215settable
Input 5 water meter (11)input_5_water_meter_11m3 · 0…281474976710655settable
Input 5 divisor (11)input_5_divisor_111…16777215settable
Input 5 multiplier (11)input_5_multiplier_111…16777215settable
Input 6 water meter (12)input_6_water_meter_12m3 · 0…281474976710655settable
Input 6 divisor (12)input_6_divisor_121…16777215settable
Input 6 multiplier (12)input_6_multiplier_121…16777215settable
Input 7 water meter (13)input_7_water_meter_13m3 · 0…281474976710655settable
Input 7 divisor (13)input_7_divisor_131…16777215settable
Input 7 multiplier (13)input_7_multiplier_131…16777215settable
Input 8 water meter (14)input_8_water_meter_14m3 · 0…281474976710655settable
Input 8 divisor (14)input_8_divisor_141…16777215settable
Input 8 multiplier (14)input_8_multiplier_141…16777215settable
Input 9 water meter (15)input_9_water_meter_15m3 · 0…281474976710655settable
Input 9 divisor (15)input_9_divisor_151…16777215settable
Input 9 multiplier (15)input_9_multiplier_151…16777215settable
Input 10 water meter (16)input_10_water_meter_16m3 · 0…281474976710655settable
Input 10 divisor (16)input_10_divisor_161…16777215settable
Input 10 multiplier (16)input_10_multiplier_161…16777215settable
On / off (2)state_2—settable
Position percent (2)position_percent_2%read only
Electric valve connection out1 (2)electric_valve_connection_out1_2—read only
On / off (3)state_3—settable
Position percent (3)position_percent_3%read only
Electric valve connection out2 (3)electric_valve_connection_out2_3—read only
Input 1 config (7)input_1_config_7deactivated, sensor, metersettable
Input 2 config (8)input_2_config_8deactivated, sensor, metersettable
Input 3 config (9)input_3_config_9deactivated, sensor, metersettable
Input 4 config (10)input_4_config_10deactivated, sensor, metersettable
Input 5 config (11)input_5_config_11deactivated, sensor, metersettable
Input 6 config (12)input_6_config_12deactivated, sensor, metersettable
Input 7 config (13)input_7_config_13deactivated, sensor, metersettable
Input 8 config (14)input_8_config_14deactivated, sensor, metersettable
Input 9 config (15)input_9_config_15deactivated, sensor, metersettable
Input 10 config (16)input_10_config_16deactivated, sensor, metersettable
Input 1 leak detect (7)input_1_leak_detect_7—read only
Input 2 leak detect (8)input_2_leak_detect_8—read only
Input 3 leak detect (9)input_3_leak_detect_9—read only
Input 4 leak detect (10)input_4_leak_detect_10—read only
Input 5 leak detect (11)input_5_leak_detect_11—read only
Input 6 leak detect (12)input_6_leak_detect_12—read only
Input 7 leak detect (13)input_7_leak_detect_13—read only
Input 8 leak detect (14)input_8_leak_detect_14—read only
Input 9 leak detect (15)input_9_leak_detect_15—read only
Input 10 leak detect (16)input_10_leak_detect_16—read only
Input 1 wire break control (7)input_1_wire_break_control_7—read only
Input 2 wire break control (8)input_2_wire_break_control_8—read only
Input 3 wire break control (9)input_3_wire_break_control_9—read only
Input 4 wire break control (10)input_4_wire_break_control_10—read only
Input 5 wire break control (11)input_5_wire_break_control_11—read only
Input 6 wire break control (12)input_6_wire_break_control_12—read only
Input 7 wire break control (13)input_7_wire_break_control_13—read only
Input 8 wire break control (14)input_8_wire_break_control_14—read only
Input 9 wire break control (15)input_9_wire_break_control_15—read only
Input 10 wire break control (16)input_10_wire_break_control_16—read only
Channel 1 connection control (17)channel_1_connection_control_17—read only
Channel 2 connection control (18)channel_2_connection_control_18—read only
Channel 3 connection control (19)channel_3_connection_control_19—read only
Channel 4 connection control (20)channel_4_connection_control_20—read only
Channel 5 connection control (21)channel_5_connection_control_21—read only
Channel 6 connection control (22)channel_6_connection_control_22—read only
Channel 7 connection control (23)channel_7_connection_control_23—read only
Channel 8 connection control (24)channel_8_connection_control_24—read only
Channel 9 connection control (25)channel_9_connection_control_25—read only
Channel 10 connection control (26)channel_10_connection_control_26—read only
Channel 1 leak detect (17)channel_1_leak_detect_17—read only
Channel 2 leak detect (18)channel_2_leak_detect_18—read only
Channel 3 leak detect (19)channel_3_leak_detect_19—read only
Channel 4 leak detect (20)channel_4_leak_detect_20—read only
Channel 5 leak detect (21)channel_5_leak_detect_21—read only
Channel 6 leak detect (22)channel_6_leak_detect_22—read only
Channel 7 leak detect (23)channel_7_leak_detect_23—read only
Channel 8 leak detect (24)channel_8_leak_detect_24—read only
Channel 9 leak detect (25)channel_9_leak_detect_25—read only
Channel 10 leak detect (26)channel_10_leak_detect_26—read only
Channel 1 battery low (17)channel_1_battery_low_17—read only
Channel 2 battery low (18)channel_2_battery_low_18—read only
Channel 3 battery low (19)channel_3_battery_low_19—read only
Channel 4 battery low (20)channel_4_battery_low_20—read only
Channel 5 battery low (21)channel_5_battery_low_21—read only
Channel 6 battery low (22)channel_6_battery_low_22—read only
Channel 7 battery low (23)channel_7_battery_low_23—read only
Channel 8 battery low (24)channel_8_battery_low_24—read only
Channel 9 battery low (25)channel_9_battery_low_25—read only
Channel 10 battery low (26)channel_10_battery_low_26—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:

{
  "state_1": "ON",
  "water_leak": false,
  "battery_low_1": false,
  "power": 12.4,
  "alarm_reset": "reset",
  "force_open_6": "Force open",
  "input_1_water_meter_7": 140737488355328,
  "input_1_divisor_7": 8388608,
  "input_1_multiplier_7": 8388608,
  "input_2_water_meter_8": 140737488355328,
  "input_2_divisor_8": 8388608,
  "input_2_multiplier_8": 8388608,
  "input_3_water_meter_9": 140737488355328,
  "input_3_divisor_9": 8388608,
  "state_2": "ON",
  "state_3": "ON",
  "linkquality": 120
}

Send commands to zigbee2mqtt/my_device/set:

mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_1":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_2":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"state_3":"TOGGLE"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"input_1_config_7":"sensor"}'
mosquitto_pub -t zigbee2mqtt/my_device/set -m '{"input_2_config_8":"sensor"}'

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_1

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?