Battery level, Aeotec Door/Window sensor 6 ZW112

I have trouble getting battery level for my Aeotec Door/Window sensor 6 ZW112. From the log it seems that the controller sends a request for status. I have got one update of the battery level when doing a parameter change (changed wake up time to 4 minutes for test).

Logfile showing the one time only battery update for Node 4 at 20:41:09.908. My other ZW112 (Node 15) have newer been updating the battery status. Both have the same settings.

2017-10-05 20:41:09.907 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Application Command Request (ALIVE:DONE)
2017-10-05 20:41:09.907 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: resetResendCount initComplete=true isDead=false
2017-10-05 20:41:09.907 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Incoming command class COMMAND_CLASS_BATTERY, endpoint 0
2017-10-05 20:41:09.907 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY not supported
2017-10-05 20:41:09.907 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 4: Received COMMAND_CLASS_BATTERY V1 BATTERY_REPORT
2017-10-05 20:41:09.907 [DEBUG] [ommandclass.ZWaveBatteryCommandClass] - NODE 4: Battery report value = 58
2017-10-05 20:41:09.907 [DEBUG] [ve.internal.protocol.ZWaveController] - Notifying event listeners: ZWaveCommandClassValueEvent
2017-10-05 20:41:09.907 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-10-05 20:41:09.908 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Got a value event from Z-Wave network, endpoint = 0, command class = COMMAND_CLASS_BATTERY, value = 58
2017-10-05 20:41:09.908 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 4: Updating channel state zwave:device:1:node4:battery-level to 58 [DecimalType]
2017-10-05 20:41:09.908 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Commands processed 1.
2017-10-05 20:41:09.910 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking command org.openhab.binding.zwave.internal.protocol.ZWaveCommandClassPayload@442ad0b7.
2017-10-05 20:41:09.909 [DEBUG] [ntime.internal.engine.RuleEngineImpl] - Executing rule 'Verrandadør 2. etg batteri tid for siste oppdatering'
2017-10-05 20:41:09.909 [DEBUG] [sistence.rrd4j.internal.RRD4jService] - Stored 'Door_2etg_batt' with state '58' in rrd4j database
2017-10-05 20:41:09.910 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Start transaction timer to Thu Oct 05 20:41:11 CEST 2017 - 1994ms
2017-10-05 20:41:09.911 [DEBUG] [.internal.InfluxDBPersistenceService] - got DecimalType value 58
2017-10-05 20:41:09.911 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking transaction 154  ApplicationCommandHandler.
2017-10-05 20:41:09.911 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking transaction : state >> WAIT_RESPONSE
2017-10-05 20:41:09.911 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking transaction : node  >> 4
2017-10-05 20:41:09.911 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking transaction : class >> 128 == 32.
2017-10-05 20:41:09.911 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Checking transaction : commd >> 3 == 3.
2017-10-05 20:41:09.911 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Ignoring transaction since not waiting for data.
2017-10-05 20:41:09.912 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 1
2017-10-05 20:41:09.912 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Transaction completed - outstandingTransactions 1
2017-10-05 20:41:09.912 [DEBUG] [nal.protocol.ZWaveTransactionManager] - Received msg (0): Message: class=null[0x00], type=CAN[0x04], dest=255, callback=0, payload=
2017-10-05 20:41:09.912 [DEBUG] [nal.protocol.ZWaveTransactionManager] - lastTransaction TID 154: [WAIT_RESPONSE] requiresResponse=false callback: 80
2017-10-05 20:41:09.912 [DEBUG] [nal.protocol.ZWaveTransactionManager] - TID 154: Resetting transaction
2017-10-05 20:41:09.912 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: notifyTransactionResponse TID:154 WAIT_RESPONSE
2017-10-05 20:41:09.914 [DEBUG] [.internal.InfluxDBPersistenceService] - got DateTimeType value 1507228869913
2017-10-05 20:41:09.915 [INFO ] [pse.smarthome.model.script.Hendelser] - Verrandadør 2. etg. Batteri = [58]
2017-10-05 20:41:09.916 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Adding to device queue
2017-10-05 20:41:09.916 [DEBUG] [nal.protocol.ZWaveTransactionManager] - NODE 4: Added to queue - size 0

