Skip to content
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

[bug] Controller has no neighbours after updating to zwave-js 7.0.0 #2335

Closed
4 of 7 tasks
andras-tim opened this issue Apr 10, 2021 · 43 comments · Fixed by zwave-js/zwave-js-ui#1038 or #2559
Closed
4 of 7 tasks

Comments

@andras-tim
Copy link

Version

Checklist:

  • I am not using HomeAssistant. Or: a developer has told me to come here.
  • I have checked the troubleshooting section and my problem is not described there.
  • I have read the changelog problem was not mentioned there.

Build/Run method

  • Docker
  • PKG
  • Snap package
  • Manually built (git clone - npm install - npm run build )

zwavejs2mqtt: 3.2.0
zwave-js: 7.1.1

but the bug cames with:

zwavejs2mqtt: 3.0.0
zwave-js: 7.0.0

Describe the bug

screencapture-core-tia-8091-mesh-2021-04-10-20_37_08
(took on v3.0.0)

To Reproduce

Steps to reproduce the behavior:

1 Upgrade from v2.4.1 (0a723f9) to v3.0.0 (b48c1f7)

Expected behavior

screencapture-core-tia-8091-mesh-2021-04-10-20_44_10
(took on v2.4.1)

Additional context

In general, I use HA, but when I add/remove node I always turn off that to avoid unwanted states/nodes... e.g. when I add a new node, I always rename that, but the HA remembers the original ids...

zwavejs2mqtt.log
zwavejs_1.log

@robertsLando
Copy link
Member

I have a feeling that it could be related to the same problem we had with zwave-js/zwave-js-ui#739 .

Could you also do a nodes dump? YOu can find it in advanced dialog, it exports all nodes as a json file

@andras-tim
Copy link
Author

I have a feeling that it could be related to the same problem we had with zwave-js/zwave-js-ui#739 .

I have seen that issue, but I thought that is based on the multiple controllers.

Could you also do a nodes dump? YOu can find it in advanced dialog, it exports all nodes as a json file

Of course:
nodes_dump.json.zip

Thank you!

@robertsLando
Copy link
Member

robertsLando commented Apr 13, 2021

@andras-tim This has been fixed on master now. If you are using docker simply use master tag instead of latest or wait until next release :)

@andras-tim
Copy link
Author

@robertsLando I tested the master tag. Unfortunately, this isn't working for me, the graph still flat as my screenshot.

I attached a new bundle:
master.zip

@robertsLando
Copy link
Member

@andras-tim Seems your stick have no neighborns, please try to send a heal action to it.

cc @AlCalzone

@andras-tim
Copy link
Author

I tried to heal the network, restart the container, pull out the dongle then restart, but nothing was helped.

master2.zip

@AlCalzone
Copy link
Member

Just to be sure - Can you try this?

  • Stop the container
  • shut down the host
  • pull the stick
  • wait a few seconds
  • put the stick back in
  • start everything
  • wait until zwave-js has booted completely
  • heal

@AlCalzone
Copy link
Member

And did you previously use this network with OZW or did you create it fresh in zwave-js?

@andras-tim
Copy link
Author

The master2 state was almost the same as https://github.com/zwave-js/zwavejs2mqtt/issues/1034#issuecomment-818756085, but I didn't restart the machine. But I'm going to do this.

In January I moved from OZW to zwave-js, but ~1 months ago I excluded the whole network device-by-device, reset the dongle via zwave-js and included the whole stuff.

I always stored the docker-compose file with the whole config dir in git, so I can easily switch, check:
everything worked (and if I revert the patches now then) works on v2.4.1, but the
v3.0.0 is broken. So, I think, something is broken in the newer versions.

@andras-tim
Copy link
Author

in 4 hours I'm going to do the steps of https://github.com/zwave-js/zwavejs2mqtt/issues/1034#issuecomment-818756085 .
Thank you for your help!

