[RELEASE] Tuya Smart Siren Zigbee driver


This driver can be installed from Hubitat Package Manager, search for "Tuya Smart Siren Zigbee" or by Tag 'Zigbee'.

The last stable version code is here: https://raw.githubusercontent.com/kkossev/Hubitat/main/Drivers/Tuya%20Smart%20Siren%20Zigbee/Tuya%20Smart%20Siren%20Zigbee.groovy


Supported models :

Device Links
Tuya Zigbee Siren Alarmimage Driver status: fully functional.

Model: TS0601
Manufacturers: _TZE200_t1blo2bj _TZE204_t1blo2bj

AliExpress: link
Amazon .com link
Amazon .de link
Tuya Zigbee Siren with Temperature & Humidity Sensor
image
Driver status: not ready yet

Model: TS0601
Manufacturer: _TZE200_d0yu2xgi _TYST11_d0yu2xgi
AliExpress: link1
Walmart: link

Please use Markus's driver for now: https://raw.githubusercontent.com/kkossev/hubitat-Markus-Li-fork/release/drivers/expanded/zigbee-tuya-alarm-expanded.groovy

Features

  • Hubitat standard 'Alarm' capabilities: "strobe", "off", "both", "siren"
    Note: the sound and the LEDs can not be controlled separately with this Tuya models!
  • Hubitat standard 'Chime' capability : setVolume; volumeUp, volumeDown; playSound;
  • Hubitat standard Tone capability (beep command);
  • Volume, Duration and Melody custom attributes available forcontrol from RM / webCoRE
    • Volume control: low, mid, high
    • Sound duration control: 1 .. 180 seconds
    • Melody selection: 1..18
  • Switch capability
  • Individual preference settings for the melody, volume, and duration of the alarms and chime functions!
  • Battery level reporting
2 Likes

REVISIONS HISTORY:

  • ver. 1.0.0 2022-04-02 - Inital test version
  • ver. 1.1.0 2022-11-05 :
    • alarm events are registered upon confirmation from the device only;
    • added switch capability;
    • added Tone capability (beep command);
    • fast combined Tuya commands;
    • default settings are restored after the beep and playSound commands
    • added 'Chime' capability : setVolume; volumeUp, volumeDown; playSound;
    • Preferences: beepVolume; playSoundVolume; playSoundDuration
    • unscheduled() is called when preferences are updated.
  • ver. 1.1.1 2022-12-27 - bug fix: playing a sound from RM rule without specifying the volume level was making the device freeze; debug logs cleanup; sounds titles improvements;
  • ver. 1.1.2 2022-12-31 - bug fix: the sound titles changes in the previous version could make the siren freeze!; Import button changed to the development branch
  • ver. 1.2.0 2023-01-02 - _TZE200_d0yu2xgi (NEO) experimental support (w/o T/H); added separate preferences for alarm and Melody, Volume, and Duration
  • ver. 1.2.1 2023-05-26 - added _TZE204_t1blo2bj in Neo group; installed() bug fix;
  • ver. 1.2.2 2023-07-19 - fix: moved _TZE204_t1blo2bj in Tuya group;

  • ver. 2.1.5 2023-09-03 - (dev. branch) new 'Tuya Smart Siren Zigbee' driver code (playSound bug fixed);

The latest development branch version can be updated manually from here : https://raw.githubusercontent.com/kkossev/Hubitat/development/Drivers/Tuya%20Smart%20Siren%20Zigbee/Tuya_Smart_Siren_Zigbee_lib_included.groovy

An archive containing older versions is available from this link.

Thanks @kkossev . Ordered one and will test when it arrives.

1 Like

As @kuzenkohome commented in the linked topic, most of the sellers do not describe precisely which model (with oor without T/H sensors) they are selling. And seems like most of them are sending the cheaper version nowadays.