@chris are you able to look into this?

Battery update is only performed every few hours (ie the binding polls every hour or so). The device then needs to wake up to actually receive the message and respond.

I’m not really sure what you want me to look at? The log looks fine so clearly it’s working.

So the battery update is a request from the binding to the device about battery status?

For a device that wakes up once a day how will this work. Is the request buffered and sent to the device when awake or does the device have to be awake when the request is sent?

Since I have had none updates for the battery status for the last 5 months I guess the device has to be awake when the request is sent.

The message requesting battery status is placed in a send/transmit queue. When the device wakes up (it “announces” that it is awake by sending a message to the controller), the binding sends the messages that are in the queue. Note that the queue is memory-based, so those queued messages won’t survive an OH restart.

With the binding in debug mode, you should be able to see the battery request being placed in the queue. And, some time later, you also should to see the wakeup notification being received by the binding, along with the queued messages being sent.

1 Like

That’s great information. The strange thing is that I have two identical devices with the same parameters set but one updates the battery status every 2nd hour and the other one aprox every 12th hour.

As earlier stated about never having battery status update: After setting the wake up time to 240s yesterday I started to get updates with the sequence mentioned above.

@vegarroe The two things you want to check in the configuration of those devices – the polling period and the wakeup interval. Those two parameters will determine the frequency with which you will receive updates from a device.

Edit: I should note that changes to the polling period will take effect immediately, because that is controlled by the binding. Changes to the wakeup interval will take effect the next time the device wakes up (as it is a message that is queued for transmission to the device).

1 Like

Hi

I have the same device and only get battery level 100% or 0%.
Is this how it works? Somehow a Lowbat-Level? Or do others see the “real” level like 68%?

Thanks & BR
Michael

Most devices should provide a battery percentage - this is what the binding will provide assuming the device is providing the information.

My experiance with zwave devices and battery is the following.

  • Fibaro flood sensor battery % is working perfectly it seems like.
  • Aeon multisensor only 100% and 0%
  • Fibaro smoke sensor 100% and 0% (have not seen 0 % yet)
  • IDlock - 100% all the time.
  • Sensative Z-wave strip - So far only 100%

Anyone managed to configure this sensor to make it report back battery in a proper way?

There should not be any problem with battery reporting - other than typically on these kind of devices, the measurement is pretty poor as they tend to use voltage rather than integrating energy. Voltage remains flat, so battery percent stays at 100% for a long time and then quickly drops.

@vegarroe
I come back to these old post. I run into the same problem. All other z-wave devices report battery state minimum every 6h. Only this device not. How ofter does your device update battery status?

Can you give me your parameter for:

  • parameter 19:
  • parameter 101:
  • parameter 111:
  • wakeup interval:

I think a combination of this 4 parameters controll the time interval to send battery status updates.

@HomeAutomation, I have two of these sensors.

  • parameter 19: I don’t see this parameter. Did you think of parameter 39? 39 is set to 20
  • parameter 101: Enable
  • parameter 111: 240
  • wakeup interval: 240

About the real update interval I have to get back after I’ve checked the logs.

@vegarroe
ups my fault. Yes not parameter 19 it is parameter 39.

I use parameter 111 and wakup interval with 3600. I will test it with 240. Will report, thanks

Thanks, I’ll also try.

Tried these intervals without success.
The node is operating correctly but no battery status.
Any other suggestions?
And anyone else with a knowledge of how often it does report battery status? (I have seen it I know it can ;-))

Get a debug log and find out what is happening… Enable debug logging for the binding, then see if the data is being polled or not…

I changed parameter 111 and wakeup interval to 240. Every 6 hours an update to the battery state is send now. Very strange because 240 means 240sec. But It is working even if the battery value is not changed, an update is send.

I did some log filtering and parameter changes last night and changed the parameter 111 to 720s and polling periode to 1 hour after reading this post:
https://www.domoticz.com/forum/viewtopic.php?f=24&t=12136&sid=1a8380757f1c602355627e667314100e&start=20#p128293
and another forum where it was stated that there were trouble with battery updates if the parameter 111 was set below 10min (600s) (can’t find back to the forum where this was mentioned). Now I have had battery and status updates every hour!