@robertsLando robertsLando reopened this Apr 13, 2021
@robertsLando robertsLando changed the title [bug] Flat network graph since 3.0.0 [bug] Controller neighbours empty since 3.0.0 Apr 13, 2021
@robertsLando robertsLando changed the title [bug] Controller neighbours empty since 3.0.0 [bug] Controller has no neighbours after updating to zwave-js 7.0.0 Apr 13, 2021
@robertsLando robertsLando transferred this issue from zwave-js/zwave-js-ui Apr 13, 2021
@AlCalzone
Copy link
Member

If you can easily revert, then I'd be interested in another heal log from 2.4.1. From what I've seen, your stick immediately responds to the commands that tell it to update the nodes' neighbors with "cannot do that". I can't imagine that the zwave-js version has anything to do with that.

@AlCalzone
Copy link
Member

Anything new?

@andras-tim
Copy link
Author

Sorry, I had personal issues. I'm going to reply this weekend.

@zwave-js-assistant zwave-js-assistant bot added the stale 💤 This issue seems to have gone stale. Interact with it to keep it open label May 1, 2021
@zwave-js-assistant
Copy link

This issue has not seen any recent activity and was marked as "stale 💤".
Closing for housekeeping purposes... 🧹

Feel free to reopen if the issue persists.

@robertsLando robertsLando reopened this May 4, 2021
@DayRunner131
Copy link

@AlCalzone using the @dkmcgowan suggestion, these are the logs I generated at silly.

Hope this helps and hopefully the .json file change took.
zwavejs_356 (3).log

@andras-tim
Copy link
Author

Wow! It works now... 🙂

  1. Before I started the investigation I tried v4.0.1, but the chart was flat...
  2. I stopped the whole machine, pulled out the Z-Wave.Me dongle.
  3. Started the machine, re-connected the dongle, rolled back my zwave-js env as I wrote before and collect the material in [bug] Controller has no neighbours after updating to zwave-js 7.0.0 #2335 (comment)
  4. After that I switched back to v4.0.1, AND NOW everything is working!
  5. I tried the reproduction on v3.2.1 also, but this is working too...

Maybe helps

What I tried before, w/o success?

  • Turn off and on the fuses to "restart" my Qubino stuff
  • Restart the container
  • Pull out the dongle

What I tried only now?

  • added stop_signal: SIGINT to my docker-compose.yml as I read nowadays
  • Restart my PC...

If the restart was missing for the success, I should say sorry!

@dkmcgowan
Copy link

I just removed all devices on my controller and did a hard reset, then I restart container, and then added one device back, but still no neighbors on the controller. I then removed the line mentioned above and captured the log, but don't see the full interview start

