Any ZW164 Indoor Siren 6 Updates?

Has anyone been able to get the Aeotec Z-Wave ZW164 Indoor Siren 6 working? That is being able to trigger its functionally via Openhab? There are several topic in the forums with the below seeming to be to most comprehensive. Some posts state that a command class needs to be implemented (post 4+ years old) and some that this is a read only device (somewhat useless)

I have several use cases were I want to sound a tone/siren and this device seemed like a perfect hit. But if I can sound a tone from openhab I’ll need to find another solution. Thanks.

The siren 6 works very well for me, using zwave2mqtt. I can use all 30 sounds, no problem

Could you post some configuration examles? (Thing, Item, etc.)

I’ve never used zwave2mqtt

Thanks.

Scott

that seems to become a long story.

  1. install zwave2mqtt on a raspi via openhabian or as a docker file and get familiar with the program
  2. attach the zwave stick to zwave2mqtt and migrate all your devices to that or use a new stick just for the siren.
  3. install a mqtt broker on raspi or elsewhere.
  4. install mqtt bridge in openhab and then we can talk about items.
    If you are already using mqtt than let me know and I can help you to install the siren

Thank You. I’ll give it a try

I installed the broker and have several read (topic) items working. I did setup Zwave-JS-UI which is the successor to zwave2mqtt. I also installed MQTT Explorer which is really helpful for testing.

The following post was also really helpful but didn’t see it before as it centers on Zwave-JS-UI.

I would appreciate information on getting the siren working as I don’t know how to do the command topics and am having a problem finding documentation on that.

I have grouped my generic mqtt Things untraditionally, but here is an example of a configuration change. I don’t have your device, but I think configuration changes are required. Basically just add “set” to the state topic.

UID: mqtt:topic:f06f8352c2:Configurations
label: Configuration Settings
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:253a91e196
location: Configurations
channels:
  - id: Maytag_Washer_Reporting_Frequency_n
    channelTypeUID: mqtt:number
    label: Maytag Washer Reporting Frequency
    configuration:
      commandTopic: zwave1/Washer_-_11/configuration/endpoint_0/Automatic_Reporting_Interval_Group_1/set
      formatBeforePublish: "%.0f"
      stateTopic: zwave1/Washer_-_11/configuration/endpoint_0/Automatic_Reporting_Interval_Group_1
      transformationPattern:
        - JSONPATH:$.value

Good morning
well done. sorry sure it’s zwave js ui.
That’s my thing config. you just need two topics to control the sound

UID: mqtt:topic:MQTT_NAS:SI01_Sirene
label: SI 01 Sirene
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mqtt_nas
location: Wölwes Zimmer
channels:
  - id: SI01_Volume
    channelTypeUID: mqtt:dimmer
    label: SI 01 Volume
    description: Wölwes Zimmer
    configuration:
      commandTopic: zwave/WZ/SI01/121/1/defaultVolume/set
      min: 0
      stateTopic: zwave/WZ/SI01/121/1/defaultVolume
      max: 99
  - id: SI01_Sound
    channelTypeUID: mqtt:number
    label: SI 01 Sound
    description: ""
    configuration:
      commandTopic: zwave/WZ/SI01/121/1/toneId/set
      min: 0
      stateTopic: zwave/WZ/SI01/121/1/toneId
      max: 30

Sound to play ( number item) looks like

Sound volume (dimmer item, maybe number wooks as well ) looks like

you will have to modify the mqtt topics due to your location and device name in zwave js ui

when the siren finished to play the sound it will reset the ‘Sound tone to play’ item to zero.
Every time you like to start the siren sound, ‘Sound tone to play’ needs a new command of 1 to 30 (which is the sound number). The volume can always stay constant if you like

Thanks for all the info. I do have a weird question in that I don’t recognize the things file format
 I’ve seen it in other posts but all mine use a different format, which is what the doc says:

As an example: (I can probably convert)

Thing mqtt:topic:GuestBedroomTopics “All Guest Bedroom Topics” (mqtt:broker:mqttBroker) {
Channels:
Type string : motion “Guest Bedroom Motion” [ stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/notification/endpoint_0/Home_Security/Motion_sensor_status”, transformationPattern=“REGEX:(.*)” ]
Type string : tamper “Guest Bedroom Tamper” [ stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/notification/endpoint_0/Home_Security/Cover_status” ]
Type number : illuminance “Guest Bedroom Iluminance” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/sensor_multilevel/endpoint_0/Illuminance”]
Type number : temperature “Guest Bedroom Temperature” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/sensor_multilevel/endpoint_0/Air_temperature”]
Type number : battery “Guest Bedroom Battery” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/battery/endpoint_0/level”]
Type switch : battery_low [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/battery/endpoint_0/isLow”]
Type number : LastHeardFrom “Guest Bedroom Last Heard From” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/lastActive”]
}

Sorry can‘t get your problem. Can you please use code fence while posting your code

your code goes here

Your things format is different than I’ve seen before. I will attempt to convert it.

