Aeotec Doorbell 6 button power notifications not working

Hi,

I am using OpenHAB 3.1.0 and the device Doorbell 6 from Aeotec. However the button low power notifications are not working.

The device sends a COMMAND_CLASS_ALARM with type=0x08 and event=0x0A when the button is low battery and event=0x00 when the button is normal battery.

This is what is in the debug log:

2021-07-26 23:27:30.249 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 15 00 04 00 33 0D 60 0D 03 01 71 05 00 00 00 FF 08 00 00 CD 00 F1
2021-07-26 23:27:30.251 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=51, callback=0, payload=00 33 0D 60 0D 03 01 71 05 00 00 00 FF 08 00 00 CD 00
2021-07-26 23:27:30.252 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=51, callback=0, payload=00 33 0D 60 0D 03 01 71 05 00 00 00 FF 08 00 00 CD 00
2021-07-26 23:27:30.254 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2021-07-26 23:27:30.255 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 51: Application Command Request (ALIVE:DONE)
2021-07-26 23:27:30.256 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: resetResendCount initComplete=true isDead=false
2021-07-26 23:27:30.258 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: Decapsulating COMMAND_CLASS_MULTI_CHANNEL
2021-07-26 23:27:30.259 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: Incoming command class COMMAND_CLASS_ALARM, endpoint 3
2021-07-26 23:27:30.261 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: SECURITY NOT required on COMMAND_CLASS_ALARM
2021-07-26 23:27:30.262 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 51: Received COMMAND_CLASS_ALARM V8 NOTIFICATION_REPORT
2021-07-26 23:27:30.263 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 51: NOTIFICATION report - 0 = 0, event=0, status=255, plen=0
2021-07-26 23:27:30.264 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 51: Alarm Type = POWER_MANAGEMENT (0)
2021-07-26 23:27:30.265 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 51: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2021-07-26 23:27:30.266 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 51: Got a value event from Z-Wave network, endpoint=3, command class=COMMAND_CLASS_ALARM, value=255
2021-07-26 23:27:30.267 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter processing NOTIFICATION
2021-07-26 23:27:30.268 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter NOTIFICATION event is 0, type OnOffType
2021-07-26 23:27:30.269 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter processing NOTIFICATION
2021-07-26 23:27:30.270 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter NOTIFICATION event is 0, type OnOffType
2021-07-26 23:27:30.271 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 51: Updating channel state zwave:device:458802cb:node51:alarm_power_button1 to OFF [OnOffType]
2021-07-26 23:27:30.272 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 51: Commands processed 1.
2021-07-26 23:27:30.273 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 51: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@5b5d79d1.
2021-07-26 23:27:30.274 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-07-26 23:27:30.274 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-07-26 23:27:30.275 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2021-07-26 23:27:30.276 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.
2021-07-26 23:28:20.749 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 15 00 04 00 33 0D 60 0D 03 01 71 05 00 00 00 FF 08 0A 00 CF 00 F9
2021-07-26 23:28:20.751 [DEBUG] [nal.protocol.ZWaveTransactionManager] - processReceiveMessage input 0<>128 : Message: class=ApplicationCommandHandler[4], type=Request[0], dest=51, callback=0, payload=00 33 0D 60 0D 03 01 71 05 00 00 00 FF 08 0A 00 CF 00
2021-07-26 23:28:20.752 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=ApplicationCommandHandler[4], type=Request[0], dest=51, callback=0, payload=00 33 0D 60 0D 03 01 71 05 00 00 00 FF 08 0A 00 CF 00
2021-07-26 23:28:20.753 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction null
2021-07-26 23:28:20.755 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 51: Application Command Request (ALIVE:DONE)
2021-07-26 23:28:20.756 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: resetResendCount initComplete=true isDead=false
2021-07-26 23:28:20.758 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: Decapsulating COMMAND_CLASS_MULTI_CHANNEL
2021-07-26 23:28:20.759 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: Incoming command class COMMAND_CLASS_ALARM, endpoint 3
2021-07-26 23:28:20.760 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 51: SECURITY NOT required on COMMAND_CLASS_ALARM
2021-07-26 23:28:20.761 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 51: Received COMMAND_CLASS_ALARM V8 NOTIFICATION_REPORT
2021-07-26 23:28:20.762 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 51: NOTIFICATION report - 0 = 0, event=10, status=255, plen=0
2021-07-26 23:28:20.764 [DEBUG] [.commandclass.ZWaveAlarmCommandClass] - NODE 51: Alarm Type = POWER_MANAGEMENT (0)
2021-07-26 23:28:20.767 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 51: Got an event from Z-Wave network: ZWaveAlarmValueEvent
2021-07-26 23:28:20.768 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 51: Got a value event from Z-Wave network, endpoint=3, command class=COMMAND_CLASS_ALARM, value=255
2021-07-26 23:28:20.769 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter processing NOTIFICATION
2021-07-26 23:28:20.770 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter NOTIFICATION event is 10, type OnOffType
2021-07-26 23:28:20.770 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter processing NOTIFICATION
2021-07-26 23:28:20.771 [DEBUG] [ternal.converter.ZWaveAlarmConverter] - NODE 51: Alarm converter NOTIFICATION event is 10, type OnOffType
2021-07-26 23:28:20.772 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 51: Commands processed 1.
2021-07-26 23:28:20.773 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 51: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@7bdba3e7.
2021-07-26 23:28:20.773 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-07-26 23:28:20.774 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 0
2021-07-26 23:28:20.775 [DEBUG] [nal.protocol.ZWaveTransactionManager] - ZWaveReceiveThread queue empty
2021-07-26 23:28:20.776 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction SendNextMessage 0 out at start. Holdoff false.