2021-05-04T23:08:59.509Z DRIVER ███████╗ ██╗ ██╗ █████╗ ██╗ ██╗ ███████╗ ██╗ ███████╗
╚══███╔╝ ██║ ██║ ██╔══██╗ ██║ ██║ ██╔════╝ ██║ ██╔════╝
███╔╝ ██║ █╗ ██║ ███████║ ██║ ██║ █████╗ █████╗ ██║ ███████╗
███╔╝ ██║███╗██║ ██╔══██║ ╚██╗ ██╔╝ ██╔══╝ ╚════╝ ██ ██║ ╚════██║
███████╗ ╚███╔███╔╝ ██║ ██║ ╚████╔╝ ███████╗ ╚█████╔╝ ███████║
╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═══╝ ╚══════╝ ╚════╝ ╚══════╝
2021-05-04T23:08:59.510Z DRIVER version 7.3.0
2021-05-04T23:08:59.510Z CONFIG version 7.3.0
2021-05-04T23:08:59.510Z DRIVER
2021-05-04T23:09:04.823Z CNTRLR beginning interview...
2021-05-04T23:09:04.824Z CNTRLR querying version info...
2021-05-04T23:09:04.942Z CNTRLR received version info:
controller type: Static Controller
library version: Z-Wave 4.05
2021-05-04T23:09:04.942Z CNTRLR querying controller IDs...
2021-05-04T23:09:04.953Z CNTRLR received controller IDs:
home ID: 0xe2d2d610
own node ID: 1
2021-05-04T23:09:04.953Z CNTRLR querying controller capabilities...
2021-05-04T23:09:04.963Z CNTRLR received controller capabilities:
controller role: primary
is in other network: false
is SIS present: true
was real primary: true
is a SUC: true
2021-05-04T23:09:04.963Z CNTRLR querying API capabilities...
2021-05-04T23:09:04.975Z CNTRLR received API capabilities:
serial API version: 4.32
manufacturer ID: 0x00
product type: 0x01
product ID: 0x01
supported functions:
· GetSerialApiInitData (0x02)
· FUNC_ID_SERIAL_API_APPL_NODE_INFORMATION (0x03)
· ApplicationCommand (0x04)
· GetControllerCapabilities (0x05)
· SetSerialApiTimeouts (0x06)
· GetSerialApiCapabilities (0x07)
· FUNC_ID_SERIAL_API_SOFT_RESET (0x08)
· UNKNOWN_FUNC_UNKNOWN_0x09 (0x09)
· UNKNOWN_FUNC_RF_RECEIVE_MODE (0x10)
· UNKNOWN_FUNC_SET_SLEEP_MODE (0x11)
· FUNC_ID_ZW_SEND_NODE_INFORMATION (0x12)
· SendData (0x13)
· SendDataMulticast (0x14)
· GetControllerVersion (0x15)
· SendDataAbort (0x16)
· FUNC_ID_ZW_R_F_POWER_LEVEL_SET (0x17)
· UNKNOWN_FUNC_SEND_DATA_META (0x18)
· FUNC_ID_ZW_GET_RANDOM (0x1c)
· GetControllerId (0x20)
· UNKNOWN_FUNC_MEMORY_GET_BYTE (0x21)
· UNKNOWN_FUNC_MEMORY_PUT_BYTE (0x22)
· UNKNOWN_FUNC_MEMORY_GET_BUFFER (0x23)
· UNKNOWN_FUNC_MEMORY_PUT_BUFFER (0x24)
· UNKNOWN_FUNC_FlashAutoProgSet (0x27)
· UNKNOWN_FUNC_UNKNOWN_0x28 (0x28)
· UNKNOWN_FUNC_NVMGetId (0x29)
· UNKNOWN_FUNC_NVMExtReadLongBuffer (0x2a)
· UNKNOWN_FUNC_NVMExtWriteLongBuffer (0x2b)
· UNKNOWN_FUNC_NVMExtReadLongByte (0x2c)
· UNKNOWN_FUNC_NVMExtWriteLongByte (0x2d)
· GetNodeProtocolInfo (0x41)
· HardReset (0x42)
· FUNC_ID_ZW_REPLICATION_COMMAND_COMPLETE (0x44)
· FUNC_ID_ZW_REPLICATION_SEND_DATA (0x45)
· AssignReturnRoute (0x46)
· DeleteReturnRoute (0x47)
· RequestNodeNeighborUpdate (0x48)
· ApplicationUpdateRequest (0x49)
· AddNodeToNetwork (0x4a)
· RemoveNodeFromNetwork (0x4b)
· FUNC_ID_ZW_CREATE_NEW_PRIMARY (0x4c)
· FUNC_ID_ZW_CONTROLLER_CHANGE (0x4d)
· FUNC_ID_ZW_SET_LEARN_MODE (0x50)
· AssignSUCReturnRoute (0x51)
· FUNC_ID_ZW_REQUEST_NETWORK_UPDATE (0x53)
· SetSUCNodeId (0x54)
· DeleteSUCReturnRoute (0x55)
· GetSUCNodeId (0x56)
· UNKNOWN_FUNC_SEND_SUC_ID (0x57)
· FUNC_ID_ZW_EXPLORE_REQUEST_INCLUSION (0x5e)
· RequestNodeInfo (0x60)
· RemoveFailedNode (0x61)
· IsFailedNode (0x62)
· ReplaceFailedNode (0x63)
· UNKNOWN_FUNC_UNKNOWN_0x66 (0x66)
· UNKNOWN_FUNC_UNKNOWN_0x67 (0x67)
· UNKNOWN_FUNC_UNKNOWN_0x78 (0x78)
· GetRoutingInfo (0x80)
· UNKNOWN_FUNC_LOCK_ROUTE_RESPONSE (0x90)
· UNKNOWN_FUNC_GET_PRIORITY_ROUTE (0x92)
· UNKNOWN_FUNC_SET_PRIORITY_ROUTE (0x93)
· UNKNOWN_FUNC_UNKNOWN_0x98 (0x98)
· UNKNOWN_FUNC_UNKNOWN_0xB4 (0xb4)
· UNKNOWN_FUNC_WATCH_DOG_ENABLE (0xb6)
· UNKNOWN_FUNC_WATCH_DOG_DISABLE (0xb7)
· UNKNOWN_FUNC_WATCH_DOG_KICK (0xb8)
· UNKNOWN_FUNC_UNKNOWN_0xB9 (0xb9)
· UNKNOWN_FUNC_RF_POWERLEVEL_GET (0xba)
· UNKNOWN_FUNC_GET_LIBRARY_TYPE (0xbd)
· UNKNOWN_FUNC_SEND_TEST_FRAME (0xbe)
· UNKNOWN_FUNC_GET_PROTOCOL_STATUS (0xbf)
· UNKNOWN_FUNC_UNKNOWN_0xD2 (0xd2)
· UNKNOWN_FUNC_UNKNOWN_0xD3 (0xd3)
· UNKNOWN_FUNC_UNKNOWN_0xD4 (0xd4)
· undefined (0xee)
· UNKNOWN_FUNC_UNKNOWN_0xEF (0xef)
2021-05-04T23:09:04.975Z CNTRLR finding SUC...
2021-05-04T23:09:04.984Z CNTRLR This is the SUC
2021-05-04T23:09:05.009Z CNTRLR querying node information...
2021-05-04T23:09:05.077Z CNTRLR received node information:
controller role: primary
controller is a SUC: true
controller is a slave: false
controller supports timers: false
nodes in the network: 1, 2
2021-05-04T23:09:05.086Z CNTRLR [Node 001] Embedded device config loaded
2021-05-04T23:09:05.089Z CNTRLR [Node 002] Embedded device config loaded
2021-05-04T23:09:05.094Z CNTRLR setting serial API timeouts: ack = 1000 ms, byte = 150 ms
2021-05-04T23:09:05.102Z CNTRLR serial API timeouts overwritten. The old values were: ack = 1000 ms, byte = 15
0 ms
2021-05-04T23:09:05.102Z CNTRLR Interview completed
2021-05-04T23:09:05.113Z CNTRLR [Node 001] The node is alive.
2021-05-04T23:09:05.115Z CNTRLR [Node 001] The node is ready to be used
2021-05-04T23:09:05.115Z CNTRLR » [Node 002] pinging the node...
2021-05-04T23:09:05.162Z CNTRLR [Node 002] The node is alive.
2021-05-04T23:09:05.182Z CNTRLR [Node 002] The node is ready to be used
2021-05-04T23:09:05.182Z CNTRLR All nodes are ready to be used
2021-05-04T23:09:05.184Z CNTRLR « [Node 002] ping successful

