Low battery report from Aeon Labs Multisensor 6

The Aeon Labs Multisensor 6 (ZW100) has a configuration parameter (#39) labeled low battery report.

Is it possible in openHAB to receive these reports to trigger a rule? I don’t see any relevant channel in the device properties in paperUI. It would be great to have a rule that sent a notification when the battery level threshold is reached. I realise I could use the battery level channel and create a rule, but it seems like it would make for less code to write and maintain if a low battery warning from the device itself could be detected.

Stupid question, have you clicked ‘show more’ on the Paper UI thing page of the sensor? (I’ve spent many an hour scratching my head as to why a channel I know should be there isn’t for this very reason)

If it’s not listed as a channel I doubt it can be added as a channel. If it is in there and you can link it then it’s just an item so won’t alert you, you’ll just have to write a very quick rule for if batterylevel < 10% then do xyz…

There should be a battery level channel - if not, the database is incorrectly configured. This channel carries the low battery - it’s the same thing, and it is represented as 0%.

I have 8 of these; here’s the items I use for them. DateTime LoftSensor_Update is a self created item.

Switch   LoftSensor_Motion_Alarm		"Motion [%s]" 										(LoftMotion)					{ channel="zwave:device:ffffffd1ffffffb2ffffffdbffffffad:node8:alarm_motion" }
Number 	 LoftSensor_Temp 			"Temperature  [%.2f]" 								(LoftMotion, Temperatures)		{ channel="zwave:device:ffffffd1ffffffb2ffffffdbffffffad:node8:sensor_temperature" }
Number 	 LoftSensor_Humidity 			"Humidity     [%.0f %%]" 							(LoftMotion)					{ channel="zwave:device:ffffffd1ffffffb2ffffffdbffffffad:node8:sensor_relhumidity" }
Number 	 LoftSensor_Luminance 			"Luminance    [%.0f Lux]" 							(LoftMotion)					{ channel="zwave:device:ffffffd1ffffffb2ffffffdbffffffad:node8:sensor_luminance" }
Number   LoftSensor_Battery 			"Battery      [%s %%]" 								(LoftMotion)					{ channel="zwave:device:ffffffd1ffffffb2ffffffdbffffffad:node8:battery-level" }
DateTime LoftSensor_Update			"[%1$tm.%1$td.%1$tY %1$tH:%1$tM]"   <clock>			

Best, Jay

You probably want to do that for all of your battery devices so just created one rule to work on a group of battery devices ?
Oh, and the ZW100 eats batteries like hell. If there’s a chance to, put it on mains power.

1 Like

Not a stupid question. But no, there is no ‘show more’ for the sensor in paperUI.

Really? So if I have parameter 39 set to 20, as the battery discharges it will go 22%, 21%, 0% and I can just write a rule based on hitting 0%? Will the battery level stay at 0% until the battery is replaced? The reason I ask is that I have noticed the battery level tends to fluctuate up and down by a few percent (perhaps due to temperature changes?) so a simple rule tends to trigger repeatedly when the battery level approaches that threshold. Is this feature documented anywhere? I can’t find it in the manual or the technical reference information.

Yeah I’ve got a bunch of them so I will be writing a group-based rule. I know how to do that thanks to this forum.

I’ve had these sensors for a while and I don’t find them too bad on battery life. I usually get 4-6 months off a pair of batteries. I’d love to get mains power to them but that would be a fairly big expense (very old house with lath/plaster walls and limited access). I will be renovating in the future and hopefully will be able to get a low voltage circuit installed that I can tap into easily to power devices like this.

Yes, really :wink:

This is how the ZWave spec is defined - it provides EITHER a level, OR the low battery warning - not both.

Some newer devices may also provide an ALARM channel for low battery, but that’s not linked to this channel. If it is provided by a device, then it can be supported separately as an ALARM.

These sort of questions are ones that only the supplier can answer. Battery monitors in these sort of devices are notoriously bad - they will change with load, and temperature for starters.

What feature exactly do you mean? The fact that battery level will show 0% in alarm? This is not currently exported from the database so I will add it. If you mean something else, please let me know.

Thanks again Chris.

I’ve got a whole batch of fresh batteries in all of my sensors so it will be a few months until I can document what happens. I’ll try to set up some logging so I can give a definitive answer to this.

I have finally gotten around to looking at this properly, and have observed an interesting behaviour in these sensors around low battery warnings.

I have set up persistence using Mariadb and these are the changes seen in the battery levels over a few days when the battery is running out. I haven’t yet captured data over the complete life of a set of batteries. This is the data from an item linked to the battery-level channel of a Multisensor.

MariaDB [openhab]> Select * from item0048;
+-------------------------+-------+
| time                    | value |
+-------------------------+-------+
| 2020-01-24 22:03:39.829 |    73 |
| 2020-02-04 22:34:21.226 |    70 |
| 2020-02-04 23:33:21.147 |    73 |
| 2020-02-05 03:29:20.884 |    70 |
| 2020-02-05 04:28:20.824 |    73 |
| 2020-02-05 05:27:20.760 |    70 |
| 2020-02-05 08:24:20.542 |    69 |
| 2020-02-05 14:18:20.162 |    68 |
| 2020-02-05 16:16:20.033 |    69 |
| 2020-02-05 17:15:19.953 |    68 |
| 2020-02-05 21:11:19.676 |    69 |
| 2020-02-06 07:01:19.011 |    68 |
| 2020-02-06 08:59:18.873 |    67 |
| 2020-02-06 12:55:18.617 |    66 |
| 2020-02-06 16:51:18.329 |    65 |
| 2020-02-06 18:49:18.181 |    64 |
| 2020-02-06 19:48:18.464 |    63 |
| 2020-02-06 20:47:18.644 |    62 |
| 2020-02-06 21:46:18.301 |    59 |
| 2020-02-06 22:29:52.770 |    27 |
| 2020-02-06 23:28:51.220 |    28 |
| 2020-02-07 00:27:51.127 |    27 |
| 2020-02-07 02:25:51.232 |    26 |
| 2020-02-07 04:23:50.848 |    25 |
| 2020-02-07 06:21:50.661 |    23 |
| 2020-02-07 06:22:36.839 |     0 |
| 2020-02-07 07:20:50.584 |    21 |
| 2020-02-07 07:22:31.472 |     0 |
| 2020-02-07 08:19:50.531 |    21 |
| 2020-02-07 08:51:16.355 |     0 |
| 2020-02-07 09:18:50.461 |    21 |
| 2020-02-07 11:01:46.528 |     0 |
| 2020-02-07 11:16:50.438 |    20 |
| 2020-02-07 11:16:50.779 |     0 |
| 2020-02-07 12:15:50.290 |    20 |
| 2020-02-07 12:15:50.628 |     0 |
| 2020-02-07 13:14:50.170 |    20 |
| 2020-02-07 13:14:50.508 |     0 |
| 2020-02-07 14:13:50.157 |    19 |
| 2020-02-07 14:13:50.485 |     0 |
| 2020-02-07 15:12:50.090 |    20 |
| 2020-02-07 15:12:50.421 |     0 |
| 2020-02-07 16:11:49.962 |    19 |
| 2020-02-07 16:11:50.285 |     0 |
| 2020-02-07 17:10:49.941 |    17 |
| 2020-02-07 17:10:50.275 |     0 |
| 2020-02-07 18:09:49.836 |    17 |
| 2020-02-07 18:09:50.181 |     0 |
| 2020-02-07 19:08:49.800 |    16 |
| 2020-02-07 19:08:50.137 |     0 |
| 2020-02-07 20:07:49.714 |    15 |
| 2020-02-07 20:07:50.055 |     0 |
| 2020-02-07 21:06:49.611 |    16 |
| 2020-02-07 21:06:49.952 |     0 |
| 2020-02-07 22:05:49.594 |    15 |
| 2020-02-07 22:05:49.936 |     0 |
| 2020-02-07 23:04:49.515 |    14 |
| 2020-02-07 23:04:49.851 |     0 |
| 2020-02-08 00:03:49.451 |    15 |
| 2020-02-08 00:03:49.800 |     0 |
| 2020-02-08 01:02:49.373 |    15 |
| 2020-02-08 01:02:49.716 |     0 |
| 2020-02-08 02:01:49.306 |    14 |
| 2020-02-08 02:01:49.649 |     0 |
| 2020-02-08 03:00:49.200 |    14 |
| 2020-02-08 03:00:49.538 |     0 |
| 2020-02-08 03:59:49.165 |    14 |
| 2020-02-08 03:59:49.512 |     0 |
| 2020-02-08 04:58:49.093 |    13 |
| 2020-02-08 04:58:49.439 |     0 |
| 2020-02-08 05:57:49.390 |    12 |
| 2020-02-08 05:57:49.730 |     0 |
| 2020-02-08 06:56:48.927 |    11 |
| 2020-02-08 06:56:49.270 |     0 |
| 2020-02-08 07:55:48.853 |    10 |
| 2020-02-08 07:55:49.187 |     0 |
| 2020-02-08 08:54:48.823 |     9 |
| 2020-02-08 08:54:49.160 |     0 |
| 2020-02-08 09:53:48.713 |     9 |
| 2020-02-08 09:53:49.045 |     0 |
| 2020-02-08 10:52:48.674 |     8 |
| 2020-02-08 10:52:49.021 |     0 |
| 2020-02-08 11:51:48.619 |     9 |
| 2020-02-08 11:51:48.962 |     0 |
| 2020-02-08 12:50:48.512 |     9 |
| 2020-02-08 12:50:48.844 |     0 |
| 2020-02-08 13:49:48.485 |     5 |
| 2020-02-08 13:49:48.797 |     0 |
| 2020-02-08 14:48:48.499 |     5 |
| 2020-02-08 14:48:48.822 |     0 |
| 2020-02-08 15:47:48.338 |     5 |
| 2020-02-08 15:47:48.683 |     0 |
| 2020-02-08 16:46:48.222 |     5 |
| 2020-02-08 16:46:48.560 |     0 |
| 2020-02-08 17:45:48.187 |     5 |
| 2020-02-08 17:45:48.523 |     0 |
| 2020-02-08 19:43:48.058 |     2 |
| 2020-02-08 19:43:48.377 |     0 |
| 2020-02-08 20:42:47.980 |     2 |
| 2020-02-08 20:42:48.330 |     0 |
+-------------------------+-------+

This sensor has parameter 39 (low battery report) set to 20.

A few things stand out;

  • The battery level doesn’t fall smoothly over time. For example, there is a big jump from 59% to 28%.

  • When the battery level is low the device begins reporting the battery level on the channel, followed very soon after by a zero. The warnings actually begin at a battery level slightly higher than 20% for some reason.

  • This leads to an alternating pattern of decreasing numbers and zeroes. So a simple rule to send out a warning on the battery level changing to zero will be triggered repeatedly and could get annoying very quickly. A rule would have to be written to take this into account.

  • The battery was installed long before this data was recorded, so it seems that the reported battery level stays high for most of the batteries’ life and then falls fairly quickly.

Hopefully this information is of use to someone else using these devices.

This is very common with low cost devices - they often use battery voltage as a battery level indicator. This is only a first approximation of battery level - voltage will change with load and temperature and is non-linear (as you see).

This is the way the binding interprets the information. A device doesn’t have a separate flag for low battery - there is only one battery reading, and to flag low battery the device reports 0xFF. Since some devices will only report this, the binding sets the % to 0 since it doesn’t have any other way to know what it is. Since this device seems to send alternating reports, you see this manifest as 0, then a number.