On my standard Raspberry 4 hass.io ZWave JS integration, Nortek HUSBZB-1 my automations have started suddenly to fail to execute.
I noticed then that the entities have changed name in many devices
out of 81 devices and 425 entities, about half of them show now renamed to some default name like GE Quick-fit Smart In-Wall Paddle Switch, In-Wall Smart Fan Control, In-Wall Smart Switch,…
What is causing the issue?
How to stop and avoid this?
How to fix it? (short of renaming 500+ items by hand and then losing them again?
The only thing I can say then is that hopefully it was just a one time glitch in your system and you’ll just need to rename everything or restore from a good backup.
I’ve never experienced this with zwavejs (or any other zwave) so I wouldn’t think it will be an ongoing issue. But I also don’t use the add-ons in HA but instead use a standalone zwavejs2mqtt install for my zwavejs server so maybe the problem lies there?
Yes, you might be right. I have been hesitating and switching back and forth between ZWaveJS Add-on and ZWave2mqtt add-on. Device naming was not always updating on both. So I went back to ZWaveJS only, but that seems to be more of a problem.
Now I just disabled ZWaveJS, enabled back ZWaveJS2mqtt and the device names are back!
They share the same names unless one was originally created with an older version. I’m guesing what’s happening is that when you made the switch, one of the 2 systems is missing manufacturer information for some nodes. Those nodes will then generate a different system id. If you can find the cache file and you actually want to switch, take the cache file and put it into the non-working one and the names will match.
TLDR: Names don’t match because inclusion information for each node is wrong on 1 of the 2 addons.
Interesting theory, but I noticed many times that the names are not updated properly on both views:
Devices and Entities updated through configuration/Devices or entities and Z-WaveJS Control Pannel (from ZW2MQTT)
Where are the cache files you are talking about?
I agree with you that inclusion information for some nodes is probably not the same. But what is stored where? In the stick, In some server related files, in add-on related files? How is it synced between the different components?
It’s not a theory, it’s how the naming works under the hood. If you don’t get a manufacturer, i.e. inclusion is not complete, then the entity is identified under the hood as ‘unknown and the node number’.
They are buried in the OS files, you can access them through community terminal using SCP if you’re running hassOS. As for the actual location, I don’t know. I don’t remember off the top of my head.
This is the problem with zwave. Half the information is on the stick with the node, half is in a file on the OS. When you switch between 2 different controller softwares, they both need to run an inclusion on the devices to get everything. If you don’t do this, you’ll run into these problems. You’ll also have missing functionality.
It isn’t. You have to manually move the cache file before starting the other software or manually reinterview each node after switching to the other software.
EDIT: If both softwares have the same interview information, they will have the same names and id’s under the hood. Period.
The main thing I can say then, at that point, is that ideally it was only a one time misfire in your framework and you’ll simply have to rename everything or reestablish from a decent reinforcement.
I’ve never encountered this with zwavejs (or some other zwave) so I wouldn’t figure it will be a continuous issue. However, I additionally don’t utilize the additional items in HA yet rather utilize an independent zwavejs2mqtt introduce for my zwavejs server so perhaps the issue lies there?
No, zwavejs2mqtt and zwavejs under the hood use zwavejs server. Both are going to produce the same results. It’s 100% dependent on the inclusion information in the cache file.
EDIT: The only way they are different is if you’re using different versions of ZwaveJS server. And if I recall correctly, there’s only a few version changes that affect this. So it would be really challenging to do if you’re using up to date versions for either and the same cache file.
I’m very sure that OP’s issues are related to not reinterviewing the nodes after switching. Which is what everyone does incorrectly.
I have many times switched between ZwaveJS and ZwaveJS2Mqtt. I use SCP to get my cache files and I plop them in each container when I switch.
This happened to me today. I upgraded to Home Assistant 2021.12.9 and suddenly all my Z-Wave devices and entities with S2 encryption were renamed.
I’ve only ever used zwavejs (I’ve never used ZW2MQTT or other integrations).
In my case, it was the 9 “GE Quick-fit Smart In-Wall Paddle Switch” devices that were renamed. I don’t mind the names changing so much, but the entities changing name was rough; I have to reconfigure them all now.
I had this with the last upgrade too. ONE device changed it’s name from switch.garden_light to switch.gardenlight which meant that the automation to turn it on when I open the backdoor was failing to run. Luckily I noticed pretty quickly that the switch was missing from the lovelace dasboard (entity not found), and was able to quickly trace back the problem from there. Why it changed it’s name though, is a mystery. I’m the only user, I’m the only person who lives here. No-one could have been messing with it, and I certainly haven’t been renaming things.
This happened to me for the first time today upgrading to 0.1.52. Interestingly, all 5 devices were wall switches, and all the same make, model, and firmware.
46201 / ZW4008
by GE/Jasco
Firmware: 5.53
It appears that the driver was modified recently. That may have triggered it.
Created an Issue for Core as that seems to be the culprit for me. Restoring to 2021.12.8 restored functionality. Sadly in my enthusiasm, forgot to grab logs. So if anyone has logs and can post to the issue that may help the devs.
[edit] - known issue going back to Nov last year. Link in issue.
I guess that log get cleared out at some interval (sorry, haven’t had to use it yet or look into the details of it). Mine only looks to go back to this morning.