@dkmcgowan
Copy link

I reset the device again, rebooted the machine, unplugged it from the extension cable and directly into the USB port, tried other USB ports, nothing makes the neighbors show up for the controller for me so far

@dkmcgowan
Copy link

ok, after the hard reset the home id had changed, so I removed the interviewstage again, restart the container, and it came up, did the full interview again, and neighbors are there now

@DayRunner131
Copy link

ok, after the hard reset the home id had changed, so I removed the interviewstage again, restart the container, and it came up, did the full interview again, and neighbors are there now

@dkmcgowan could you define hard reset?

@dkmcgowan
Copy link

in the zwavejs control panel, on the main page, click advanced, there is a "hard reset" option, it will remove all your devices... I removed all my nodes first to make them easier to add later, then did the hard reset... I don't know if that is what did it, changing the usb port, the cable, rebooting, or doing the interview remove from config again

@dkmcgowan
Copy link

I still think there is an issue, the neighbors list is not updating... I added the controller and then 1 powered device, I got neighbors list on both of those, they knew about each other. I then added a second powered device, it came back and new about both the controller and the first device, but the controller and first device did not update their neighbors list. I tried multiple heal networks and they still did not. I added a 3rd and the process repeated itself

@dkmcgowan
Copy link

I removed the interviewStage: Completed line again and it updated all the neighbors

