Zigbee2MQTTZigbee2MQTT
  • Getting started
  • Supported Adapters
  • Supported Devices
  • Installation
  • Configuration
  • Usage
  • FAQ
Devices
  • Zigbee

    • Zigbee network
    • Improve network range and stability
    • Secure your Zigbee network
    • Sniff Zigbee traffic
    • Create a CC2530 router
  • Support new devices

    • Support new devices
    • Support new Tuya devices
    • Find Tuya Data Points
  • Remote Adapter

    • Connect to a remote adapter
    • Connect to a remote Sonoff ZBBridge
  • More

    • 3D cases
    • External converters
    • External extensions
    • Switch to the dev branch
    • Get Tuya and Xiaomi OTA url
  • Forum
  • Discord
  • Issues
  • Donate
GitHub
GitHub (docs)
  • Getting started
  • Supported Adapters
  • Supported Devices
  • Installation
  • Configuration
  • Usage
  • FAQ
Devices
  • Zigbee

    • Zigbee network
    • Improve network range and stability
    • Secure your Zigbee network
    • Sniff Zigbee traffic
    • Create a CC2530 router
  • Support new devices

    • Support new devices
    • Support new Tuya devices
    • Find Tuya Data Points
  • Remote Adapter

    • Connect to a remote adapter
    • Connect to a remote Sonoff ZBBridge
  • More

    • 3D cases
    • External converters
    • External extensions
    • Switch to the dev branch
    • Get Tuya and Xiaomi OTA url
  • Forum
  • Discord
  • Issues
  • Donate
GitHub
GitHub (docs)

Tuya ZM-35H-Q

ModelZM-35H-Q
VendorTuya
DescriptionMotion sensor
Exposesoccupancy, battery_low, battery, sensitivity, keep_time
PictureTuya ZM-35H-Q

Notes

Pairing

To start pairing, press the button (pinhole on the side of the device) using a pin/paperclip for approx. 10 seconds. The led will turn on, then start blinking while the pairing process is in progress.

Reading and Setting Values

As a low power device, the motion sensor isn't reachable most of the time, but only when active (e.g. because it detected motion). Therefore, requests to read or set values (i.e. sensitivity or keep_time) won't be processed right away, typically. Instead, they will be queued and sent on the next occasion.

Exposes

Occupancy (binary)

Indicates whether the device detected occupancy. Value can be found in the published state on the occupancy property. It's not possible to read (/get) or write (/set) this value. If value equals true occupancy is ON, if false OFF.

Battery low (binary)

Indicates if the battery of this device is almost empty. Value can be found in the published state on the battery_low property. It's not possible to read (/get) or write (/set) this value. If value equals true battery low is ON, if false OFF.

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 %.

Sensitivity (enum)

PIR sensor sensitivity. Value can be found in the published state on the sensitivity property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"sensitivity": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"sensitivity": NEW_VALUE}. The possible values are: low, medium, high.

Keep time (enum)

PIR keep time in seconds. Value can be found in the published state on the keep_time property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"keep_time": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"keep_time": NEW_VALUE}. The possible values are: 30, 60, 120.

Help to make the docu better and edit this page on Github ✌
Last Updated:: 6/13/25, 6:01 PM