For the reference here are the other settings:
1: Value that will be sent on open/close events
On for opened, Off for closed

39: Low battery threshold (10% to 50%)
20

101: Low battery voltage check
Enable

111: Low battery voltage check time
720

121: Reporting mode on open/close event
Send Basic Set CC

252: Lock/Unlock all configuration parameters
Unlock

255: Reset sensor to factory default and remove from network
0

From my testing it seems that the parameter that at the end defines when to get update for battery (and a status update for the switch) is the polling parameter, see screen shot. In addition the status of the switch of course are sent on change.

To get this working the parameter 111 has to be shorter than the polling parameter, e.g. 111 < 3600s for 1 hour polling. Mine is set to 111 = 720s.

I also see from the logs that despite setting the wake up time to 240s it wakes up every 720s.

Log for my two nodes 4 and 15, 8 minutes (720s) between wake up:

2018-04-09 21:01:38.230 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Incoming command class COMMAND_CLASS_WAKE_UP, endpoint 0
2018-04-09 21:01:38.230 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 15: Received COMMAND_CLASS_WAKE_UP V2 WAKE_UP_NOTIFICATION
2018-04-09 21:01:39.234 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured
2018-04-09 21:05:31.844 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Incoming command class COMMAND_CLASS_WAKE_UP, endpoint 0
2018-04-09 21:05:31.844 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY NOT required on COMMAND_CLASS_WAKE_UP
2018-04-09 21:05:31.844 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 4: Received COMMAND_CLASS_WAKE_UP V2 WAKE_UP_NOTIFICATION
2018-04-09 21:05:32.847 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY NOT required on COMMAND_CLASS_WAKE_UP
2018-04-09 21:05:32.847 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured
2018-04-09 21:09:44.478 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Incoming command class COMMAND_CLASS_WAKE_UP, endpoint 0
2018-04-09 21:09:44.478 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 15: Received COMMAND_CLASS_WAKE_UP V2 WAKE_UP_NOTIFICATION
2018-04-09 21:09:45.480 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured
2018-04-09 21:13:39.135 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Incoming command class COMMAND_CLASS_WAKE_UP, endpoint 0
2018-04-09 21:13:39.136 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY NOT required on COMMAND_CLASS_WAKE_UP
2018-04-09 21:13:39.136 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 4: Received COMMAND_CLASS_WAKE_UP V2 WAKE_UP_NOTIFICATION
2018-04-09 21:13:40.137 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY NOT required on COMMAND_CLASS_WAKE_UP
2018-04-09 21:13:40.138 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured
2018-04-09 21:17:49.476 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Incoming command class COMMAND_CLASS_WAKE_UP, endpoint 0
2018-04-09 21:17:49.477 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 15: Received COMMAND_CLASS_WAKE_UP V2 WAKE_UP_NOTIFICATION
2018-04-09 21:17:50.479 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured
2018-04-09 21:21:45.822 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Incoming command class COMMAND_CLASS_WAKE_UP, endpoint 0
2018-04-09 21:21:45.823 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY NOT required on COMMAND_CLASS_WAKE_UP
2018-04-09 21:21:45.823 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 4: Received COMMAND_CLASS_WAKE_UP V2 WAKE_UP_NOTIFICATION
2018-04-09 21:21:46.824 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: SECURITY NOT required on COMMAND_CLASS_WAKE_UP
2018-04-09 21:21:46.825 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 4: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured
2018-04-09 21:25:55.620 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Incoming command class COMMAND_CLASS_WAKE_UP, endpoint 0
2018-04-09 21:25:55.621 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 15: Received COMMAND_CLASS_WAKE_UP V2 WAKE_UP_NOTIFICATION
2018-04-09 21:25:56.622 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 15: Command Class COMMAND_CLASS_WAKE_UP is NOT required to be secured```

@chris is there any good guide for:

  • What the difference parameters do (the ones valid for the node and the ones valid for the binding side) and how they interact and influence each other.
  • How to filter the logs (keywords) to easier post the correct parts of logs for faster forum response and understanding