Ecolink Battery Levels - How to refresh

I’m running HA 2021.1.4 with about 30 devices. Working well, except when it doesn’t then it’s learning night. Still fun.

Things are stable at the moment, but I’m unable to get the battery level on my Ecolink Z-wave door/window sensors to change.

In lovelace they show this

I was looking at " CommandClass Compatibility Flags" from here


But didn’t do anything with it because I frankly have no idea what i’m doing

Also read about templates but not sure what to do there either.

So basically i’m not sure which path to go with. Anyone with some advice?

I forgot to add, i’m using the z-wave addon

I’ve been messing around with templates but I don’t think that’s the problem is that but I cannot say for certain

Tried to look at the zwave logs and I’m a bit out of my knowledage area here.

2021-02-15 22:36:58.697 Info, Node017, Sending (Send) message (Callback ID=0x47, Expected Reply=0x04) - BatteryCmd_Get (Node=17): 0x01, 0x09, 0x00, 0x13, 0x11, 0x02, 0x80, 0x02, 0x25, 0x47, 0x16
2021-02-15 22:36:58.705 Detail, Node017,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2021-02-15 22:36:58.706 Detail, Node017,   ZW_SEND_DATA delivered to Z-Wave stack
2021-02-15 22:36:58.722 Detail, Node017,   Received: 0x01, 0x07, 0x00, 0x13, 0x47, 0x00, 0x00, 0x02, 0xae
2021-02-15 22:36:58.722 Detail, Node017,   ZW_SEND_DATA Request with callback ID 0x47 received (expected 0x47)
2021-02-15 22:36:58.722 Info, Node017, Request RTT 25 Average Request RTT 25
2021-02-15 22:36:58.722 Detail,   Expected callbackId was received
2021-02-15 22:36:58.735 Detail, Node017,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x11, 0x03, 0x80, 0x03, 0x63, 0x00
2021-02-15 22:36:58.735 Detail,
2021-02-15 22:36:58.736 Info, Node017, Response RTT 38 Average Response RTT 37
2021-02-15 22:36:58.736 Info, Node017, Received Battery report from node 17: level=99
2021-02-15 22:36:58.736 Detail, Node017, Initial read of value
2021-02-15 22:36:58.736 Detail, Node017,   Expected reply and command class was received
2021-02-15 22:36:58.736 Detail, Node017,   Message transaction complete
2021-02-15 22:36:58.737 Detail,
2021-02-15 22:36:58.737 Detail, Node017, Removing current message
2021-02-15 22:36:58.737 Detail, Node017, Notification: ValueChanged
2021-02-15 22:36:58.750 Warning, Exception: Manager.cpp:2499 - 102 - ValueID passed to GetValueFloatPrecision is not a Decimal Value
2021-02-15 22:36:58.751 Warning, Exception: Manager.cpp:2499 - 102 - ValueID passed to GetValueFloatPrecision is not a Decimal Value
2021-02-15 22:36:58.761 Detail, Node017, Query Stage Complete (Dynamic)
2021-02-15 22:36:58.761 Detail, Node017, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Configuration live=1
2021-02-15 22:36:58.761 Detail, Node017, QueryStage_Configuration
2021-02-15 22:36:58.761 Detail, Node017, QueryStage_Complete
2021-02-15 22:36:58.761 Detail, Node017, Queuing (WakeUp) WakeUpCmd_NoMoreInformation (Node=17): 0x01, 0x09, 0x00, 0x13, 0x11, 0x02, 0x84, 0x08, 0x25, 0x48, 0x17
2021-02-15 22:36:58.761 Warning, CheckCompletedNodeQueries m_allNodesQueried=0 m_awakeNodesQueried=1
2021-02-15 22:36:58.761 Warning, CheckCompletedNodeQueries all=0, deadFound=1 sleepingOnly=1
2021-02-15 22:36:58.762 Detail, Node017, Notification: NodeQueriesComplete
2021-02-15 22:36:58.767 Detail,
2021-02-15 22:36:58.768 Info, Node017, Sending (WakeUp) message (Callback ID=0x48, Expected Reply=0x13) - WakeUpCmd_NoMoreInformation (Node=17): 0x01, 0x09, 0x00, 0x13, 0x11, 0x02, 0x84, 0x08, 0x25, 0x48, 0x17
2021-02-15 22:36:58.776 Detail, Node017,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2021-02-15 22:36:58.777 Detail, Node017,   ZW_SEND_DATA delivered to Z-Wave stack
2021-02-15 22:36:58.793 Detail, Node017,   Received: 0x01, 0x07, 0x00, 0x13, 0x48, 0x00, 0x00, 0x03, 0xa0
2021-02-15 22:36:58.793 Detail, Node017,   ZW_SEND_DATA Request with callback ID 0x48 received (expected 0x48)
2021-02-15 22:36:58.793 Info, Node017, Request RTT 25 Average Request RTT 25
2021-02-15 22:36:58.793 Info, Node017,   Node 17 has been marked as asleep
2021-02-15 22:36:58.794 Detail,   Expected callbackId was received
2021-02-15 22:36:58.794 Detail,   Expected reply was received
2021-02-15 22:36:58.794 Detail,   Message transaction complete
2021-02-15 22:36:58.794 Detail,
2021-02-15 22:36:58.794 Detail, Node017, Removing current message
2021-02-15 22:36:58.794 Detail, Node017, Notification: Notification - Node Asleep
2021-02-15 23:13:54.845 Detail, Node020,   Received: 0x01, 0x08, 0x00, 0x04, 0x00, 0x14, 0x02, 0x84, 0x07, 0x66

