devices.esphome.io
Tuya ZY-HPS01/ZY-ZHPS01 Human Presence Sensor
Tuya ZY-HPS01/ZY-ZHPS01 Human Presence Sensor
Device Type: sensorElectrical Standard: globalBoard: bk72xxDifficulty: Soldering required, 4/5
      
  
        
Description
The Tuya ZY-HPS01 is a generic tuya human presence sensor available cheaply from AliExpress. On it is a CB3S BK7231N module for wireless communications, and an Airtouch AT5820 5.8GHz radar module from MoreSense acting as the Tuya MCU.
There appears to be a second, less common and almost identical variant of the ZY-HPS01 - the ZY-ZHPS01. This appears to be almost functionally identical, apart from a slight change in the configuration of the illuminance sensor as detailed below. It has almost the exact same hardware.
Every bit of IO on this device is attached to the Tuya MCU module and goes through the UART channel. Therefore, the LED right next to the illuminance sensor cannot be controlled and will light up and interfere with readings when the pairing button is pressed. None of the sensor values will work while the red LED is powered on. This will only happen if the button is held down to enter pairing mode. It is best to just not touch the pairing button at all.
Flashing
This device does not seem to be vulnerable to tuya-cloudcutter or tuya-convert. Therefore it must be flashed manually.
This device can be flashed without soldering, although I do recommend soldering some 2.54mm headers onto it next to the USB port for an easier experience.
You should flash it using ltchiptool. Once you have started ltchiptool and it is actively trying to connect, you should briefly bridge either one of the CEN pins to ground and then release.
      
  
        
ZY-HPS01 Configuration
esphome:  name: ZY-HPS01 Human presence sensor  friendly_name: Human presence sensor
bk72xx:  board: cb3s
uart:  - baud_rate: 9600    tx_pin: 11    rx_pin: 10tuya:
sensor:  - platform: tuya    name: "Light Intensity"    id: light_intensity    sensor_datapoint: 103    unit_of_measurement: "lux"    icon: "mdi:brightness-5"    state_class: "measurement"
number:  - platform: "tuya"    name: "Far Detection"    number_datapoint: 109    min_value: 0    max_value: 600    step: 1    mode: slider    unit_of_measurement: "cm"    icon: "mdi:signal-distance-variant"  - platform: "tuya"    name: "Presence Delay"    number_datapoint: 104    min_value: 1    max_value: 255    step: 1    mode: slider    unit_of_measurement: "s"    icon: "mdi:timer"  - platform: "tuya"    name: "Sensitivity"    number_datapoint: 105    min_value: 0    max_value: 10    step: 1    mode: slider    icon: "mdi:ray-vertex"  - platform: "tuya"    name: "Micro Sensitivity"    number_datapoint: 107    min_value: 0    max_value: 10    step: 1    mode: slider    icon: "mdi:ray-vertex"  - platform: "tuya"    name: "Min Range"    number_datapoint: 110    min_value: 0    max_value: 600    step: 1    mode: slider    unit_of_measurement: "cm"    icon: "mdi:signal-distance-variant"  - platform: "tuya"    name: "Micro Max Range"    number_datapoint: 111    min_value: 0    max_value: 600    step: 1    mode: slider    unit_of_measurement: "cm"    icon: "mdi:signal-distance-variant"  - platform: "tuya"    name: "Micro Min Range"    number_datapoint: 112    min_value: 0    max_value: 600    step: 1    mode: slider    unit_of_measurement: "cm"    icon: "mdi:signal-distance-variant"binary_sensor:  - platform: "tuya"    name: "Presence State"    sensor_datapoint: 101    device_class: occupancy    filters:      - invert:ZY-ZHPS01 Configuration
This variant will work by simply changing the illuminance sensor datapoint ID in the other configuration from 103 to 11.
sensor:  - platform: tuya    name: "Light Intensity"    id: light_intensity    sensor_datapoint: 11 # Used to be 103    unit_of_measurement: "lux"    icon: "mdi:brightness-5"    device_class: "illuminance"    state_class: "measurement"