There are comments in some other forums that the siren without T/H sensors actually performs much better if compared to the one the provides temperature and humidity readings, in regards to delay between the command sent and the time when the siren starts sounding. But they could be wrong, as the differences in the reaction time are more likely to be related to the powering source - normally the response is almost immediately when ZIgbee devices are mains powered (USB 5V or 12V) . When operating on batteries, the response times may be much longer - up to 6-7 seconds, or some deeply sleeping devices do not listen for commands at all. For Zigbee Sirens, the battery is used as a backup/power failed option only.

Some additional information that I found today on the melodies types:

Sirens Types:
1 Doorbell
2-6 Classical songs
7-10 Alarm
11 Barking dog
12 Alarm
13 Chime
14 Telephone
15 Siren
16 Evacuation bell
17 Clock alarm
18 Fire alarm

Do you mean that if it has temp and humidity it won't work with your driver, or just that your driver won't interface with those capabilities?

The model with the temp and humidity uses totally different ''data points' in Tuya terminology, but it won't be difficult to support both models in the same driver,

Here my doubts are if it is a good idea to declare temperature and humidity measurement capabilities in the same driver or not? Mixing the two models will mean that the Siren will appear in the selection lists of al Hubuitat applications that filter by temp or humidity capability, although the particular model does not report T/H. Unfortunately, HE does not support 'dynamic capability' feature.

EDIT Jan 2023: the models with temperature and humidity sensor are now supported in driver version 1.2.x

Although Tuya may have developed the technology, individual manufacturers who license that technology and build devices might not implement each and every capability that Tuya included. That sounds like what may have happened with the temperature and humidity data. That is one drawback with some Tuya devices.

It may be related also to the global chips shortage nowadays, or simply a cost reduction process... most probably the T/H sensor chip is not present in the newer models.

@kkossev I just received a Tuya Zigbee garage door controller and when I tried to pair it in HE it selected your siren driver.

Here's the pairing from the HE log.

It pairs properly with Zigbee2MQTT

