[External Converter]: TS202PIR1-z ZigbeeTlc
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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