[SOLVED] Aeotec water sensor DSB45, binary "channel"

Hello all,

I have purchased an Aeotec water sensor (DSB45) and I successfully included it into my Z-wave network. It has been fully recognized by the binding. The battery “channel” is working fine, I have the battery information displayed on my sitemap.

However, I cannot get the binary “channel” to work.

Here is my item:

// Aeotec water sensor
Switch sKitchen_watersensor_binary (gKitchen, gPersistence) { channel="zwave:device:2fb92a0a:node12:sensor_binary" }
Switch sKitchen_watersensor_alarm (gKitchen) { channel="zwave:device:2fb92a0a:node12:alarm_general" }
Number nKitchen_watersensor_battery (gKitchen, gBattery) { channel="zwave:device:2fb92a0a:node12:battery-level" }

Sitemap:

Frame label="Water sensor" {
		Switch item=sKitchen_watersensor_binary label="Water sensor" icon="cistern-0" mappings=[OFF="Dry"] visibility=[sKitchen_doorsensor_binary==OFF]
		Switch item=sKitchen_watersensor_binary label="Water sensor" icon="cistern-100" mappings=[ON="Wet"] visibility=[sKitchen_doorsensor_binary==ON]
		Switch item=sKitchen_watersensor_alarm label="General alarm" 
		Text item=nKitchen_watersensor_battery label="Battery [%s %%]" icon="battery"
	}

Every time I put the sensor in water I see the following in the event.log:


2017-06-18 16:04:56.407 [ItemStateChangedEvent     ] - zwave_serial_zstick_2fb92a0a_serial_sof changed from 545 to 546

I expect to see something like this in event.log but it doesn´t show up.

2017-06-18 16:12:45.516 [ItemStateChangedEvent     ] -  sKitchen_watersensor_binary changed from OFF to ON

The configuration in Habmin panel is default, I haven´t changed anything.
Do I have to configure something specific through Habmin panel?

Cheers
Likonaus

I got it working now. After 2 hrs of waiting it all of a sudden started working…

Most battery powered devices do send the battery status only during wakeup or even less …

Hello,

I have configured things like battery level but when I put the sensor in water, nothing happens in the Log Viewer…
Any tips how I can resolve this issue?

I don’t know which log viewer you are pointing to, but you have to:
make sure your device thing is online,
the channels you want to work with are linked to an item,
and then check your events.log for any state changes for that item.

Well,

I have setup everything correctly like in the post above. I have made buttons to “enable” the binary sensor? Don’t know if this is needed.

In domoticz, the log is updated whenever I put the sensor under water. In Openhab, nothing happens.

I guess you mean a switch item. Look at your events.log and you should see something like

2017-12-30 05:37:05.598 [ome.event.ItemCommandEvent] - Item 'YourItemName' received command ON or OFF

If your “Thing” in PaperUI is online (menas your hardware is working) and you don’t see any item state changes, you probably need to wake up your sensor (there is usually a button on the device for this).

Hi sihui,

I just don’t understand if I need to switch on these channels everytime I boot openhab2.

Guessing that the sensor reports a value when it is under water to the controller, why is the item not a number, but a switch?

When I put the sensor under water, the following log appears when I enable zwave logging.

==> /var/log/openhab2/openhab.log <==
2017-12-30 23:12:43.043 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 02 03 20 01 FF 2D
2017-12-30 23:12:43.052 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-12-30 23:12:43.055 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 04 00 02 03 20 01 FF 2D
2017-12-30 23:12:43.058 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 04 00 02 03 20 01 FF 2D
2017-12-30 23:12:43.060 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 03 20 01 FF
2017-12-30 23:12:43.063 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Application Command Request (ALIVE:DONE)
2017-12-30 23:12:43.065 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
2017-12-30 23:12:43.067 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@179c0e already registered
2017-12-30 23:12:43.069 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Incoming command class BASIC
2017-12-30 23:12:43.071 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Received Basic Request
2017-12-30 23:12:43.073 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Basic Set sent to the controller will be processed as Basic Report
2017-12-30 23:12:43.075 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Basic report, value = 0xFF
2017-12-30 23:12:43.077 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-12-30 23:12:43.079 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-12-30 23:12:43.081 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 255
2017-12-30 23:12:43.084 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=10, payload=02 02 84 08
2017-12-30 23:12:43.087 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 03 20 01 FF
2017-12-30 23:12:43.089 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=10, expected=SendData, cancelled=false      MISMATCH
2017-12-30 23:12:44.044 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 02 03 20 01 00 D2
2017-12-30 23:12:44.048 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2017-12-30 23:12:44.051 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 09 00 04 00 02 03 20 01 00 D2
2017-12-30 23:12:44.055 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 09 00 04 00 02 03 20 01 00 D2
2017-12-30 23:12:44.059 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 03 20 01 00
2017-12-30 23:12:44.061 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Application Command Request (ALIVE:DONE)
2017-12-30 23:12:44.064 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
2017-12-30 23:12:44.066 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@179c0e already registered
2017-12-30 23:12:44.068 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Incoming command class BASIC
2017-12-30 23:12:44.070 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Received Basic Request
2017-12-30 23:12:44.072 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Basic Set sent to the controller will be processed as Basic Report
2017-12-30 23:12:44.075 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Basic report, value = 0x00
2017-12-30 23:12:44.077 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-12-30 23:12:44.079 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-12-30 23:12:44.081 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 0
2017-12-30 23:12:44.085 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Sent Message: class=SendData[0x13], type=Request[0x00], priority=Immediate, dest=2, callback=10, payload=02 02 84 08
2017-12-30 23:12:44.088 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: Recv Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, payload=00 02 03 20 01 00
2017-12-30 23:12:44.090 [DEBUG] [.serialmessage.ZWaveCommandProcessor] - Checking transaction complete: class=ApplicationCommandHandler, callback id=10, expected=SendData, cancelled=false      MISMATCH
^C

NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 255

So I guess that command class BASIC has a value of 255 when the sensor is under water. It changes back to 0 when I the sensor doesn’t detect water anymore.

How to proceed further with this value? For example, sending myself an email with “mail action” or make a button in habpanel that lights up when the sensor is detecting water?

NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = BASIC, value = 255

Unfortunately, with zwave devices there are often multiple ways to do things. The device is configured to use a simple command that is normally used to turn on lights, or send commands directly to devices…

Check the configuration of the device so that it’s configured to send the “better” commands when used with a controller. I think it looks like parameter 121 should be configured.

Hi Chris,

I have configured parameter 121 in habmin.

When I dip the sensor in water, following appears in the debug log. It it sending the ALARM class with ALARM type FLOOD so I guess that’s good news :slight_smile:

2017-12-31 15:21:48.286 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Application Command Request (ALIVE:DONE)
2017-12-31 15:21:48.288 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 2: Starting initialisation from DONE
2017-12-31 15:21:48.290 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@179c0e already registered
2017-12-31 15:21:48.292 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 2: Incoming command class ALARM
2017-12-31 15:21:48.294 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: Received ALARM command V2
2017-12-31 15:21:48.296 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: Process NOTIFICATION_REPORT V2
2017-12-31 15:21:48.297 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: NOTIFICATION report - 0 = 255, event=2, status=255
2017-12-31 15:21:48.299 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: Alarm Type = FLOOD (0)
2017-12-31 15:21:48.301 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveAlarmValueEvent
2017-12-31 15:21:48.303 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2017-12-31 15:21:48.305 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = ALARM, value = 255

What would you advise me to do next? I just want to start with something simple. For example, making a widget that gives some kind of alert on screen when water is detected.

Thanks!

I’d advise a nice beer (or whatever you drink) since it’s New Year :slight_smile: .

Seriously though… There’s still a small problem with the database definition that means this isn’t working for you. I’ve just edited the database to hopefully fix this and started a rebuild. If you give it 30 minutes or so then try the latest snapshot. You will need to delete the thing and add it back again for it to pick up the new definition.

Aeotec support mailed me this:

“Also could you configure Parameter 121[4 byte] = 272 to report both sensor reports to see if it work?”

Afaik you can only set the value of parameter 121 to 1,2,3 or 4?

Are you aware of this specific parameter setting? I can’t find documentation about this in their PDF.

Engineering-Spec—Aeon-Labs-Water-Sensor-V1-02.pdf (380.7 KB)

Yes -:

I assume this is from Chris at Aeotec (great support there :slight_smile: ) - he’s saying to set both the basic and sensor binary bits. I’m not sure how our database is configured - it might be exclusive, but the device does allow multiple settings.

However, I would suggest to leave it as it is and try the updated version when it builts (it looks like there is a problem with the build at the moment - maybe the issue with bintray!). If yo do change the setting as Chris suggested, it will not work. The alarm bit must also be set based on the current database configuration. You could set all 3 bits (probably) but that will just generate a number of extra frames…

I’m still struggling with getting this sensor to work. It is at least doing something whenever I put it in water and it is also sending something in the debug.log when I extract it from the water but further then that, I don’t know what to do with it.