dev:34492022-05-09 08:09:49.838 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=3 value=1 descMap.data = [00, FF, 03, 01, 00, 01, 01]
dev:34492022-05-09 08:09:49.836 pm traceTuya Smart Siren Zigbee  dp_id=1 dp=3 fncmd=1
dev:34492022-05-09 08:09:37.230 pm infoTuya Smart Siren Zigbee Tuya check-in
dev:34492022-05-09 08:09:19.786 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=3 value=1 descMap.data = [00, FD, 03, 01, 00, 01, 01]
dev:34492022-05-09 08:09:19.782 pm traceTuya Smart Siren Zigbee  dp_id=1 dp=3 fncmd=1
dev:34492022-05-09 08:08:50.424 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=3 value=1 descMap.data = [00, FB, 03, 01, 00, 01, 01]
dev:34492022-05-09 08:08:50.423 pm traceTuya Smart Siren Zigbee  dp_id=1 dp=3 fncmd=1
dev:33942022-05-09 08:08:48.518 pm infoDining Room Window Left is off [physical]
dev:34492022-05-09 08:08:19.747 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=3 value=1 descMap.data = [00, F9, 03, 01, 00, 01, 01]
dev:34492022-05-09 08:08:19.743 pm traceTuya Smart Siren Zigbee  dp_id=1 dp=3 fncmd=1
sys:12022-05-09 08:08:19.332 pm Zigbee Discovery Stopped
dev:34492022-05-09 08:08:19.297 pm infoTuya Smart Siren Zigbee application version is 46
dev:34492022-05-09 08:08:11.813 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=3 value=1 descMap.data = [00, F7, 03, 01, 00, 01, 01]
dev:34492022-05-09 08:08:11.812 pm traceTuya Smart Siren Zigbee  dp_id=1 dp=3 fncmd=1
dev:34492022-05-09 08:08:11.739 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=11 value=0 descMap.data = [00, F6, 0B, 01, 00, 01, 00]
dev:34492022-05-09 08:08:11.738 pm traceTuya Smart Siren Zigbee  dp_id=1 dp=11 fncmd=0
dev:34492022-05-09 08:08:11.682 pm infoTuya Smart Siren Zigbee volume is 3600
dev:34492022-05-09 08:08:11.681 pm traceTuya Smart Siren Zigbee  dp_id=2 dp=5 fncmd=3600
dev:34492022-05-09 08:08:11.626 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=2 value=0 descMap.data = [00, F4, 02, 02, 00, 04, 00, 00, 00, 00]
dev:34492022-05-09 08:08:11.625 pm traceTuya Smart Siren Zigbee  dp_id=2 dp=2 fncmd=0
dev:34492022-05-09 08:08:11.565 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=4 value=10 descMap.data = [00, F3, 04, 02, 00, 04, 00, 00, 00, 0A]
dev:34492022-05-09 08:08:11.564 pm traceTuya Smart Siren Zigbee  dp_id=2 dp=4 fncmd=10
dev:34492022-05-09 08:08:11.528 pm warnTuya Smart Siren Zigbee NOT PROCESSED Tuya cmd: dp=12 value=2 descMap.data = [00, F2, 0C, 04, 00, 01, 02]
dev:34492022-05-09 08:08:11.523 pm traceTuya Smart Siren Zigbee  dp_id=4 dp=12 fncmd=2
dev:34492022-05-09 08:08:06.642 pm debugTuya Smart Siren Zigbee  NOT PARSED  : descMap = [raw:catchall: 0104 0000 01 01 0040 00 4E48 00 00 0000 04 01 00, profileId:0104, clusterId:0000, clusterInt:0, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:4E48, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:34492022-05-09 08:08:06.494 pm debugTuya Smart Siren Zigbee  NOT PARSED  : descMap = [raw:4E4801000068040042105F545A453230305F6E6B6C716A6B36320000002003010000204605000042065453303630310700003001FEFF003000, dni:4E48, endpoint:01, cluster:0000, size:68, attrId:0004, encoding:42, command:01, value:_TZE200_nklqjk62, clusterInt:0, attrInt:4, additionalAttrs:[[value:03, encoding:20, attrId:0000, consumedBytes:4, attrInt:0], [value:46, encoding:20, attrId:0001, consumedBytes:4, attrInt:1], [value:TS0601, encoding:42, attrId:0005, consumedBytes:9, attrInt:5]]]
dev:34492022-05-09 08:08:06.470 pm infoTuya Smart Siren Zigbee InitializeVars()... fullInit = false
dev:34492022-05-09 08:08:06.461 pm debugTuya Smart Siren Zigbee updating the settings from the current driver version null to the new version 1.0.0 2022/3/30 10:20 PM
sys:12022-05-09 08:08:06.327 pm Created Zigbee Device Tuya Smart Siren Zigbee
dev:34492022-05-09 08:08:06.288 pm traceTuya Smart Siren Zigbee sendZigbeeCommands(cmd=[he raw 0x4E48 1 0x01 0x0000 {10 00 00 04 00 00 00 01 00 05 00 07 00 FE FF}, delay 200, he wattr 0x4E48 0x01 0x0000 0xFFDE 0x20 {13} {}, delay 200])
dev:34492022-05-09 08:08:06.272 pm infoTuya Smart Siren Zigbee configure()..
dev:34492022-05-09 08:08:06.254 pm infoTuya Smart Siren Zigbee installed()
sys:12022-05-09 08:08:05.064 pm Initializing Zigbee Device A4C1384DCB9DDC0E, 4E48
sys:12022-05-09 08:08:02.613 pm Zigbee Discovery Running

@kuzenkohome

You had the bad luck of receiving a newer model that is not compatible with the ZHA 1.2 standards, but uses Tuya specific ZIgbee clusters..

This is a coincidence - as this new device fingerprint does not match any of the available drivers on your hub, HE selects the closest match, primarily based on the device InClusters list.

Indeed, the Tuya Smart Siren ZIgbee driver is not the correct driver. You must manually change it to another driver that may work with the relay module.

You can try this one: https://raw.githubusercontent.com/kkossev/hubitat-muxa-fork/master/drivers/zemismart-zigbee-multigang-switch.groovy

HE can not compete with Zigbee2MQTT, which is an open-source community project, where dozens if not hundreds of contributors are reverse engineering and adding new products that pop up every week. But even there it takes at least one month before the newly added devices are available in the next update.

Can you post this relay module Model and Manufacturer from the device 'Data' section?

I wasn't really expecting it to be compatible with HE.

I actually bought 2 and upon pairing the second one it selected the Tuya Scene Switch TS004F :man_shrugging:

The zemismart driver did not work.

I was just letting you know it was successfully paired with Z2M, I don't expect HE to compare with Z2M.

  • endpointId: 01
  • model: TS0601
  • application: 46
  • manufacturer: _TZE200_nklqjk62
1 Like

Thank you @kuzenkohome , now I realize that this 'Garage Door Opener' is actually a rather different type of device, reporting back the status of the garage rolling door as returned by the additional sensor.
It shouldn't be so much difficult to add it in HE, but will require a new driver.

The HA -> HE integration is working really good, I am also using it for exposing in HE a couple of devices (mostly WiFi) that can not be supported natively in Hubitat. Also for some Xiaomi/Aqara devices (Air Purifier, Smart Fan and MiFlora soil sensors).

EDIT: July 2022
Tuya Zigbee Garage Opener is now supported in Hubitat : Tuya Zigbee Garage Door Opener - #30 by kkossev
@kuzenkohome

2 Likes

Hi @kkossev ,
Finally got the siren device today.
Joined the hub and assigned your driver with no problem.
Thank you for your efforts.
I can control the siren from its device page with no problem.
Seems like I am missing the option to include it in a rule of any kind as it does not how up as a Switch or any other device type. What am I missing?
Edit: I now see it shows up in Hubitat safety monitor and in RM so maybe sirens are only available there?

2 Likes

Yes, seems like Sirens are available for control only in Hubitat Safety Monitor and in the Rule Machine.. I am posting some screenshots below, because I already prepared them : )

