I have a Tuya Zigbee siren ( manufacturer: _TYST11_d0yu2xgi, model: 0yu2xgi) for which there apparently is no device handler. Unfortunately, I am quite new to Groovy programming, and in particular Zigbee device handlers. I have reverse-engineered quite some information that, if I only knew how, should make it possible to write a device handler. Maybe some of the experts here can help me out with these questions (forgive me if these appear very basic):
Most communication with the device is going over the Tuya specific cluster 0xEF00. For example, the device regularly sends temperature and humidity values on this cluster, which I can easily decode by parsing the catchall. But HOW can I send the decoded values to the respective tile in the smartthings app?
Switching the siren on or off, and setting its parameters, appears to be relatively easy: send the command ID and payload data to that 0xEF00 cluster. I think this should be possible by issuing a “zigbee.command(0xEF00, command, data)” command in the device handler. The command for the siren is 0x0168 (or only 0x68), and the payload should simply be “0” or “1”. Maybe I am doing it wrong [along the line of zigbee.command(0xEF00, 0x68, “1”)], but it doesn’t work - the siren isn’t switched on or off. The documentation of the zigbee.command command unfortunately isn’t very detailed, and doesn’t explain how these things are done with a custom cluster
I haven’t figured out how to write the configure() function. Basically all examples I have seen use something like zigbee.temperatureConfig(30, 300) and zigbee.configureReporting(zigbee.RELATIVE_HUMIDITY_CLUSTER, 0x0000, DataType.UINT16, 30, 3600, 100), which uses the standard clusters. Can this be done also with non-standard clusters such as 0xEF00. If so, what to send?