Thing mqtt:topic:GuestBedroomTopics “All Guest Bedroom Topics” (mqtt:broker:mqttBroker) {
Channels:
Type string : motion “Guest Bedroom Motion” [ stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/notification/endpoint_0/Home_Security/Motion_sensor_status”, transformationPattern=“REGEX:(.*)” ]
Type string : tamper “Guest Bedroom Tamper” [ stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/notification/endpoint_0/Home_Security/Cover_status” ]
Type number : illuminance “Guest Bedroom Iluminance” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/sensor_multilevel/endpoint_0/Illuminance”]
Type number : temperature “Guest Bedroom Temperature” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/sensor_multilevel/endpoint_0/Air_temperature”]
Type number : battery “Guest Bedroom Battery” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/battery/endpoint_0/level”]
Type switch : battery_low [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/battery/endpoint_0/isLow”]
Type number : LastHeardFrom “Guest Bedroom Last Heard From” [stateTopic=“zwave/Guest_Bedroom/Guest_Bedroom_Motion_Sensor/lastActive”]
}```

I must be doing something fundamentally wrong. I have setup the device and the stateTopic works okay (my items are being updated) and the commandTopic update MQTT but the siren doesn’t sound. Following is my setup if you see anything wrong:

Thing mqtt:topic:Siren "Aeotec Indoor Siren 6" (mqtt:broker:mqttBroker) {
    Channels:
        Type dimmer : volume "Siren Volume" [ stateTopic="zwave/Laundry_Room/Aeotec_Indoor_Siren_6/sound_switch/endpoint_1/defaultVolume",
                                              commandTopic="zwave/Laundry_Room/Aeotec_Indoor_Siren_6/sound_switch/endpoint_1/defaultVolume/set",
                                              min=0,max=99]
        Type number : sound "Siren Sound"   [ stateTopic="zwave/Laundry_Room/Aeotec_Indoor_Siren_6/sound_switch/endpoint_1/toneId",
                                              commandTopic="zwave/Laundry_Room/Aeotec_Indoor_Siren_6/sound_switch/endpoint_1/toneId/set",
                                              min=0,max=30]
        Type string : tamper "Laundry Room Siren Tamper" [stateTopic="zwave/Laundry_Room/Aeotec_Indoor_Siren_6/notification/endpoint_0/Home_Security/Tampering_product_moved" ]
        Type number : LastHeardFrom "Laundry Room Siren Last Heard From" [stateTopic="zwave/Laundry_Room/Aeotec_Indoor_Siren_6/lastActive"]
}

Items File:

Dimmer dSirenVolume "Aeotec Siren 6 Volume" {channel="mqtt:topic:Siren:volume"}
Number nSirenSound "Aeotec Siren 6 Sound" {channel="mqtt:topic:Siren:sound"}

String tLaundryRoomSirenTamper "Aeotec Siren 6 Tamper" (gMQTTLogger,gTamper) {channel="mqtt:topic:Siren:tamper"}
DateTime tLaundryRoomSirenLastHeardFrom "Laundry Room Siren Last Heard From" (gMQTTLogger,gLastHeardFrom) ['Timestamp'] {channel="mqtt:topic:Siren:LastHeardFrom"}

Test Rule that is run via UI For testing:

  rules.JSRule({
    name: 'Sound Alarm Test Rule',
    description: 'Sound Alarm Test Rule',
    triggers: [triggers.GenericCronTrigger('0 0 12 ? * * 2040')],
    execute: (event) => {    
        //console.log('MQTTTestLogging', event.itemName + ': ' + event.receivedState);
        items.getItem('nSirenSound').sendCommand(1)          

    },
    tags: ['JSScripting Rule','File: MQTT.js'],
    id: 'MQTTSoundAlarmTest'
  });

I think the difference in appearance is the difference between defining in the UI or using text files. For troubleshooting can you trigger the sound from the ZUI page for that node? Could also try the Mqtt explorer to send a command. Just to make sure the device is responsive. Then you’ll know if it is something in OH that is not right.

Thanks for the explanation of the config file. I used to use the UI (now have switched to text) and never looked at the code tab. I’ll try more testing in ZUI.

I did try updating the toneId in ZUI “[10-121-1-toneId] Play Tone” and get an error from the app. In doing some testing this looks almost like a bug in ZUI as if I don’t set the “Send Options” volume I get the following error and if I do set it to a numeric value the error shows the numeric value in quotes like its a string.

I was wondering what significance the ‘set’ parameter is. Should we be setting the toneId directly? (I did try that, still nothing)


Since I don’t have the device I can’t be much use there. However, since @Mclupo has it working it is probably not a ZUI bug. Most ZUI params have a little up/down arrow to change values are you using that?

“Set” helps to keep things straight (If that makes sense). It creates a ZW command and if successful, the state will change. There is a radio lag (usually in ms) between the set and the state change.

EDIT: I don’t have any sound device, but setting the sound seemed to not spring an error;


Volume log 2025-05-15 205704

I think we have to focus on Zwave js ui settings.

  1. is there any device you can control directly within the ZUI web page. Like switching a light or socket outlet on /off.

  2. if that works, can you control the siren

  3. set volume to 25 and press the arrow next to the value on the right sight.Does the program confirm the parameter. if not check the ZUI settings

How did you ‘include’ the siren, with safety code or not. The siren is really a diva. Once there was an update from ZUI and I had to ‘exclude’ and ‘include’ it again, because it showed a proper connection but I could not set any volume or tune parameter.
Maybe you can tell us your components - which zwave stick - OH version and ZUI version. Where and how did you install ZUI program.

Both Eclipse-Mosquitto & zwavejs-zwave-js-ui are running in Docker Containers (On a Synology NAS).

I don’t have a lot of z-Wave devices. I have 7 motion detectors that work fine and writing and reading data to the Siren also works fine. (I can see the data in MQTT Explorer) I have a tamper alert on the siren setup and it works.

I think I am going to reinstall everything. Can you give me the version of your zwavejs-zwave-js-ui so I can make sure we are running the same thing? (Right now I use latest).

I’d already done all the manual things you mention and I always get the above errors when I try to play the tone