"nodes": {
"1": {
"id": 1,
"interviewStage": "Complete",

I'm more curious if it's an actual issue with routing or just all the data isn't coming back for some reason, but the network is working correcly

@dkmcgowan
Copy link

btw, when I removed that one line on node 1, aka the controller, it updated the neighbors on not just the controller, but also all the nodes

@AlCalzone
Copy link
Member

I'm more curious if it's an actual issue with routing or just all the data isn't coming back for some reason, but the network is working correcly

That's more likely and Compounded by the fact that the neighbors of devices are no longer re-queried after the very first interview. In fact retrieving the neighbor list basically just means "Hey controller, what are your known neighbors of node XYZ"?
I wonder if your controller's memory was actually a bit messed up, since it worked for you after the hard-reset now.

when I removed that one line on node 1, aka the controller, it updated the neighbors on not just the controller, but also all the nodes

It shouldn't, but 🤷🏻‍♂️

@dkmcgowan
Copy link

I think the controller is fine now and all I think is happening is zwavejs doesn't get the node neighbors list unless I remove that interview line and restart to do a full interview, then all the nodes update their neighbors in zwavejs, not on the devices themselves... I added another node, it had neighbors correct, all other nodes and controller did not, I unplugged controller and plugged into a PC and looked at it with zwave pc controller from silabs, it was all fine, all neighbors were correct, plugged back into zwavejs, removed line, did a full interview, all the neighbors showed up

@AlCalzone
Copy link
Member

I added another node, it had neighbors correct, all other nodes and controller did not

Heh, we should probably refresh these lists after adding a node.

@dkmcgowan
Copy link

great, I think that will help, at least with people trying to visualize their network and see how to best move devices around, could possibly also give an advanced feature in the control panel to update neighbors information to force a full interview on the nodes, thanks!

@AlCalzone AlCalzone removed waiting for info ⏳ stale 💤 This issue seems to have gone stale. Interact with it to keep it open labels May 5, 2021
@AlCalzone
Copy link
Member

#2559 will fix this by adding a method that returns the up to date list of neighbors for each node instead of relying on stale cached data. zwavejs2mqtt will need to add support for this too.

@cperuffo3
Copy link

For those, like me, stumbling across the internet trying to find out why their controller shows no neighbors either in the network graph OR in the debug screen under the controller node when using a combined zwaveJS integration with zwavejs2mqtt control panel:

https://github.com/zwave-js/zwavejs2mqtt/issues/739

I used the discussion above. Clearing browser cache seems to fix this problem. Unknown why the debug screen of the node shows no neighbors until a cache clear but I'll take it at face value for now.

@AlCalzone
Copy link
Member

@robertsLando

@robertsLando
Copy link
Member

I don't store any node info in localstorage or cache, this is really weird and I will investigate into this

@robertsLando robertsLando reopened this Sep 27, 2021
@robertsLando
Copy link
Member

Keep it monitored and tell me if this happens again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants