Zemismart ZMZ609-2
| Model | ZMZ609-2 |
| Vendor | Zemismart |
| Description | Zigbee neutral touchscreen switch 2 gang with power monitoring |
| Exposes | switch (state), countdown_l1, countdown_l2, power_on_behavior, radar_switch, child_lock, backlight, radar_distance, screen_off_time, name, energy, current, power, voltage |
| Picture | ![]() |
Notes
Weather forecast display
The touchscreen also shows the current date, time and weather. The weather part is not read from the device but pushed to it: publish temperature_0/humidity_0/condition_0 (today) and temperature_1/humidity_1/condition_1, temperature_2/humidity_2/condition_2 (next two days) to zigbee2mqtt/FRIENDLY_NAME/set, e.g.:
{"temperature_0": 21, "humidity_0": 55, "condition_0": "sunny"}
These properties have no corresponding expose (there is nothing to configure in the UI), they only exist as a write-only channel meant to be fed periodically by an automation pulling from a weather service. Possible condition_X values: sunny, heavy_rain, cloudy, sandstorm, light_snow, snow, freezing_fog, rainstorm, shower, dust, spit, sleet, yin, freezing_rain, rain, fog, heavy_shower, heavy_snow, heavy_downpour, blizzard, hailstone, snow_shower, haze, thunder_shower.
Options
How to use device type specific configuration
time_start: Reply to Tuya-specific time synchronization requests: "1970" - Reply with seconds since 1970/01/01 (recommended, should stop the device from asking), "2000" - Reply with seconds since 2000/01/01 (use if the weekday is wrong with 1970), "off" - Don't reply (use if replying causes too much traffic). Default for this device: "1970". The value must be one of1970,2000,offenergy_calibration: Calibrates the energy value (percentual offset), takes into effect on next report of device. The value must be a number.energy_precision: Number of digits after decimal point for energy, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3current_calibration: Calibrates the current value (percentual offset), takes into effect on next report of device. The value must be a number.current_precision: Number of digits after decimal point for current, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3power_calibration: Calibrates the power value (percentual offset), takes into effect on next report of device. The value must be a number.power_precision: Number of digits after decimal point for power, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3voltage_calibration: Calibrates the voltage value (percentual offset), takes into effect on next report of device. The value must be a number.voltage_precision: Number of digits after decimal point for voltage, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of0and with a maximum value of3
Exposes
Switch (l1 endpoint)
The current state of this switch is in the published state under the state_l1 property (value is ON or OFF). To control this switch publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"state_l1": "ON"}, {"state_l1": "OFF"} or {"state_l1": "TOGGLE"}. It's not possible to read (/get) this value.
Switch (l2 endpoint)
The current state of this switch is in the published state under the state_l2 property (value is ON or OFF). To control this switch publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"state_l2": "ON"}, {"state_l2": "OFF"} or {"state_l2": "TOGGLE"}. It's not possible to read (/get) this value.
Countdown l1 (numeric)
Countdown for gang 1. Value can be found in the published state on the countdown_l1 property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"countdown_l1": NEW_VALUE}. The minimal value is 0 and the maximum value is 43200. The unit of this value is s.
Countdown l2 (numeric)
Countdown for gang 2. Value can be found in the published state on the countdown_l2 property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"countdown_l2": NEW_VALUE}. The minimal value is 0 and the maximum value is 43200. The unit of this value is s.
Power-on behavior (enum)
Controls the behavior when the device is powered on after power loss. Value can be found in the published state on the power_on_behavior property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"power_on_behavior": NEW_VALUE}. The possible values are: off, previous, on.
Power-on behavior (enum, l1 endpoint)
Controls the behavior when the device is powered on after power loss. Value can be found in the published state on the power_on_behavior_l1 property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"power_on_behavior_l1": NEW_VALUE}. The possible values are: off, previous, on.
Power-on behavior (enum, l2 endpoint)
Controls the behavior when the device is powered on after power loss. Value can be found in the published state on the power_on_behavior_l2 property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"power_on_behavior_l2": NEW_VALUE}. The possible values are: off, previous, on.
Radar switch (binary)
Radar switch. Value can be found in the published state on the radar_switch property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"radar_switch": NEW_VALUE}. If value equals ON radar switch is ON, if OFF OFF.
Child lock (binary)
Enables/disables physical input on the device. Value can be found in the published state on the child_lock property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"child_lock": NEW_VALUE}. If value equals LOCK child lock is ON, if UNLOCK OFF.
Backlight (numeric)
Backlight brightness. Value can be found in the published state on the backlight property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"backlight": NEW_VALUE}. The minimal value is 0 and the maximum value is 100. The unit of this value is %.
Radar distance (enum)
Radar distance. Value can be found in the published state on the radar_distance property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"radar_distance": NEW_VALUE}. The possible values are: short, medium_short, medium, medium_long, long.
Screen off time (enum)
Screen off time. Value can be found in the published state on the screen_off_time property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"screen_off_time": NEW_VALUE}. The possible values are: none, 10, 20, 30, 45, 60.
Name (text, l1 endpoint)
Display name for gang 1. Value can be found in the published state on the name_l1 property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"name_l1": NEW_VALUE}.
Name (text, l2 endpoint)
Display name for gang 2. Value can be found in the published state on the name_l2 property. It's not possible to read (/get) this value. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"name_l2": NEW_VALUE}.
Energy (numeric)
Sum of consumed energy. Value can be found in the published state on the energy property. It's not possible to read (/get) or write (/set) this value. The unit of this value is kWh.
Current (numeric)
Instantaneous measured electrical current. Value can be found in the published state on the current property. It's not possible to read (/get) or write (/set) this value. The unit of this value is A.
Power (numeric)
Instantaneous measured power. Value can be found in the published state on the power property. It's not possible to read (/get) or write (/set) this value. The unit of this value is W.
Voltage (numeric)
Measured electrical potential value. Value can be found in the published state on the voltage property. It's not possible to read (/get) or write (/set) this value. The unit of this value is V.