The first message is when the voltage returns to normal (event=0x00) and that works (channel updates) but the second message is when the voltage drops low (event=0x0A) and that doesn’t work. The channel is not updated.

The channel in the database is just:
<property name="binding:*:OnOffType">COMMAND_CLASS_ALARM:3;type=POWER_MANAGEMENT</property>

The sound notification is working with similar setup, but for these notifications the device sends event=0x01 to activate and event=0x00 to de-activate.

My question is: Is there any way to tell the binding, using the database, that event=0x0A shall set the channel to ON (and event=0x00 shall still set the channel to OFF)?

Maybe something @chris can answer?

There are more problems in the database for this device so I didn’t want to create an issue for this specific problem right away but instead ask here.

Just sending a little ping for @chris

Hi again @brydling :slightly_smiling_face:

I have chased events on a different product a few days ago, where I learned a bit about the mappings.

The important part of the channel you have found, are not just the property node, but also the typeId=“alarm_power”.

In the alarm converter class, there is a list of known events, incl. the one you are looking for, POWER_MANAGEMENT event 10:

In the same file, we can find the alarm_power type, and see the events that triggers it:
(0=OFF, 2=ON, 1=OFF, 3=OFF)

Now, your event 10 (REPLACE_BATTERY_SOON) are not mapped to any type, but event 11 (REPLACE_BATTERY_NOW) is mapped to alarm_battery.
I would argue that event 10 should be included in alarm_battery, and the device channel corrected to this type in the database, but only @chris can decide if this is the right way to go.

Hello @nza :slight_smile:

Thank you for showing me what is going on behind the scenes! Now I understand a tiny bit more on how the alarm command class is handled in the binding :slight_smile:

Didn’t know these events had standardized meanings. In the Z-Wave PC Controller application Event is just a number, as opposed to Notification Type and Notification Status that are drop-downs with a text-string for each value. So I incorrectly believed it was just hard-coded in the binding that event=1 will set the channel ON and event=0 will set the channel OFF :slight_smile:

Looks like a code change is required then. I’ll await confirmation from @chris before creating an issue.

Another question: Do you know if there is any developer documentation for this binding? Like how to set up a build environment, the process with issues and pull-requests, and maybe even code documentation?

I followed this for build environment: Developer Guide | openHAB

Issues and pull-requests are described here: Contribution | openHAB

1 Like