-
-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sleeping node is marked as dead #1578
Comments
Before we're hunting ghosts, please try 6.1.2 too, although I guess the relevant change is in there too. How is the multisensor powered? Battery or USB? Did you switch that since inclusion? |
I built a new image: node-zwave-js zwavejs2mqtt: The issue persists - the sleeping node starts as dead. |
|
Forgot to mention that, it's battery and always was battery. Anything in the cache I should be looking for, for this device? |
16:05:01.065 CNTRLR « [Node 019] received response for protocol info: |
That looks different. If the node was included with battery power, it should not say that it is listening here. Please try excluding it, then reset it and include it while definitely not on USB. |
I know this is not something "supported" but I manually updated the cache json file and marked the node as "isListening: false" and restarted the container. This is my production environment and I have automations configured bases on the motion sensor of this device. It would be really impactful to exclude it and re-include it - I'll have to change all my automations to use the new node ID. All the fields in "Control Panel" are empty, except "Status" which is "Unknown", "Interview stage" which is "Complete". And remains like that until the end of the scan.
I have attached the zwavejs log file |
I excluded and re-included the device, as node 36, same behavior as above, all the fields in "Control Panel" are empty, except "Status" which is "Unknown" and "Interview stage" which is "Complete". For some reason it seems that the node is marked asleep at the very end of the scanning. I have attached the log. |
I find this in both logs:
which means that the node did not acknowledge the receipt of the message we sent it. If the node is mains-powered, that often means there is some connectivity issue or that the node is dead. If it is battery-powered, this is perfectly normal happens while it is asleep. Unfortunately, both your logs don't include the inclusion and the initial interview, so I have to assume that the device is still operating in USB mode. Did you factory-reset it after exclusion? |
Yes, I did a factory reset after excluding the node. I did NOT use any USB cables for this inclusion. I just unscrew it from the wall mount, brought it closer to the computer, from where I can access zwavejs control panel, did the exclusion, did a factory reset, did the inclusion. |
Okay, can you re-interview the device (refreshInfo) and send me a complete log of that? |
I just dod a node re-interview, see attached. |
There's a bit missing before the start of the file :( |
is this better? |
Interestingly, now it shows that it is not a listening device (i.e. sleeps) and it was properly detected:
I have the same device USB powered and it reads About half an hour later the device actually wakes up and the interview goes through:
So... all good? |
Yes, the main issue here is that on zwavejs2mqtt container reset the behavior of the device changes in the last releases. It used to me marked at sleeping and restored from cache, right at the beginning of the start sequence. Now it’s marked and unknown, or something similar - as mentioned a few posts back, until the end the the start sequence. In large networks it can take 10-15 minutes to complete the start sequence. This means that for 10-15 minutes the device might not be usable. Since it’s not initialized form cache until the end. |
Please check that again. I'm guessing that was some weird interaction with the device being asleep but the controller thinking that it cannot sleep. Especially since the listening flag has changed from your first log to the last one. Since 6.1.2, sleeping devices are almost immediately marked as asleep (and ready if they have been interviewed before). |
Pease see attached the screenshot of the Control Panel, you can see how it starts. Node 21 and 33 take the most to complete, 21 completed first, then 33. The moment 33 completed then 36 switched to Sleep and RestartFromCache. |
Forgot to mention that I'm using the latest zwavejs2mqtt:dev, revision b9d066b9f069ae81b4fab37d5bdb95fde8f0e7bd zwave-js 6.1.3 |
Did you intentionally restart the driver at |
Yes, I did because of:
Sometime when I stop the docker container the cache file, |
Whoa that shouldn't happen. @robertsLando any idea how we could avoid stopping the container before zwave-js has shut down and saved the cache? That could also explain why the interview first starts with stage "None" and then suddenly after the restart it is at RestartFromCache. Your cache files (our info about the node) get out of sync and confuse the hell out of zwave-js. I wouldn't be surprised if the |
@snagytx about the delay: While sleeping nodes no longer delay the interview of non-sleeping nodes, it seems that their status is not correctly propagated to applications after a restart (which causes zwavejs2mqtt to not display the correct info). I'll raise an issue to track that part. |
This is what I backup: cp -p store/f4c9e959.* ${BK_FINAL} I do the backup, before I stop the container, but I don't have to restore the files every time, even when I don't need to restore the file the outcome in the UI is the same - this is why I didn't mention it before. |
not sure - does cp overwrite by default? Because I am seeing this in the log:
Which means the stage in the cache file was "Completed", not "ProtocolInfo" |
I did a restore from backup between |
Alright, then some of what I'm seeing starts to make sense. Thinking out loud here: After the restore, the status of the node was
You don't see this change, since it is not propagated to the UI. @robertsLando when/how do you update the node's interview stage in the UI? The device is not immediately marked as A few minutes later, the node is finally marked as asleep, causing it to also be marked as ready.
You now see the RestartFromCache stage (which is correct) until it wakes up and can be queried for its current values. |
We should listen for the container kill command with |
Should I open an issue in zjs2m? |
Ok! Not 100% sure it wil work but we could try |
Describe the bug
In 6.1.1(zwavejs2mqtt v1.0.4) AEON Labs - Multisensor 6 (Device ID: 134-100-258 (0x0086-0x0064-0x0102) when docker container would start and the device would be sleeping it would be loaded from cache and marked as RestartFromCache. In the latest it seems that the device is marked as dead until the device sends something.
Device information
Which device(s) is/are affected (make/model)?
What are the node IDs?Node 019
Last Known Working Configuration
New device
Previously working device (node-zwave-js)
Previously working device (other platform)
Installation information
How did you install
node-zwave-js
?zwavejs2mqtt
(latest) docker imagezwavejs2mqtt
(dev) docker imagenode-zwave-js
branch: fix-root-to-endpoint-mappingzwavejs2mqtt
branch: HEAD detached at v1.0.4The text was updated successfully, but these errors were encountered: