Aeotec ZW122 - Water Sensor Gen 6

Does anyone have this particular device working and working well? Could you share what you’ve done?

I’ve got it paired with, and recognized by HA, but I can’t get it working in a way that I think that it should. Specifically, I think that there should be a binary sensor that trips whenever one of the sensors detects a change. That sensor was there for a bit after pairing, but it’s gone now. It’s remnants, however, continue to exist in entity_registry.

binary_sensor.aeotec_zw122_water_sensor_6_sensor:
  config_entry_id:    
  name:           
  platform: zwave
  unique_id: 6-72057594143571968

As do the rest of its components (2 of everything)

zwave.aeotec_zw122_water_sensor_6:                                                                                
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: node-6                                                                                               
sensor.aeotec_zw122_water_sensor_6_alarm_type:                                                                    
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-144115188182564865                                                                                 
sensor.aeotec_zw122_water_sensor_6_alarm_level:                                                                   
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-144115188182564881                                                                                 
sensor.aeotec_zw122_water_sensor_6_temperature:                                                                   
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-72057594143588370                                                                                  
sensor.aeotec_zw122_water_sensor_6_sourcenodeid:                                                                  
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-72057594144636961                                                                                  
sensor.aeotec_zw122_water_sensor_6_flood:                                                                         
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-72057594144637057                                                                                  
sensor.aeotec_zw122_water_sensor_6_sourcenodeid_2:                                                                
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-144115188182564897                               
sensor.aeotec_zw122_water_sensor_6_flood_2:                                                                       
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-144115188182564993                                                                                 
sensor.aeotec_zw122_water_sensor_6_alarm_type_2:                                                                  
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-72057594144636929                                                                                  
sensor.aeotec_zw122_water_sensor_6_alarm_level_2:                                                                 
  config_entry_id:                                                                                                
  name:                                                                                                           
  platform: zwave                                                                                                 
  unique_id: 6-72057594144636945                                

How do I tame this thing?

I don’t one of those specifically but I have an Aeotec DSB45 water sensor.

I had to change the report type to send in order for the binary sensor to get a notification.

as fas as the entity registry I do the following on adding any zwave device:

  1. add the device in HA z wave control panel.
  2. restart HA.
  3. rename the node to something useful
  4. rename the existing entity_registry file to something else (usually entity_registry.yaml.old)
  5. restart HA

then the device id should match the new node name with the specifiers after (_flood, _alarm_level, etc)

I probably should have mentioned - this thing is definitely not a DSB45. I’ve been over the DSB45 config suggestions multiple times and they don’t seem to apply here.

Tech specs are available here: https://aeotec.freshdesk.com/support/solutions/articles/6000176513-water-sensor-6-technical-specification-

And downloadable PDF here: https://aeotec.freshdesk.com/helpdesk/attachments/6051698050

Maybe someone who understands this stuff better than me can help?

Thanks in advance, everyone. I appreciate the help.

I have two of these but don’t have them fully working either.

The water sensors seem to work okay, each has two. I made my own binary sensor

      kitchen_sink_water_sensor:
        friendly_name: "Kitchen Sink Water Sensor"
        device_class: moisture
        value_template: >-
          {{ is_state('sensor.kitchen_sink_sensor_flood', '2')
             or is_state('sensor.kitchen_sink_sensor_flood_2', '2') }}

I only wanted water/temp and so you can disable some of the alerts by going to config parameter 87.

The temperature doesn’t seem to update and I can’t figure it out. If anyone has any ideas please let me know!

1 Like

Thanks for the idea of the template! it worked fine in my case as well.
I also noticed that the temperature sensor seems stuck an not updating (and I also notice the value is way off from reality, reporting 21.1C when the real temp is 24C). Did you find out how to solve this?

I haven’t. There is a way to calibrate the temperature from the zwave options of the device but I still haven’t figured out a way to get the temperature to report on a schedule. I noticed if I reboot Home Assistant the temperature will change but won’t change again until another reboot. Sad because I was keen to measure temperature under my kitchen sink along with monitoring for water. The sink is against the outside of the house and it can get very cold there.

Thanks. Just calibrated de sensor, this worked. My sensor does report temperature when I press the action button in it. I also noticed there is a parameter for “unsolicited reports”, it was set to “nothing” by default. Just changed it to “temperature” - will see if it works

Yea I tried adjusting the unsolicited reports setting but it didn’t work. Hope you have better luck.

same issue :frowning: - the device is not sending unsolicited temperature updates for some reason.

Darn. I can confirm the problem exists with a battery or while powered. The sensor under the sink is using battery while the sensor in the laundry room is using a dock and powered by USB. Hopefully, someone will figure this out soon, the google does nothing.

FWIW, I do notice that the device is waking up and sending packets as configured, e.g.

2018-07-22 19:36:22.102 Info, Node004, Sending (WakeUp) message (Callback ID=0x16, Expected Reply=0x13) - WakeUpCmd_NoMoreInformation (Node=4): 0x01, 0x09, 0x00, 0x13, 0x04, 0x02, 0x84, 0x08, 0x25, 0x16, 0x5c
2018-07-22 19:36:22.111 Detail, Node004,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2018-07-22 19:36:22.111 Detail, Node004,   ZW_SEND_DATA delivered to Z-Wave stack
2018-07-22 19:36:22.126 Detail, Node004,   Received: 0x01, 0x07, 0x00, 0x13, 0x16, 0x00, 0x00, 0x02, 0xff
2018-07-22 19:36:22.127 Detail, Node004,   ZW_SEND_DATA Request with callback ID 0x16 received (expected 0x16)
2018-07-22 19:36:22.127 Info, Node004, Request RTT 23 Average Request RTT 23
2018-07-22 19:36:22.127 Info, Node004,   Node 4 has been marked as asleep
2018-07-22 19:36:22.127 Detail,   Expected callbackId was received
2018-07-22 19:36:22.127 Detail,   Expected reply was received
2018-07-22 19:36:22.127 Detail,   Message transaction complete
2018-07-22 19:36:22.127 Detail, 
2018-07-22 19:36:22.127 Detail, Node004, Removing current message
2018-07-22 19:36:22.127 Detail, Node004, Notification: Notification - Node Asleep