I tried creating a simple switch knob in Habpanel to try to make it go “ON” when the sensor is under water but whatever I try, it’s not working.

Sensor in water:

2018-12-13 10:13:27.600 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 02 03 20 01 FF 2D
2018-12-13 10:13:27.606 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 03 20 01 FF
2018-12-13 10:13:27.609 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 03 20 01 FF
2018-12-13 10:13:27.611 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2018-12-13 10:13:27.613 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Application Command Request (ALIVE:DONE)
2018-12-13 10:13:27.615 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false
2018-12-13 10:13:27.617 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Incoming command class COMMAND_CLASS_BASIC, endpoint 0
2018-12-13 10:13:27.619 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
2018-12-13 10:13:27.621 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 2: Received COMMAND_CLASS_BASIC V1 BASIC_SET
2018-12-13 10:13:27.623 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Basic report, value = 255
2018-12-13 10:13:27.625 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2018-12-13 10:13:27.627 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_BASIC, value = 255
2018-12-13 10:13:27.630 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Commands processed 1.
2018-12-13 10:13:27.631 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@1b08b29.
2018-12-13 10:13:27.633 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2018-12-13 10:13:27.635 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2018-12-13 10:13:27.637 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2018-12-13 10:13:27.639 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

Sensor out of the water:

2018-12-13 10:13:59.255 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 09 00 04 00 02 03 20 01 00 D2
2018-12-13 10:13:59.260 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 03 20 01 00
2018-12-13 10:13:59.263 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=2, callback=0, payload=00 02 03 20 01 00
2018-12-13 10:13:59.265 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2018-12-13 10:13:59.268 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Application Command Request (ALIVE:DONE)
2018-12-13 10:13:59.270 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: resetResendCount initComplete=true isDead=false
2018-12-13 10:13:59.273 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: Incoming command class COMMAND_CLASS_BASIC, endpoint 0
2018-12-13 10:13:59.276 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 2: SECURITY not supported
2018-12-13 10:13:59.278 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 2: Received COMMAND_CLASS_BASIC V1 BASIC_SET
2018-12-13 10:13:59.281 [DEBUG] [.commandclass.ZWaveBasicCommandClass] - NODE 2: Basic report, value = 0
2018-12-13 10:13:59.284 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2018-12-13 10:13:59.286 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_BASIC, value = 0
2018-12-13 10:13:59.289 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Commands processed 1.
2018-12-13 10:13:59.292 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 2: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@91ed4.
2018-12-13 10:13:59.294 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2018-12-13 10:13:59.297 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2018-12-13 10:13:59.299 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2018-12-13 10:13:59.302 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

I’ve made a database update that will hopefully fix this - the device is sending the BASIC command rather than the SENSOR_BINARY command. Maybe this is configurable in the device, but otherwise the database update should also fix it.

Thank you Chris, I’m not seeing your commit on github yet?

No - I’ve not done it yet. I will do so in the next day or so (probably tomorrow night).

I realised that maybe I confused matters… When I said I’d updated the database - I have. However, this is only exported into the binding (via the github PR) every few days, and this part I’ve not done yet.

I hope that clarifies the above point where I said I’d updated the database already and apologies if I confused matters…

No worries, I have patience my friend :smiley:

@chris

The issue has been solved now. All reports are sent correctly. I’m posting the right configuration parameters if anyone ever has same issues.

2019-01-12 16:26:44.639 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 2: Received COMMAND_CLASS_SENSOR_BINARY V1 SENSOR_BINARY_REPORT
2019-01-12 16:26:44.641 [DEBUG] [dclass.ZWaveBinarySensorCommandClass] - NODE 2: Sensor Binary report, type=Unknown, value=255
2019-01-12 16:26:44.644 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveBinarySensorValueEvent
2019-01-12 16:26:44.647 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_SENSOR_BINARY, value = 255
2019-01-12 16:26:44.650 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Updating channel state zwave:device:e1504979:node2:sensor_binary to ON [OnOffType]

2019-01-12 16:26:44.737 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 2: Received COMMAND_CLASS_ALARM V2 NOTIFICATION_REPORT
2019-01-12 16:26:44.739 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: ALARM report - 0 = 255
2019-01-12 16:26:44.741 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 2: Alarm Type = FLOOD (0)
2019-01-12 16:26:44.744 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2019-01-12 16:26:44.746 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_ALARM, value = 255
2019-01-12 16:26:44.748 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 2: Alarm converter processing ALARM
2019-01-12 16:26:44.751 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 2: Updating channel state zwave:device:e1504979:node2:alarm_flood to ON [OnOffType]

Settings in HABMIN