Hello Dylan.
Not in a hurry, but i can’t include several BSEED wall switches, like the TZ3000_l9brjwau TS0002. It is seen as a unknown zigbee device. Log is 7366d559-8375-4a3a-8dd2-af62bc3b3cdd
Hello Dylan.
Not in a hurry, but i can’t include several BSEED wall switches, like the TZ3000_l9brjwau TS0002. It is seen as a unknown zigbee device. Log is 7366d559-8375-4a3a-8dd2-af62bc3b3cdd
Hi everyone,
I’m trying to pair a HOBEIAN ZG-227Z climate sensor. From what I’ve seen in the GitHub repo, it should already be supported in version 5.5.695, which was updated earlier today. However, it still appears as an unsupported device and Homey only adds it as a generic Zigbee device.
I’m sharing the device interview here in case it’s helpful.
“ids”: {
“modelId”: “TS0601”,
“manufacturerName”: “_TZE200_a8sdabtg”
},
“endpoints”: {
“ieeeAddress”: “a4:c1:38:5f:d2:e4:da:8e”,
“networkAddress”: 51221,
“modelId”: “TS0601”,
“manufacturerName”: “_TZE200_a8sdabtg”,
“endpointDescriptors”: [
{
“status”: “SUCCESS”,
“nwkAddrOfInterest”: 51221,
“_reserved”: 20,
“endpointId”: 1,
“applicationProfileId”: 260,
“applicationDeviceId”: 770,
“applicationDeviceVersion”: 0,
“_reserved1”: 1,
“inputClusters”: [
0,
3,
1026,
1029,
1
],
“outputClusters”: [
3
]
}
],
“deviceType”: “enddevice”,
“receiveWhenIdle”: false,
“swBuildId”: “0122052017”,
“capabilities”: {
“alternatePANCoordinator”: false,
“deviceType”: false,
“powerSourceMains”: false,
“receiveWhenIdle”: false,
“security”: false,
“allocateAddress”: true
},
“extendedEndpointDescriptors”: {
“1”: {
“clusters”: {
“basic”: {
“attributes”: [
{
“acl”: [
“readable”
],
“id”: 0,
“name”: “zclVersion”
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “appVersion”
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “stackVersion”
},
{
“acl”: [
“readable”
],
“id”: 3,
“name”: “hwVersion”
},
{
“acl”: [
“readable”,
“reportable”
],
“id”: 4,
“name”: “manufacturerName”,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 5,
“name”: “modelId”
},
{
“acl”: [
“readable”
],
“id”: 7,
“name”: “powerSource”
},
{
“acl”: [
“readable”,
“writable”
],
“id”: 18,
“name”: “deviceEnabled”
},
{
“acl”: [
“readable”
],
“id”: 16384,
“name”: “swBuildId”
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
},
“identify”: {
“attributes”: [
{
“acl”: [
“readable”,
“writable”
],
“id”: 0,
“name”: “identifyTime”,
“value”: 0
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
},
“temperatureMeasurement”: {
“attributes”: [
{
“acl”: [
“readable”,
“reportable”
],
“id”: 0,
“name”: “measuredValue”,
“value”: 3090,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “minMeasuredValue”,
“value”: -32768
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “maxMeasuredValue”,
“value”: -32768
},
{
“acl”: [
“readable”
],
“id”: 3
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
},
“relativeHumidity”: {
“attributes”: [
{
“acl”: [
“readable”,
“reportable”
],
“id”: 0,
“name”: “measuredValue”,
“value”: 5150,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 1,
“name”: “minMeasuredValue”,
“value”: 32768
},
{
“acl”: [
“readable”
],
“id”: 2,
“name”: “maxMeasuredValue”,
“value”: 32768
},
{
“acl”: [
“readable”
],
“id”: 3,
“name”: “tolerance”,
“value”: 0
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
},
“powerConfiguration”: {
“attributes”: [
{
“acl”: [
“readable”,
“reportable”
],
“id”: 32,
“name”: “batteryVoltage”,
“value”: 30,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”,
“reportable”
],
“id”: 33,
“name”: “batteryPercentageRemaining”,
“value”: 200,
“reportingConfiguration”: {
“status”: “NOT_FOUND”,
“direction”: “reported”
}
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
}
},
“bindings”: {
“identify”: {
“attributes”: [
{
“acl”: [
“readable”,
“writable”
],
“id”: 0,
“name”: “identifyTime”,
“value”: 0
},
{
“acl”: [
“readable”
],
“id”: 65533,
“name”: “clusterRevision”,
“value”: 1
}
],
“commandsGenerated”: “UNSUP_GENERAL_COMMAND”,
“commandsReceived”: “UNSUP_GENERAL_COMMAND”
}
}
}
}
}
Thanks a lot for your work and best regards.
Hi Dylan
Moes _TZ3000_zgyzgdua Still not working with v694 unfortunately. The hardware buttons and the icon buttons all have no effect. Thanks for your efforts.
Fred
Hi Dylan
Really appreciate your efforts and all your work so far.
Sorry for the repetitive negative replies, the two 4 gang scene switches remain unknown even in Version 5.5.696
_TZ3000_wkai4ga5 4gang switch
_TZ3000_5tqxpine 4gang switch
Thank u once more
Eftychis
Hi Dylan,
In the latest version the IR blaster is giving errors (and still not working). I’ve made a diag report.
![]()
89e408fe-d0ba-4216-95be-951824dac2b8
don’t worry you can ask as many times as you wan’t/request
it will be okay
I see that you had a major fix in **5.5.690 related to the TS0601 ProductId. Unfortunatly since then neither of my touch dimmers work anymore (previously the TZE200 worked). Both get added as a generic Zigbee device
I think the culprit might be that these these touch dimmers are different from the modules and they are both being handled by the same driver. In the old app they were two separate drivers, so perhaps they should be separate.
Just to clarify, a touch dimmer is such a device:** BSEED Switch - Wifi Light Switch **
According to my friend ChatGPT they have different clusters/bindings as well:
"endpoints": {
"1": {
"clusters": [0, 4, 5, 61184],
"bindings": [25, 10]
}
},
These are the interviews of the two:
"ids": {
"modelId": "TS0601",
"manufacturerName": "_TZE200_3p5ydos3"
},
"endpoints": {
"ieeeAddress": "a4:c1:38:e7:57:35:32:91",
"networkAddress": 48254,
"modelId": "TS0601",
"manufacturerName": "_TZE200_3p5ydos3",
"endpointDescriptors": [
{
"status": "SUCCESS",
"nwkAddrOfInterest": 48254,
"_reserved": 20,
"endpointId": 1,
"applicationProfileId": 260,
"applicationDeviceId": 81,
"applicationDeviceVersion": 0,
"_reserved1": 1,
"inputClusters": [
4,
5,
61184,
0
],
"outputClusters": [
25,
10
]
},
{
"status": "SUCCESS",
"nwkAddrOfInterest": 48254,
"_reserved": 10,
"endpointId": 242,
"applicationProfileId": 41440,
"applicationDeviceId": 97,
"applicationDeviceVersion": 0,
"_reserved1": 0,
"inputClusters": [],
"outputClusters": [
33
]
}
],
"deviceType": "router",
"receiveWhenIdle": true,
"capabilities": {
"alternatePANCoordinator": false,
"deviceType": true,
"powerSourceMains": true,
"receiveWhenIdle": true,
"security": false,
"allocateAddress": true
},
"extendedEndpointDescriptors": {
"1": {
"clusters": {
"groups": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"name": "nameSupport",
"value": {
"type": "Buffer",
"data": [
0
]
},
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 2,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
}
]
},
"scenes": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 1,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 2,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 3,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 4,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 2,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
}
]
},
"basic": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"name": "zclVersion",
"value": 3
},
{
"acl": [
"readable",
"reportable"
],
"id": 1,
"name": "appVersion",
"value": 64
},
{
"acl": [
"readable",
"reportable"
],
"id": 2,
"name": "stackVersion",
"value": 0
},
{
"acl": [
"readable",
"reportable"
],
"id": 3,
"name": "hwVersion",
"value": 1
},
{
"acl": [
"readable",
"reportable"
],
"id": 4,
"name": "manufacturerName",
"value": "_TZE200_3p5ydos3"
},
{
"acl": [
"readable",
"reportable"
],
"id": 5,
"name": "modelId",
"value": "TS0601"
},
{
"acl": [
"readable",
"reportable"
],
"id": 6,
"name": "dateCode",
"value": ""
},
{
"acl": [
"readable",
"reportable"
],
"id": 7,
"name": "powerSource",
"value": "mains"
},
{
"acl": [
"readable",
"writable",
"reportable"
],
"id": 65502
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 2
},
{
"acl": [
"readable",
"reportable"
],
"id": 65534,
"name": "attributeReportingStatus",
"value": "PENDING"
},
{
"acl": [
"readable",
"reportable"
],
"id": 65506
},
{
"acl": [
"readable",
"reportable"
],
"id": 65507
}
]
}
},
"bindings": {
"ota": {},
"time": {
"attributes": [
{
"acl": [
"readable"
],
"id": 65533,
"name": "clusterRevision",
"value": 1
}
]
}
}
},
"242": {
"clusters": {},
"bindings": {}
}
}
}
"ids": {
"modelId": "TS0601",
"manufacturerName": "_TZE204_n9ctkb6j"
},
"endpoints": {
"ieeeAddress": "a4:c1:38:4d:31:99:c0:9d",
"networkAddress": 30007,
"modelId": "TS0601",
"manufacturerName": "_TZE204_n9ctkb6j",
"endpointDescriptors": [
{
"status": "SUCCESS",
"nwkAddrOfInterest": 30007,
"_reserved": 20,
"endpointId": 1,
"applicationProfileId": 260,
"applicationDeviceId": 81,
"applicationDeviceVersion": 0,
"_reserved1": 1,
"inputClusters": [
4,
5,
61184,
0
],
"outputClusters": [
25,
10
]
},
{
"status": "SUCCESS",
"nwkAddrOfInterest": 30007,
"_reserved": 10,
"endpointId": 242,
"applicationProfileId": 41440,
"applicationDeviceId": 97,
"applicationDeviceVersion": 0,
"_reserved1": 0,
"inputClusters": [],
"outputClusters": [
33
]
}
],
"deviceType": "router",
"receiveWhenIdle": true,
"capabilities": {
"alternatePANCoordinator": false,
"deviceType": true,
"powerSourceMains": true,
"receiveWhenIdle": true,
"security": false,
"allocateAddress": true
},
"extendedEndpointDescriptors": {
"1": {
"clusters": {
"groups": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"name": "nameSupport",
"value": {
"type": "Buffer",
"data": [
0
]
},
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 2,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
}
]
},
"scenes": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 1,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 2,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 3,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 4,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 2,
"reportingConfiguration": {
"status": "NOT_FOUND",
"direction": "reported"
}
}
]
},
"basic": {
"attributes": [
{
"acl": [
"readable",
"reportable"
],
"id": 0,
"name": "zclVersion",
"value": 3
},
{
"acl": [
"readable",
"reportable"
],
"id": 1,
"name": "appVersion",
"value": 74
},
{
"acl": [
"readable",
"reportable"
],
"id": 2,
"name": "stackVersion",
"value": 0
},
{
"acl": [
"readable",
"reportable"
],
"id": 3,
"name": "hwVersion",
"value": 1
},
{
"acl": [
"readable",
"reportable"
],
"id": 4,
"name": "manufacturerName",
"value": "_TZE204_n9ctkb6j"
},
{
"acl": [
"readable",
"reportable"
],
"id": 5,
"name": "modelId",
"value": "TS0601"
},
{
"acl": [
"readable",
"reportable"
],
"id": 6,
"name": "dateCode",
"value": ""
},
{
"acl": [
"readable",
"reportable"
],
"id": 7,
"name": "powerSource",
"value": "mains"
},
{
"acl": [
"readable",
"writable",
"reportable"
],
"id": 65502
},
{
"acl": [
"readable",
"reportable"
],
"id": 65533,
"name": "clusterRevision",
"value": 2
},
{
"acl": [
"readable",
"reportable"
],
"id": 65534,
"name": "attributeReportingStatus",
"value": "PENDING"
},
{
"acl": [
"readable",
"reportable"
],
"id": 65506
},
{
"acl": [
"readable",
"reportable"
],
"id": 65507
}
]
}
},
"bindings": {
"ota": {},
"time": {
"attributes": [
{
"acl": [
"readable"
],
"id": 65533,
"name": "clusterRevision",
"value": 1
}
]
}
}
},
"242": {
"clusters": {},
"bindings": {}
}
}
}
The water sensor installs, but no communication between water… and Homey. Thanks. Ver.696
It started to communicate after a while. Still no alarm. Sorry.
A clue might be at the same time the water.. is installed the log says alarm inactivated.
No communication, related about flow or pairing ?
From above: It started to communicate after a while. Still no alarm. Sorry.
A clue might be at the same time the water.. is installed the log says alarm inactivated.
Ver.696
Hi Dylan,
now on v707 my Switch is regognized again as a 4-Gang Smart switch. Thats good. But when i press any button on the switch nithing happens in Homey Pro with the device. On the other side when i press a virtual button in Homey Pro at the device nothing happens to the switch.
Here a new diag:
7fab96a9-09f6-4df4-ae01-9873f72ecc5e
Best regards, Hartmut
For now just on/off and dimming will do.
I would like to have more in the future and I’m willing to contribute as much as I can, but I think that is more work.
Is there any documentation for this app/driver development that I can look at?
I’m not a software engineer by any means, but with help of LLMs and a bit of coding I think I can contribute something. I was having a look yesterday and this morning, but it seems that the various drivers use libs differently (of different libs all together).
https://apps.developer.homey.app/
Best regards
I more meant the structure of the Tuya Zigbee app specifically. Is there a specific structure you have in mind for the various drivers or do you see every driver independent?
Feel free to contribute ![]()
If you Want a good analysts ai , you can use Kimi K2
They’re some ai benchmark on the https://lmarena.ai/fr website .
Best regard.
Re: Architecture for the Universal Tuya Zigbee App
To address your question about whether drivers should be independent or share a unified structure: Technically, Homey requires them to be independent folders, but logically, they should be highly interdependent through a shared library.
If you treat every Tuya driver as a standalone silo, you will face a maintenance nightmare due to Tuya’s non-standard ZCL implementation (the infamous Data Points).
Here is the recommended thread-style breakdown of the architecture:
Example: When a socket sends DP 1 (Boolean), the TuyaDPDevice engine looks at a mapping file and automatically triggers capability: onoff.
/drivers/
├── tuya_plug/
│ ├── device.js ← Simply defines the DP Map to use
│ └── driver.js ← Standard boilerplate
├── tuya_sensor_temp/
│ ├── device.js ← Uses the same “Master” class logic
│ └── …
This answer is ai gemini powered. The structure is discribed on the readme and on the documentation inside the GitHub repo
About drivers
I organized it on categorysum folders
They are some libs that have some smart feature like caseless manufacturer name function and many other like dp tuya parsing .
Thank you, much appreciated. If you have the chance to look at the basic on/off and dimming functionality, I can use my buttons in the house and look a contributing additional functionality.