HSM :

Rule Machine:

In order to be able to set any parameter, select 'Actuator' as capability

The possible custom actions for Tuya Siren are:

  • melody : number, 1..18 = set alarm type, can be any number between 1 and 18
  • duration : number, 0..180 = set alarm length in seconds. 0 = no audible alarm
  • volume : string, "low", "medium", "high"
2 Likes

Thanks @kkossev ,
Found out that I can add the siren to the dashboard using the attribute template allows me to see if the siren is on or off, battery level etc.
Did not find a way to trigger the siren on or off from a dashboard.
Adding to my alarm dashboard will allow me to trigger it or turn it off manually when away.
I guess this means the driver should support the switch capability. Can it be done? And if so, I'll be glad if you'll consider this in your future releases.
Thanks again for your work and help.

2 Likes

@amithalp adding switch capability to the siren driver is possible, but I have to think if there may be any side effects of this. As an example, the siren will appear in all HE applications that list light switches...

Meanwhile, you can create a virtual switch and control the Tuya siren from it - see this write-up on a possible way to do it.

2 Likes

Very true.

FWIW, I think it is okay to implement on/off in a siren driver because the built-in siren drivers do include switch capability. Here are the devices with the "Linear/Vision siren driver" and the "Aeotec Siren 6 driver".

1 Like

Thanks for the info! I usually check the built-in drivers (especially the virtual drivers) for their standard capabilities and commands, but this time seems like I have missed this one.

Do you know what the 'Pair Button' do? Link the virtual button number to the last SoundEffect played by 'Play Sound'?

1 Like

It pairs an external button to the siren that permits its use as a doorbell.

Do you know how the external button communicates to the siren? RF 433 or similar?

1 Like