Here is a battery I haven’t changed in a few months, so I’m confident that it is not at 100%

2021-02-15 23:32:08.127 Info, Node039, Response RTT 35 Average Response RTT 36
2021-02-15 23:32:08.127 Info, Node039, Received Battery report from node 39: level=100
2021-02-15 23:32:08.127 Detail, Node039, Initial read of value
2021-02-15 23:32:08.127 Detail, Node039, Expected reply and command class was received
2021-02-15 23:32:08.127 Detail, Node039, Message transaction complete
2021-02-15 23:32:08.127 Detail,
2021-02-15 23:32:08.128 Detail, Node039, Removing current message
2021-02-15 23:32:08.128 Detail, Node039, Notification: ValueChanged
2021-02-15 23:32:08.161 Warning, Exception: Manager.cpp:2499 - 102 - ValueID passed to GetValueFloatPrecision is not a Decimal Value
2021-02-15 23:32:08.161 Warning, Exception: Manager.cpp:2499 - 102 - ValueID passed to GetValueFloatPrecision is not a Decimal Value
2021-02-15 23:32:08.168 Detail, Node039, Query Stage Complete (Dynamic)
2021-02-15 23:32:08.168 Detail, Node039, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Configuration live=1
2021-02-15 23:32:08.168 Detail, Node039, QueryStage_Configuration
2021-02-15 23:32:08.168 Detail, Node039, QueryStage_Complete
2021-02-15 23:32:08.168 Detail, Node039, Queuing (WakeUp) WakeUpCmd_NoMoreInformation (Node=39): 0x01, 0x09, 0x00, 0x13, 0x27, 0x02, 0x84, 0x08, 0x25, 0x60, 0x09
2021-02-15 23:32:08.168 Warning, CheckCompletedNodeQueries m_allNodesQueried=0 m_awakeNodesQueried=1
2021-02-15 23:32:08.169 Warning, CheckCompletedNodeQueries all=0, deadFound=1 sleepingOnly=1
2021-02-15 23:32:08.169 Detail, Node039, Notification: NodeQueriesComplete
2021-02-15 23:32:08.175 Detail,

I’m not sure what you are trying to “change”… the device should change the value when the battery gets lower but many devices do not update battery level that often… or am I just misunderstanding?

The devices seem to be reporting 99 or 100% forever so it seems that either the devices aren’t reporting their batter or HA isn’t understanding or asking for it?

Just wondering if others had this issue?

Mine is the Ecolink Door/Window sensor

I’m reading about how the Ecolink’s work… Specifically this

What i’ve found online - “this is how the Ecolinks work. They basically will show 100 or 99%, but it really means the battery is OK instead of a true representation of a level. When a low battery condition exists the DTH picks up a “0xFF” (255) battery level report sent from the device and it should alert to a low battery condition.”

But not sure if I can accurately capture the battery levels here. Which is a concern as when these devices go offline, I cannot seem to get them back online reliabily

Unfortunately those posts seem to be correct I just checked mine and one actually went from 99 to 100 a few hours ago (just about in-line with the temp in house going up a degree or two)…

But are you having them die and drop off that often? The batteries in mine last so long that I forget about them until a different sensor gets low then I may remember to check on those. The one I mentioned that is reading 99/100 is definitely around 85% as I checked it last week when switching to Zwave2MQTT and put it on a battery tester…
Are your wake intervals set at the default? I have never had one of them (only two ecolinks though) get so low that it stops communicating.

I did do this, just to help keep track of when I changed the batteries. Not a perfect system by any means but seems to work pretty well for the most part:

I have dozens of door/window and flood/freeze ecolink devices that have been working fine for over 2 years, but have always been 99-100% battery level. I also have some ecolink pir motion sensors I purchased at the same time, and those do progress downward (100, 80, 60…), but they have held 60% for over a year (also same batt running >2 years, so could be accurately reading a very slow discharge profile). Like the others, I’m fairly certain actual battery levels on those door/window and flood/freeze devices are not even close to full (probably ~60% or less).

All of my ecolink devices also have a ‘battery level low’ binary sensor, that I have assumed will flag at the appropriate time. I am using those to trigger battery notifications. The problem is, the darn batteries are lasting so long that I’m still waiting for the wet test to happen over 2 years, lol. I could just rig up an LDO and make a lab out of it to determine it’s response to a range of volts, but I figure if the devices function fine I’ll just relax and wait for them to act up, then I’ll measure volts.

I’ve tried to get granular battery level using zwavejs2mqtt firmware update, and reincluding a few of them. It seems the configuration for these ecolink devices is incomplete, incorrect, or the devices simply cannot report battery level. At this point, there are many newer devices with better security available and granular battery level output, but the older ecolink zwave devices are the king of battery longevity.

Yep, I’ve not been able to succesfully get a EcoLink sensor to report proper battery life. They also seem to last way too long :slight_smile:

I’d be interested to see what the “battery level low” does… I’ve not yet encountered it and have resided to just waiting for a sensor to completely fail.