I recently added door & window sensors all over my house. Most of them are fine, but a couple seem to be draining their battery at an alarming rate (as fast as every 2 weeks).
On top of that, I noticed at least one of my existing switches isn’t responding consistently to automations. When I look at the chart inside ZWaveJS2MQTT, I can see that the battery devices that are draining are showing up as routes for some of the other switches.
I’m using the default settings on the sensors, which are only supposed to wake up every 12 hours to report status. The door sensors are opened much more often, so I expected them to drain a little faster, but still hoped to have maybe 6 months of life on the battery.
And since it’s not every sensor draining, it seems like it’s something in the configuration or network setup causing the issue.
Any ideas on what I can do here?
If it helps any, I have 61 nodes on my network. Most are hardwired switches or wall plugs. I have a battery operated smoke/fire sensor and battery operated water sensor, both of which have easily gotten a year or more out of their battery without issue. There are 16 of the new sensors, and only 3 of them are showing rapid battery drain.
Battery powered devices can’t act as repeaters in a zwave network - it just isn’t in the zwave spec and baring a massive missed firmware bug, they’re not capable of doing it. See page 5 in this guide
I was recently made aware through a post here - 70 Zwave device network stuck healing for over 24hrs - #7 by HeyImAlex the routing chart in zwavejs2mqtt is very misleading, and is just put together from a node neighbor diagram. It is NOT a routing diagram. Seeing posts like yours further convinces me that the data in that chart is not to be relied on.
What is much more likely, especially as evidenced by your existing switch not responding consistently, is that several devices, including the quickly draining battery powered sensors, are unable to establish a route back to the controller. They then “panic” and keep trying, which will kill the battery.
Also, one problem zwave device anywhere can cause the network to breakdown by either not routing properly or flooding the network with commands. I would take a look at your zwavejs logs on “silly” level and look for problems. Look for warnings on devices, and devices that appear to constantly be creating entries in the report. I had a switch that had a meter that was sending continuous power reports, and that was destroying the bandwidth in the whole network. Zwave is VERY low bandwidth to begin with so it doesn’t take much to overwhelm it. Change the parameters on these devices to either turn off power reporting (if not needed) or decrease the frequency.
Another thing you can try is healing the individual node for the problem device, versus the whole network. This can force that one particular device to establish a better path back to the controller. If it is a battery powered device, make sure it is “awake” before trying to heal it.
Update- one other thing I forgot to mention is to make sure your logging is only at “warn” level when you are not debugging. I had things going very slow because I left the silly logs on to file. It literally made it take 5 minutes for all the lights to turn off at night. Changing logs back to warn caused all the lights to shutoff in seconds.
Thank you, that’s a lot of great advice! I’ll take a look when I get a chance at all of that.
I really didn’t think you could route through a battery device (especially if they are asleep), so it’s good to know the chart isn’t reflecting that.
With all of my hardwired switches (there’s at least 5 within 10 feet of the worst sensor), I’m surprised to have so much trouble with the battery usage.
But you might be on to something with there being a chatty node. Normally I have very quick response times, but sometimes it seems like it takes forever to get a light to respond. I haven’t been able to narrow that down yet.
Have you checked how often the device is waking up? Possibly do an exclude, Factory reset on the device, then re-include. Any chance you have a bad device? I have had 7 switches fail due to power spikes/age. And there is no limit to what a damaged z-wave device can do to your network. Sometimes the relays will click repeatedly and that is the way I have generally found the offending device. The no light responding is generally my clue that a node is bad. I have also had automations flash the lights on and off repeatedly.
The slow lights thing seems to be specifically related to dimmers—when you turn them on or off, sometimes it takes a few seconds after they are done changing to be able to flip them back, but only from within HA.
But I’ll see if I can tell how often the device is waking itself up. It’s our most active doorway, so it gets opened/closed probably 6 times a day, but even with that, it should last longer than a couple weeks, I would assume.
I have a z-wave battery door switch on my pantry and it gets opened ~15-20 times per day. I change the battery about once a year. I am using z-wave js. I have an automation for my bar where two of the lights are controlled by dimmers. I do not see the slow behavior and it is turning on 5 lights and 2 dimmers. I have 89 devices in the network and interface to my alarm system for exterior door and window sensors.
The only battery I change frequently is on my Fibaro sensor to reed switch on my mailbox. The heat and cold kill the battery in about 3 months. It is also about 90 feet from my controller.
I’m currently watching logs (which are mostly just quiet, even on Silly mode).
I toggled 3 lights on and back off, to see what would happen, and here’s the log:
2021-09-15 16:57:18.297 INFO ZWAVE: Node 37: value updated: 38-0-targetValue 255 => 99
2021-09-15 16:57:18.301 INFO ZWAVE: Node 37: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:18.307 INFO ZWAVE: Node 37: value updated: 38-0-currentValue 0 => 99
2021-09-15 16:57:18.405 INFO ZWAVE: Node 70: value updated: 38-0-targetValue 255 => 53
2021-09-15 16:57:18.408 INFO ZWAVE: Node 70: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:18.412 INFO ZWAVE: Node 70: value updated: 38-0-currentValue 0 => 54
2021-09-15 16:57:18.445 INFO ZWAVE: Node 70: value updated: 38-0-targetValue 53 => 53
2021-09-15 16:57:18.448 INFO ZWAVE: Node 70: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:18.451 INFO ZWAVE: Node 70: value updated: 38-0-currentValue 54 => 54
2021-09-15 16:57:18.476 INFO ZWAVE: Node 70: value updated: 38-0-targetValue 53 => 53
2021-09-15 16:57:18.479 INFO ZWAVE: Node 70: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:18.481 INFO ZWAVE: Node 70: value updated: 38-0-currentValue 54 => 54
2021-09-15 16:57:19.382 INFO ZWAVE: Node 43: value updated: 38-0-targetValue 255 => 99
2021-09-15 16:57:19.387 INFO ZWAVE: Node 43: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:19.391 INFO ZWAVE: Node 43: value updated: 38-0-currentValue 0 => 99
2021-09-15 16:57:23.250 INFO ZWAVE: Node 37: value updated: 38-0-currentValue 99 => 0
2021-09-15 16:57:23.426 INFO ZWAVE: Node 43: value updated: 38-0-currentValue 99 => 0
2021-09-15 16:57:24.178 INFO ZWAVE: Node 70: value updated: 38-0-targetValue 53 => 1
2021-09-15 16:57:24.182 INFO ZWAVE: Node 70: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:24.186 INFO ZWAVE: Node 70: value updated: 38-0-currentValue 54 => 0
2021-09-15 16:57:24.199 INFO ZWAVE: Node 70: value updated: 38-0-targetValue 1 => 1
2021-09-15 16:57:24.202 INFO ZWAVE: Node 70: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:24.204 INFO ZWAVE: Node 70: value updated: 38-0-currentValue 0 => 0
2021-09-15 16:57:24.231 INFO ZWAVE: Node 37: value updated: 38-0-targetValue 0 => 0
2021-09-15 16:57:24.233 INFO ZWAVE: Node 37: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:24.236 INFO ZWAVE: Node 37: value updated: 38-0-currentValue 0 => 0
2021-09-15 16:57:24.333 INFO ZWAVE: Node 43: value updated: 38-0-targetValue 0 => 0
2021-09-15 16:57:24.340 INFO ZWAVE: Node 43: value updated: 38-0-duration 0s => 0s
2021-09-15 16:57:24.344 INFO ZWAVE: Node 43: value updated: 38-0-currentValue 0 => 0
2021-09-15T20:57:33.653Z CNTRLR [Node 070] Timed out while waiting for a response from the node
2021-09-15 16:57:33.657 INFO ZWAVE: Node 70: value updated: 38-0-currentValue 0 => 0
Note the last two lines:
2021-09-15T20:57:33.653Z CNTRLR [Node 070] Timed out while waiting for a response from the node
2021-09-15 16:57:33.657 INFO ZWAVE: Node 70: value updated: 38-0-currentValue 0 => 0
These 3 switches should all be able to connect directly to the controller (it’s just down the hall from them). I think this is the cause of the occasional slow response from my dimmers.
Going to look at the opening and closing the door a few times next.
Well, I think I found something. The door/window sensors are just constantly pinging with updates after the door is opened and closed. It hasn’t stopped yet, but here’s a snippet of what it looks like:
2021-09-15 17:01:56.436 INFO ZWAVE: Node 80: value updated: 113-0-Access Control-Door state 23 => 22
2021-09-15 17:01:56.663 INFO ZWAVE: Node 80: metadata updated: 48-0-Door/Window
2021-09-15 17:01:56.670 INFO ZWAVE: Node 80: value updated: 48-0-Door/Window false => true
2021-09-15 17:01:59.922 INFO ZWAVE: Node 80: value updated: 113-0-Access Control-Door state 22 => 23
2021-09-15 17:02:00.153 INFO ZWAVE: Node 80: metadata updated: 48-0-Door/Window
2021-09-15 17:02:00.160 INFO ZWAVE: Node 80: value updated: 48-0-Door/Window true => false
2021-09-15 17:02:03.799 INFO ZWAVE: Node 79: value updated: 113-0-Access Control-Door state 23 => 22
2021-09-15 17:02:04.032 INFO ZWAVE: Node 79: metadata updated: 48-0-Door/Window
2021-09-15 17:02:04.037 INFO ZWAVE: Node 79: value updated: 48-0-Door/Window false => true
2021-09-15 17:02:06.477 INFO ZWAVE: Node 80: value updated: 128-0-level 40 => 65
2021-09-15 17:02:06.481 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:06.822 INFO ZWAVE: Node 79: value updated: 113-0-Access Control-Door state 22 => 23
2021-09-15 17:02:07.051 INFO ZWAVE: Node 79: metadata updated: 48-0-Door/Window
2021-09-15 17:02:07.056 INFO ZWAVE: Node 79: value updated: 48-0-Door/Window true => false
2021-09-15 17:02:13.133 INFO ZWAVE: Node 80: value updated: 128-0-level 65 => 65
2021-09-15 17:02:13.137 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:13.359 INFO ZWAVE: Node 79: value updated: 128-0-level 80 => 100
2021-09-15 17:02:13.363 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:02:19.454 INFO ZWAVE: Node 80: value updated: 128-0-level 65 => 65
2021-09-15 17:02:19.461 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:19.663 INFO ZWAVE: Node 79: value updated: 128-0-level 100 => 100
2021-09-15 17:02:19.668 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:02:25.777 INFO ZWAVE: Node 80: value updated: 128-0-level 65 => 65
2021-09-15 17:02:25.781 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:25.969 INFO ZWAVE: Node 79: value updated: 128-0-level 100 => 100
2021-09-15 17:02:25.973 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:02:32.100 INFO ZWAVE: Node 80: value updated: 128-0-level 65 => 65
2021-09-15 17:02:32.104 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:32.274 INFO ZWAVE: Node 79: value updated: 128-0-level 100 => 100
2021-09-15 17:02:32.278 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:02:38.422 INFO ZWAVE: Node 80: value updated: 128-0-level 65 => 65
2021-09-15 17:02:38.430 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:38.578 INFO ZWAVE: Node 79: value updated: 128-0-level 100 => 100
2021-09-15 17:02:38.582 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:02:44.745 INFO ZWAVE: Node 80: value updated: 128-0-level 65 => 65
2021-09-15 17:02:44.750 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:44.882 INFO ZWAVE: Node 79: value updated: 128-0-level 100 => 100
2021-09-15 17:02:44.887 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:02:51.187 INFO ZWAVE: Node 79: value updated: 128-0-level 100 => 100
2021-09-15 17:02:51.191 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:02:51.298 INFO ZWAVE: Node 80: value updated: 128-0-level 65 => 65
2021-09-15 17:02:51.302 INFO ZWAVE: Node 80: value updated: 128-0-isLow false => false
2021-09-15 17:02:56.045 INFO APP: GET /health/zwave 200 2.159 ms - 1875
2021-09-15 17:02:57.482 INFO ZWAVE: Node 79: value updated: 128-0-level 100 => 95
2021-09-15 17:02:57.489 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:03:03.784 INFO ZWAVE: Node 79: value updated: 128-0-level 95 => 95
2021-09-15 17:03:03.793 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:03:10.091 INFO ZWAVE: Node 79: value updated: 128-0-level 95 => 95
2021-09-15 17:03:10.096 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:03:16.392 INFO ZWAVE: Node 79: value updated: 128-0-level 95 => 95
2021-09-15 17:03:16.396 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:03:22.692 INFO ZWAVE: Node 79: value updated: 128-0-level 95 => 95
2021-09-15 17:03:22.697 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:03:28.993 INFO ZWAVE: Node 79: value updated: 128-0-level 95 => 95
2021-09-15 17:03:28.998 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:03:35.301 INFO ZWAVE: Node 79: value updated: 128-0-level 95 => 95
2021-09-15 17:03:35.305 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
2021-09-15 17:03:41.600 INFO ZWAVE: Node 79: value updated: 128-0-level 95 => 95
2021-09-15 17:03:41.607 INFO ZWAVE: Node 79: value updated: 128-0-isLow false => false
Node 79 isn’t even the one that causes trouble for me.
Edit: this is concerning. It won’t stop, even after opening and closing the door again. I tried pinging the node. I’m literally watching the battery drain.
Edit 2: I finally gave up and pulled the battery, which stopped it.
One other thing I can think of- Did you include them with security? I would use no security for those, as s0 security uses more bandwidth and should only be used if absolutely necessary, ie a lock
The only obvious parameter is the wake up time, but that’s set to it’s default, once every 12 hours.
BTW, Node 79 is now reporting the battery is down to 20%, at least within the ZWaveJS2MQTT UI. I know these aren’t 100% perfect, but that seems crazy.
I guess I’ll need to reach out to Zooz to see if there’s firmware updates on these yet. But even that has been extremely annoying. I had to buy a Windows laptop just to be able to perform updates, because updating from Home Assistant is so slow a single switch would take literally 10 hours. However, if I plugged my USB controller into the Windows laptop, and moved physically closer to the switch, it would only take a few minutes. Even then, updating a switch is tedious because I seem to always have to mark the node as failed, then replace the failed node so I don’t have to reconfigure everything.
I’ll admit I don’t understand any of this deeply. This isn’t a major hobby for me, just something I do a little of when I have time. I wanted to have a little more control & security with these sensors, but I don’t have the hours to spend trying to get everything to work.
EDIT: I did not include them with security. It didn’t seem necessary for my use case.
Yes this definitely sounds frustrating. I checked the zwave alliance website which sometimes lists additional parameters and can’t see any setting that would cause continuous reports like that.
There’s actually two sets of logs in zwavejs2mqtt. One for the zwavejs2mqtt program and another for the underlying zwavejs drivers. The Zwavejs driver logs can actually give you more info. Those go to a file called zwavejs_date.log in the store directory. You can enable those under the “zwave” part of the settings and click “log to file” (will be right under the security keys). A lot of time they can give you more info.
This still could be the result of the device’s “panicking” due to a routing issue- their message gets to the controller but the sensors are not receiving the acknowledgement its been received so they just keep sending it over and over.
Could also be a firmware bug, they do look relatively new. Zwave firmware updates usually take a very long time unless right next to the device - due to the low bandwidth again.
Someone on Hubitat is having your exact issue. Leaning towards its a bug in the device- haven’t read the whole thread but I would definitely get in touch with zooz support.
I really appreciate all the help, thank you a bunch. I wrote Zooz to see if they have a firmware update yet, and linked them to this thread. They’ve always been really awesome to work with in the past for me.
Zwave firmware updates usually take a very long time unless right next to the device - due to the low bandwidth again.
That’s good to know. I wasn’t sure if there was something else wrong with my setup. At least having the Windows laptop makes it relatively straightforward, even if it’s a bit annoying in general.
Someone on Hubitat is having your exact issue. Leaning towards its a bug in the device- haven’t read the whole thread but I would definitely get in touch with zooz support.
Thank you a bunch for this! I’ll read through it and see if anything jumps out. Being cross-hub definitely points to a device issue.
I have a few zooz devices and no issues and most feedback on them is very good, so I’m hopeful this is just some bugs with a new product they will quickly workout. Good luck with everything.