No entities in zigbee tuya siren with ZHA

Hi all, i just bought this zigbee 3.0 siren :
Tuya Zigbee Smart Siren Alarm With temperature and Humidity Sensor Works With TUYA Smart Hub
I achieved to add it using ZHA (I have a SonOff Zigbee bridge as Coordinator)
But there is no entites in the device (no switch to toggle the alarm, no temp and humidity sensors, nothing !), here is a picture :

I already tried to remove it and add it back in ZHA, but still nothing.
Also here are the logs from ZHA while adding the device :

[0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_req: [60, <Bool.false: 0>]
Device 0xc030 (84:2e:14:ff:fe:db:84:32) joined the network
[0xc030] Requesting 'Node Descriptor'
Tries remaining: 2
[0xc030] Extending timeout for 0x50 request
Device 0xc030 (84:2e:14:ff:fe:db:84:32) joined the network
Skip initialization for existing device 84:2e:14:ff:fe:db:84:32
Device 0xc030 (84:2e:14:ff:fe:db:84:32) joined the network
Skip initialization for existing device 84:2e:14:ff:fe:db:84:32
[0xc030:zdo] ZDO request ZDOCmd.Device_annce: [0xC030, 84:2e:14:ff:fe:db:84:32, 128]
[0xc030] Node Descriptor: NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=0)
[0xc030] Discovering endpoints
Tries remaining: 3
[0xc030] Extending timeout for 0x52 request
[0xc030] Discovered endpoints: [1]
[0xc030:1] Discovering endpoint information
Tries remaining: 3
[0xc030] Extending timeout for 0x54 request
[0xc030:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=81, device_version=1, input_clusters=[0, 4, 5, 61184], output_clusters=[25, 10])
Unknown cluster 61184
[0xc030] Extending timeout for 0x56 request
[0xc030:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=86 command_id=Command.Read_Attributes_rsp>
[0xc030:1] Manufacturer: _TZE200_d0yu2xgi
[0xc030:1] Model: TS0601
Checking quirks for _TZE200_d0yu2xgi TS0601 (84:2e:14:ff:fe:db:84:32)
Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
Fail because endpoint list mismatch: {11, 13} {1}
Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.philips.rom001.PhilipsROM001'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.philips.rwl020.PhilipsRWL020'>
Fail because endpoint list mismatch: {1, 2} {1}
Considering <class 'zhaquirks.philips.rwl021.PhilipsRWL021'>
Fail because endpoint list mismatch: {1, 2} {1}
Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
Fail because device_type mismatch on at least one endpoint
Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
Fail because endpoint list mismatch: {232, 230} {1}
Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
Fail because endpoint list mismatch: {232, 230} {1}
device - 0xC030:84:2e:14:ff:fe:db:84:32 entering async_device_initialized - is_new_join: True
device - 0xC030:84:2e:14:ff:fe:db:84:32 has joined the ZHA zigbee network
[0xC030](TS0601): started configuration
[0xC030:ZDO](TS0601): 'async_configure' stage succeeded
[0xc030] Extending timeout for 0x58 request
[0xc030] Extending timeout for 0x5a request
[0xc030:zdo] ZDO request ZDOCmd.Node_Desc_req: [0x0000]
[0xc030:zdo] Unsupported ZDO request:ZDOCmd.Node_Desc_req
[0xC030:1:0x0000]: bound 'basic' cluster: Status.SUCCESS
[0xC030:1:0x0000]: finished channel configuration
[0xc030] Extending timeout for 0x5c request
[0xC030:1:0x0019]: bound 'ota' cluster: Status.SUCCESS
[0xC030:1:0x0019]: finished channel configuration
[0xc030:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=92 command_id=Command.Read_Attributes_rsp>
[0xC030:1:0x0000]: initializing channel: from_cache: False
[0xC030:1:0x0000]: 'async_configure' stage succeeded
[0xC030:1:0x0019]: 'async_configure' stage succeeded
[0xC030](TS0601): completed configuration
[0xC030](TS0601): stored in registry: ZhaDeviceEntry(name='_TZE200_d0yu2xgi TS0601', ieee='84:2e:14:ff:fe:db:84:32', last_seen=1608275398.9227688)
[0xC030](TS0601): started initialization
[0xC030:ZDO](TS0601): 'async_initialize' stage succeeded
[0xc030] Extending timeout for 0x5e request
[0xC030:1:0x0019]: initializing channel: from_cache: False
[0xc030:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=94 command_id=Command.Read_Attributes_rsp>
[0xC030:1:0x0000]: initializing channel: from_cache: False
[0xC030:1:0x0000]: 'async_initialize' stage succeeded
[0xC030:1:0x0019]: 'async_initialize' stage succeeded
[0xC030](TS0601): power source: Battery or Unknown
[0xC030](TS0601): completed initialization
[0xc030:1:0x000a] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=73 command_id=Command.Read_Attributes>
[0xc030:1:0x000a] ZCL request 0x0000: [[7]]
[0x8C07:1:0x0b04]: async_update
[0x7114:1:0x0b04]: async_update
[0xB9E3:1:0x0b04]: async_update
[0x7114:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=99 command_id=Command.Read_Attributes_rsp>
[0x8c07:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=97 command_id=Command.Read_Attributes_rsp>
[0xb9e3:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=101 command_id=Command.Read_Attributes_rsp>
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=74 command_id=36>
[0xc030:1:0xef00] Unknown cluster-specific command 36
[0xc030:1:0xef00] ZCL request 0x0024: b'\x00"'
[0xc030:1:0xef00] No handler for cluster command 36
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=75 command_id=2>
[0xc030:1:0xef00] Unknown cluster-specific command 2
[0xc030:1:0xef00] ZCL request 0x0002: b"\x00\x02j\x02\x00\x04\x00\x00\x00'"
[0xc030:1:0xef00] No handler for cluster command 2
[0xc030:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=76 command_id=17>
[0xc030:1:0xef00] Unknown cluster-specific command 17
[0xc030:1:0xef00] ZCL request 0x0011: b'\x00#@'
[0xc030:1:0xef00] No handler for cluster command 17
[0x8C07:1:0x0b04]: async_update
[0x7114:1:0x0b04]: async_update
[0xB9E3:1:0x0b04]: async_update
[0x7114:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=105 command_id=Command.Read_Attributes_rsp>
[0x8c07:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=103 command_id=Command.Read_Attributes_rsp>
[0x8c07:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=103 command_id=Command.Read_Attributes_rsp>
[0x8c07:1:0x0b04] ZCL request 0x0001: [[ReadAttributeRecord(attrid=1291, status=<Status.SUCCESS: 0>, value=<TypeValue type=int16s, value=0>)]]
[0x8c07:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=103 command_id=Command.Read_Attributes_rsp>
[0x8c07:1:0x0b04] ZCL request 0x0001: [[ReadAttributeRecord(attrid=1291, status=<Status.SUCCESS: 0>, value=<TypeValue type=int16s, value=0>)]]
[0xb9e3:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=107 command_id=Command.Read_Attributes_rsp>
[0x8C07:1:0x0b04]: async_update
[0x7114:1:0x0b04]: async_update
[0xB9E3:1:0x0b04]: async_update
[0x7114:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=111 command_id=Command.Read_Attributes_rsp>
[0x8c07:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=109 command_id=Command.Read_Attributes_rsp>
[0xb9e3:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=113 command_id=Command.Read_Attributes_rsp>
[0x8C07:1:0x0b04]: async_update
[0x7114:1:0x0b04]: async_update
[0xB9E3:1:0x0b04]: async_update
[0x7114:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=117 command_id=Command.Read_Attributes_rsp>
[0x8c07:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=115 command_id=Command.Read_Attributes_rsp>
[0xb9e3:1:0x0b04] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=119 command_id=Command.Read_Attributes_rsp>

Does anyone know what is the problem, and maybe how can I contribute to ZHA to help adding this product ?
Thanks !

2 Likes

Same problem here with ZHA and Z2M !

yeah, I have the same issue. Bought from the link here


which has the same zigbee id - Zigbee ID: “0yu2xgi”; “TS0601”
as my device, but just get
with no other options.

Using Tasmota 9.1.0 on a sonoff zigbee bridge, Home assistant OS 5.9, supervisor 2020.12.7 if it matters.

1 Like

I managed to make it work with Zigbee2mqtt Edge … ho the zigbee !!!

update. I have issue, like here :

I managed to get it to work via a custom command. Still cannot figure out how this should be integrated in HA so that you can use it like any other device.

But the below command works for me (call service/mqtt.publish):

topic: zigbee2mqtt/0xecPUTYOURIDHERE/set
payload: '{"alarm":true}'
3 Likes

I added the Tuya Zigbee Siren (TS0216) using ZHA and I only get one entity – unfortunately not one that triggers the siren. Any suggestions on where to go from here? I just want to be able to trigger the siren from an automation.

Dear all,
I’m with the same problem.
I have zigbee integration in HA with texas USB dongle C2531 with several sensors fully working.
The only think that happens was that zigbee detects NEO Siren.
No entities or devices available!
Can anyone help me?
I’m undering if flash it with tasmota could be the solution… but i don’t have any certain.

I think we are all on the same page here. The Tuya Sirene is not supported with ZHA. But it seems that people got it to work with Zigbee2MQTT.

Use it like this. Saw it on Aliexpress

1 Like

Thanks for your reply, but it is not working for me i got the following error msg : Warning IASWD: ieee: [84:2e:14:ff:fe:db:84:32] is missing the required IASWD channel!
It seems that the service zha.warning_device_warn does not work because it is not detected as a warning device.

However I found a solution, but first you need to learn about zhaquirks.
Then you can see my pull request on github, which solve the problem described here.
My pull request has been merged, but we need to wait a bit for home assistant to update its zhaquirks version.
The problem is that my pull request only works for tuya siren with the following parameters :
"manufacturer": "_TZE200_d0yu2xgi", "model": "TS0601"
However, my quirk is pretty simple because it uses another quirk already made for the tuya sirens, so if your siren does not have the parameters described above, you can contact me or try to write your own custom quirk and make a pull request, you can use my quirk as an example.
Basically what you would need to do is write a python class TuyaSiren3 after my TuyaSiren2 class, and just copy the content of the TuyaSiren2 class and change with your own information.

Following the instruction from @CharlieBailly made my Tuya sirene indeed appear. So now I have the humidity and temperature measurement coming in and a switch entity. Besides the new class from here I copied I also needed to amend the “import” section as some packages weren´t in my siren.py file.
The only thing that is bothering me now is that when I turn on the switch it is playing the turkish march from Mozart instead of any siren sound. And on top of it the switch appears to have an auto-off functionality.
I really would like to understand if there is a way to get the “zha.warning_device_warn” service to work? It always returns the above mentioned

ERROR (MainThread) [homeassistant.components.zha.api] Warning IASWD: ieee: [84:2e:14:ff:fe:db:85:c0] is missing the required IASWD channel!

BR

Hi @familieeck !
I can’t access my zha right now, but what I know is that you can tweak the volume/ringtone in the Manage Clusters section when you are on the page of the siren device in ZHA.
Yes the switch seems to act weirdly for me too.
I don’t know if the warning_device_warn will work, but just play with values in the Manage Clusters and replay the siren sound to hear the changes.

Hey guys, it appears that the pull request of @CharlieBailly have been implemented ( thank you!!! ) as I was able to add my siren to ZHA. I do have now the functionality of the humidity, temperature and alarm ( so 3 entities ). My question is if there’s any way I could change the alarm tone ( melody ) as the default one is just awful. Thanks!

Hi @xyboox, credit goes to the author of the TuyaSiren quirk, I just made it available for another siren !
You can indeed change the ringtone, and the sound as well, just play with values in the “Manage Clusters” of your siren and replay the siren sound to hear the changes.

1 Like

Thanks @CharlieBailly got it! :slight_smile:

Hi, apologies for posting in an old thread. I’ve got the same Zigbee Tuya Siren paired in ZHA and it is showing up as a device but the temperature/humidity remain unknown and toggling the switch does not trigger anything. Also, how do I change the siren sound in ‘Manage Clusters’? I saw the different parameters but not quite sure what I should enter there. I would greatly appreciate if someone could point me in the right direction to fix this, thanks!

Hi @penpal1278, no problem !
Here is an image so you can understand :


As you can see, select “TuyaManufClusterSiren” in “Clusters”.
Then select either “melody” or “volume” in Cluster Attributes.
Click “GET ZIGBEE ATTRIBUTE” to see actual value.
Change this value (for instance 10 is a dog barking), and click “SET ZIGBEE ATTRIBUTE”.
Then make your alarm ring to hear the changes.

For your problem about the sensors and the switch, I don’t know why this happen. Maybe you can send us the information inside “ZIGBEE DEVICE SIGNATURE” so I can see if their is any difference with mine ?

1 Like

@CharlieBailly, thanks so much for the quick reply! I followed your guide and changed the values and clicked ‘Set Zigbee Attribute’ but it looks like the settings aren’t being applied, as when I click ‘Get Zigbee Attribute,’ it shows me the value as ‘none’ again. Toggling the siren on/off entity still doesn’t trigger anything either. Also, the flashing lights on the front won’t turn off even after pairing so I’m wondering if there’s something wrong in the pairing process to begin with… I’m using ZHA with a Tazmotized Sonoff Zigbee Bridge if that has any effect.

Here’s the Device Signature information from my alarm:

{
  "node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=0, *allocate_address=True, *complex_descriptor_available=False, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False, *is_valid=True, *logical_type=<LogicalType.EndDevice: 2>, *user_descriptor_available=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0403",
      "in_clusters": [
        "0x0000",
        "0x0003",
        "0x0006",
        "0x0402",
        "0x0405",
        "0xef00"
      ],
      "out_clusters": [
        "0x0003",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZE200_d0yu2xgi",
  "model": "TS0601",
  "class": "zhaquirks.tuya.siren.TuyaSiren2"
}

On top of what @CharlieBailly said:

  1. check if you are running the most recent HA version (something that is >= 2021.3.1 at least).
  2. You can set the volume and melody also from within a script (as a service). Eg.
service: zha.set_zigbee_cluster_attribute
data:
   ieee: 'xx:xx:xx:xx:xx:xx:xx:xx'
   endpoint_id: 1
   cluster_id: 61184
   attribute: 1126
   cluster_type: in
   value: 7
   manufacturer: '4098'

where you will need to grab the IDs from the clusters screen and convert the hex number to a decimal value. Means “melody (id: 0x0466)” is 1126 in decimal (you can use an online converter if you can´t do the math yourself…). Same is to apply for the cluster_id and endpoint_id by converting eg “TuyaManufClusterSiren (Endpoint id: 1, Id: 0xef00, Type: in)”. Obviously you replace the device_ieee with the mac address of your device.

Haven´t tried each single melody but as far as I can hear it is something like:
1 -> For Elise (Beethoven)
2 -> Doorbell
3-> Doorbell
4 -> ?
5 -> Turkish march (Mozart)
6 -> Sirene
7 -> Fire Alarm
8 -> Short beep
9 -> Short beep
10 -> Dog bark
11 -> Sirene
12 -> Doorbell
15 -> Police

@familieeck, thanks for the explanation!

I just checked and I’m running 2021.4.1 so my HA instance should have the specific device quirk from the earlier posts loaded. I followed your steps exactly replacing the ieee with the one from my siren and making sure that the cluster_id and attribute matches but I still get no sound from my siren unfortunately… is there any other info I could provide to help troubleshoot the problem?

I’m not too familiar with the detailed settings for ZHA and Zigbee devices so any advice is appreciated, thanks in advance!