I’m thinking the issue may be related to Parameter 0x30

0x30 (48)
Enable/disable the sensor report
Bit =0, the corresponding sensor report is disabled
.
Bit =1, the corresponding sensor report is enabled.

In the spec, it says:

The value in HA’s GUI can only be set to 0 or 1, and it is set to 1 by default. So maybe that’s why the sensor is only reporting leaks (bit 0).
I think we may need to set this parameter to 55, so it reports everything whenever it communicates. Maybe an HA issue.

I have temp working now, although it’s not reporting per-se

I’m getting one sample every time the device wakes up. 3600secs in my case

@keith-michael try this:

create: “zwave_device_config.yaml” if you don’t have one
And add (adapt to your case):

  	sensor.aeotec_zw122_water_sensor_6_temperature:
  	  ignored: false
  	  polling_intensity: 120

(In the beginning I thought polling intensity zero (no polling) would work, but it doesnt; 120 = queue one polling request every 2 hours)

Yea, 0 didn’t work for me either. I’m trying 15 now to see if I can get a quick update and will probably move it up to 60.

EDIT: Hmmm 15 doesn’t work either and I’m left wondering if my zwave device configs are working at all - I had a few already for lights.

EDIT2: I came across this:

polling_intensity (Optional): Enables polling of a value and sets the frequency of polling (0=none, 1=every time through the list, 2=every other time, etc)

So I’m not sure 120 will work. I let the value of 1 go for a while but no change. These little buggers are a PITA

I’m pretty sure I have it working.

@ariel was on to something. I believe the parameter is 48, not 30 but everything else is correct. The interface shows what options we have for this parameter but as mentioned the form wants either a 1 or 0.

I was able to get things working by making a service call

service: zwave.set_config_parameter

for service data use something like this

{"node_id":86,"parameter":48,"value":55}

where node_id i your node_id

edit: I also recommend you adjust polling_intensity to 1 or 2, or remove entry entirely and see how things work.

That’s right - parameter 48 == hex 30

Very smart workaround to get the parameter set! I was looking into modifying the OZW templates for the value range but since I was getting readings and that looked over-complicated I just dropped it.

I did the parameter change, it appears to be working, I am now seeing “multilevel sensor report” with each wake-up. I believe I wasn’t seeing “reports” before from the sensor at all. There were the Gets from the controller and responses from the sensor

I removed the polling configuration (all the device configuration actually) but I still see HA setting up polling for this sensor. I believe this is because I created template sensors for temperature and battery and HA assumes it needs to poll (just guessing). So I am seeing, with every wake-up, a “Get” being sent. I.e. it’s not just the unsolicited reports.

One thing I haven’t tested is to set Wake up = 7200 and leave Unsolicited report interval = 3600. I guess that would clear up doubts on whether the sensor is now actually reporting on its own before being asked.

I did some tests.

I could remove polling for real by editing the zwcfg xml file (while HA was stopped) and setting all polling intensities to zero. HA/OZW stopped sending Gets and the unit stopped reporting temp.

After going through the docs again, I now think that the Unsolicited Reports are ONLY triggered when the device crosses the High/Low temp boundaries, otherwise it doesn’t report anything. A bit worse than that, since there is a “recovery parameter” (see the doc), say tricking the High boundary and setting it to 0 C will only get the unit to send ONE report and that’s it.

I have an aeotec multi-sensor on USB-power, it has the same parameter 0x30, and they call it “Enable/disable to send a report on threshold”. With the Water sensor, when on battery, the bitmask posted above shows “notification for under-heat” “over-heat” etc.

I guess they do this to save battery.

So back to polling. With all of this I’m learning that there is no real ‘polling’ of battery powered devices. The polling intensity seems meangless in this case. As long as polling is enabled, then whenever the devices happens to Wake Up, immediately OZW sends it a Get command for the sensor values, and that’s it.

So going back to polling, with wakeup interval = 7200, hoping to get two years of battery life.

I just purchased this sensor and was reading up on temp readings. Mine seems to only take 0 and 1 for 0x30 (48) I tried to change the value to 55 in both the zwave configuration and a zwave.set service call but it wont take. I’ve made other changes so I feel comfortable with my process of waking the device up, etc. I get temp reports so I think ‘1’ is sending everything. Just odd its the same sensor, presumably the same firmware, but yet not the same regarding this option. I am not polling, just letting the default device wakeup period transmit values.

I just ordered one of these, I had been using a Samsung one but the flood happened so bad it was under water too long and died. I figured I would switch to zwave. Does the siren on this unit go off for long? Can you disable that with parameters?

The alarm isn’t very loud at all, I barely hear my basement sump when I’m standing at the top of the steps.

…I have an automation that turns on a second pump via wemo for 55sec and send me a text when water is detected

Any ideas for battery level monitoring? I can’t seem to find any info about how it will behave in a low battery situation.