Koenkk / Koenkk/zigbee2mqtt

[External Converter]: TS202PIR1-z ZigbeeTlc

Open
#32,713 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

external converter
Dominant language
TypeScript
Stars
15.7k
Forks
2k
Avg merge
18h 55m
Merged PRs (30d)
35

Description

Link

https://github.com/pvvx/ZigbeeTLc

Database entry

{"id":29,"type":"EndDevice","ieeeAddr":"0xa4c13863acc55599","nwkAddr":63798,"manufId":4417,"manufName":"Tuya","powerSource":"Battery","modelId":"TS202PIR1-z","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":770,"inClusterList":[0,1,3,6,32,1030],"outClusterList":[6,25],"clusters":{"genPowerCfg":{"attributes":{"batteryVoltage":29,"batteryPercentageRemaining":172}},"genOnOff":{"attributes":{"onOff":0}},"msOccupancySensing":{"attributes":{"occupancy":0,"pirOToUDelay":10}},"genPollCtrl":{"attributes":{"checkinInterval":14400}},"genBasic":{"attributes":{"modelId":"TS202PIR1-z","manufacturerName":"Tuya","powerSource":3,"zclVersion":3,"appVersion":56,"stackVersion":49,"hwVersion":40,"dateCode":"20260522","swBuildId":"3001-0138"}}},"binds":[{"cluster":32,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffee25416","endpointID":1},{"cluster":1,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffee25416","endpointID":1},{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffee25416","endpointID":1},{"cluster":1030,"type":"endpoint","deviceIeeeAddress":"0xe0798dfffee25416","endpointID":1},{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0xa4c13863acc55599","endpointID":1}],"configuredReportings":[{"cluster":1030,"attrId":0,"minRepIntval":0,"maxRepIntval":3600,"repChange":0},{"cluster":1,"attrId":33,"minRepIntval":3600,"maxRepIntval":65000,"repChange":10},{"cluster":1,"attrId":32,"minRepIntval":3600,"maxRepIntval":65000,"repChange":10},{"cluster":6,"attrId":0,"minRepIntval":0,"maxRepIntval":65000,"repChange":1}],"meta":{}}},"appVersion":56,"stackVersion":49,"hwVersion":40,"dateCode":"20260522","swBuildId":"3001-0138","zclVersion":3,"interviewCompleted":true,"interviewState":"SUCCESSFUL","meta":{"configured":"0.0.0"},"lastSeen":1785511122940,"checkinInterval":3600}

Zigbee2MQTT version

2.12.1 (unknown)

External converter
const {
    battery,
    onOff,
    identify,
    occupancy,
} = require('zigbee-herdsman-converters/lib/modernExtend');

const definition = {
    zigbeeModel: ['TS202PIR1-z', 'TS202PIR2-z'],
    model: 'TS202PIR1-z',
    vendor: 'Tuya',
    description: 'PIR motion sensor (pvvx/ZigbeeTLc custom firmware)',
    extend: [
        occupancy({
            pirConfig: ['otu_delay'],
        }),
        battery({
            percentage: true,
            percentageReporting: true,
            voltage: true,
            voltageReporting: true,
        }),
        onOff({
            powerOnBehavior: false,
            description: 'Enable direct remote On/Off command sending to bound devices on motion',
        }),
        identify(),
    ],
    meta: {},
};

module.exports = definition;
What does/doesn't work with the external definition?

Works:

  • Motion occupancy detection
  • Occupancy timeout (pirOToUDelay)
  • Battery percentage & voltage (mV)
  • Remote binding trigger state (On/Off)
  • Identify
Notes

software_build_id: 3001-0138
date_code: 20260522
endpoints:

{"1":{"clusters":{"input":["genBasic","genPowerCfg","genIdentify","genOnOff","genPollCtrl","msOccupancySensing"],"output":["genOnOff","genOta"]}}}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the supplied external converter and review its model list and modernExtend entries for occupancy, battery, on/off, and identify behavior. Clarify whether the goal is official support in Zigbee2MQTT; done should preserve the listed working features for TS202PIR1-z and TS202PIR2-z, with appropriate project validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
embedded-iot
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.