I have upgraded to the latest release and then added a new Zipato NE-NAS-AB02Z siren into my Zwave-JS configuration, it has been added fine but I cannot see any service called siren.xxx that I can call ?
Are only certain device manufactures or models supported, if so is their a list somewhere ?
That is not a Z-Wave device supported as a siren. It does not implement the Sound Switch Command Class. You would just use the switch entity for on/off and configuration parameters to change the volume and tones.
Your siren is a little similar to this one. It sounds like a Notification Report will play the “alarm”, and a Basic Set command will play the “doorbell”. And from your report, the binary switch controls the “alarm” sound?
HA does not currently support sending Notification Reports (if ever?), so you can’t control the “alarm” sound with it. You can issue this command from zwavejs2mqtt. However, if the binary switch entity already controls this sound, then you don’t need to send Notification Reports.
According to the manual, sending Basic Set with value 0x2 will play the “doorbell” music, see parameter 2:
This parameter defines the doorbell music duration time when siren receives a door/window sensor notification report or an alarm command (BASIC_SET=0x02) from a controller.
You can send a Basic Set command with the zwave_js.set_value service. So if you want to play the “doorbell” music, you can use this (but be aware of this open issue). The service data would look like this, just add the target device or entity.
Thanks for your reply, I tried the zwave_js.set_value you posted but I am hitting that open issue it seems.
Log Details (ERROR)
Logger: homeassistant.components.websocket_api.http.connection
Source: components/zwave_js/services.py:389
Integration: Home Assistant WebSocket API ([documentation](https://www.home-assistant.io/integrations/websocket_api), [issues](https://github.com/home-assistant/home-assistant/issues?q=is%3Aissue+is%3Aopen+label%3A%22integration%3A+websocket_api%22))
First occurred: 11:07:08 (2 occurrences)
Last logged: 11:08:31
[547530801360] Error handling message: Unknown error
Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 25, in _handle_async_response await func(hass, connection, msg) File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 525, in handle_execute_script await script_obj.async_run(msg.get("variables"), context=context) File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1219, in async_run await asyncio.shield(run.async_run()) File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 353, in async_run await self._async_step(log_exceptions=False) File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 371, in _async_step await getattr(self, handler)() File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 571, in _async_call_service_step await service_task File "/usr/src/homeassistant/homeassistant/core.py", line 1491, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1526, in _execute_service await handler.job.target(service_call) File "/usr/src/homeassistant/homeassistant/components/zwave_js/services.py", line 389, in async_set_value success = await node.async_set_value( File "/usr/local/lib/python3.9/site-packages/zwave_js_server/model/node.py", line 414, in async_set_value raise NotFoundError(f"Value {val} not found on node {self}") zwave_js_server.exceptions.NotFoundError: Value 42-32-0-targetValue not found on node Node(node_id=42)
Hi @fireplex have you got this to work at all?
I have two of these NE-NAS-AB02Z by Zipato and neither work as a doorbell in HA.
Like you, I can trigger the generic alarm via the switch but not the doorbell chime.
In the Developer Tools I tried calling the zwave_js.set_value service with the options described above by @freshcoast but that doesn’t work for my devices:
Returns error: NotFoundError: Value 12-32-0-targetValue not found on node Node(node_id=12)
After some poking around I can get these to sound something like a doorbell if I send “Indicator value” command_class: '135' with value: 4 but this will play a doorbell chime continuously without stopping, no matter what I set the PARAMETER 3 Doorbell Duration to:
I then have to send command_class: '135' again with value: 0 to stop it.
Based on this I can probably create an automation that will send Value: 4 then wait a couple of seconds and then send Value: 0 but it doesn’t seem to be an elegant solution and most likely not how this was intended to be used. Also, I would fear there is a risk the doorbell wouldn’t be stopped if the second Value:0 command fails to get through for some reason.
Any tips from your findings would be appreciated and, since this is the top result in Google for this model with HA, I’m imagining this might help others along the way as well.
If the devices are included without S2, try the multicast command, HA won’t throw an error in that case as it has an exception for Basic targetValue (for some reason this exception was not added for Basic singlecast…). (S2 multicast not supported yet, but it’s coming soon).
The root of this is that Z-Wave JS hides the Basic CC values (e.g. Basic targetValue) because it maps all Basic reports to Binary Switch values. so the Basic values are not visible by HA and hence the error.
Failed to call service zwave_js.multicast_set_value. Node(node_id=11) - NotFoundError: Value 11-32-0-targetValue not found on node Node(node_id=11)
Failed to call service zwave_js.invoke_cc_api. Endpoint(node_id=11, index=0) - NotFoundError: Command class 32 not found on endpoint Endpoint(node_id=11, index=0
It looks like 32 is not a recognised option. It might just not be supported, despite the mention in the user manual. Or maybe it only applies to specific firmware versions…
However, I did find a reasonably elegant solution which works surprisingly well:
Essentially I’m temporarily changing the “Operating Mode” (parameter: 7) to Doorbell and turning the siren/doorbell on. This is set to Doorbell Sound 4 which only last 2-3 seconds, but just to be sure it waits 6 seconds then turns it off (in case it is still set in Alarm Mode) then changes Operating Mode back to Alarm
What is the failure? Are there any errors in the HA logs? The ZUI debug info is similar, but not exactly the same.
The siren does not respond with any sound to this
Was there anything in the driver logs that showed the command was actually sent? Was the device in “Doorbell mode” when you attempted this? Maybe the Basic Set doesn’t work in Alarm mode?
Or perhaps the device doesn’t actually support Basic. In the official manual, Basic is not a listed command class, despite it’s usage mentioned (“alarm command (BASIC_SET=0x02”). The official manual and the 1.3 version from the device certification are nearly the same, and neither show all the config parameter that Z-Wave JS does, all the certification page does show Basic CC support. You might try contacting Zipato for clarification.
I have a working solution based on cipnt’s response above, though mine is a little simplified, with less timers. I just made it into a script, and whenever I want the doorbell chime to ring in response to an event (in my case, if a door or window is opened), I just call the script and it works. In my case, the subtype is called “(Default Siren Sound)”, but it’s precisely the same parameters. Of course, you’ll want to change the device_id to whatever your z-wave siren is. For reference, this is with a NAS-AB01Z running via Z-Wave JS. The switch.turn_on command activates the siren’s switch to turn it on. After the doorbell chime plays, it automatically returns to the off state.
Honestly, it would probably work just fine without the 5 second timer as well, but whatevs.