Tuya ZG-204ZM
| Model | ZG-204ZM |
| Vendor | Tuya |
| Description | PIR 24Ghz human presence sensor |
| Exposes | presence, motion_state, illuminance, battery, fading_time, static_detection_distance, static_detection_sensitivity, indicator, motion_detection_mode, motion_detection_sensitivity |
| Picture | ![]() |
Notes
The manufacturer provides a good technical in-depth document that explains what the various settings mean, good default values for those, a recommended method for trimming these values and various other considerations (like installation position) to get good results.
There seem to be multiple versions of this device which visually look the same. Devices which are detected as Zigbee Model=TS0601, Zigbee Manufacturer=_TZE200_kb5noeto are known to get stuck in "presence detected" state. See this review for more user experiences. One of the suggestions is to remove residual solder-flux from the PCB and/or to resolder some components.
Options
How to use device type specific configuration
illuminance_calibration: Calibrates the illuminance value (percentual offset), takes into effect on next report of device. The value must be a number.
Exposes
Presence (binary)
Indicates whether the device detected presence. Value can be found in the published state on the presence property. It's not possible to read (/get) or write (/set) this value. If value equals true presence is ON, if false OFF.
Motion state (enum)
Motion state. Value can be found in the published state on the motion_state property. It's not possible to read (/get) or write (/set) this value. The possible values are: none, large, small, static.
Illuminance (numeric)
Measured illuminance. Value can be found in the published state on the illuminance property. It's not possible to read (/get) or write (/set) this value. The unit of this value is lx.
Battery (numeric)
Remaining battery in %, can take up to 24 hours before reported. Value can be found in the published state on the battery property. It's not possible to read (/get) or write (/set) this value. The minimal value is 0 and the maximum value is 100. The unit of this value is %.
Fading time (numeric)
Presence keep time. Value can be found in the published state on the fading_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 {"fading_time": NEW_VALUE}. The minimal value is 0 and the maximum value is 28800. The unit of this value is s.
Static detection distance (numeric)
Static detection distance. Value can be found in the published state on the static_detection_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 {"static_detection_distance": NEW_VALUE}. The minimal value is 0 and the maximum value is 6. The unit of this value is m.
Static detection sensitivity (numeric)
Static detection sensitivity. Value can be found in the published state on the static_detection_sensitivity 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 {"static_detection_sensitivity": NEW_VALUE}. The minimal value is 0 and the maximum value is 10. The unit of this value is x.
Indicator (binary)
LED indicator mode. Value can be found in the published state on the indicator 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 {"indicator": NEW_VALUE}. If value equals ON indicator is ON, if OFF OFF.
Motion detection mode (enum)
Motion detection mode (Firmware version>=0122052017). Value can be found in the published state on the motion_detection_mode 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 {"motion_detection_mode": NEW_VALUE}. The possible values are: only_pir, pir_and_radar, only_radar.
Motion detection sensitivity (numeric)
Motion detection sensitivity (Firmware version>=0122052017). Value can be found in the published state on the motion_detection_sensitivity 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 {"motion_detection_sensitivity": NEW_VALUE}. The minimal value is 0 and the maximum value is 10. The unit of this value is x.

