Switching from Zwave 1.4 (Deprecated) to ZWave JS UI (formerly ZwaveJS2MQTT)

If you’d like I can share the logs here from z-wave js. I am looking through and seeing a lot of errors like this. Failed to execute controller command after 1/3 attempts. Scheduling next try in 100 ms. I assume this is in relation to the missing devices. I just noticed that more than just window and door sensors are missing, a few light switches are as well.

I do not see anything in the logs about entities, though I am not entirely sure where I would look. This is what one of the device pages looks like for a device that is actually showing up in zwave js.

Did you just switch over? Or have you been running awhile?

You won’t see entities in the zwave logs, just node #'s and information about whats going on in the zwave network.

I switched over a few hours ago in an attempt to migrate my home assistant install. I am reading that it could take over night for some items to show up. I have tried to wake them up and it still isnt adding. Should I just wait on these?

How can I debug the lack of entities under my devices? There is no way to turn this bulb on. It is a Go Control brand Z-Wave bulb. Shouldn’t there be an entity for the light? I feel like I missed a crucial step in the setup somewhere since none of my devices have entities.

The critical step is that you need to wake each battery device until they are interviewed properly. Unfortunately, you may need to exclude and include some battery devices because they do not wake long enough. That is rare though. So typically what you should do is keep performing the wake command. While awake, perform the reinterview.

I have woke every device, switches and door sensors were all toggled manually. They still are not showing up in the z-wave js. I can wait, it is no big deal.

The larger issue is why are there no entities for devices that have been completely interviewed? Is this something that I just have to wait longer or is there something else that is wrong? I am looking at my DSC26 and there is no way to turn it on/off.

No, you need to wake them while performing the reinterview. Just waking them is not enough.

If you’re ok waiting, then you can do that as well

I have performed reinterview after waking them up and they still did not add. I will just wait.

I can’t stress this enough, you have to keep them awake. Watch the zwave logs, if the device goes to sleep during the reinterview, it will fail. Some devices have a 10 second wake window where reinterview takes longer than 10 seconds.

Got it. Thank you for your help. I will just give them a few days, the windows and door sensors are not part of any mission critical automations. I am running HA in a container inside of unRAID. I rebooted my unRAID server and suddenly the missing switches were showing and everything had their entities. Not sure why that helped, I had restarted the containers multiple times. Just tossing this here in case someone else has the issue.

I have 32 entities for 9 devices.

What are these entities? All I want to do (except one) is to turn the light on or off, which I figured out with trial and error. Can I simply disable the “extra” entities in Configuration/Entities?

select.in_wall_dimming_switch_local_protection_state
sensor.in_wall_dimming_switch_node_status
button.in_wall_dimming_switch_ping
select.in_wall_dimming_switch_rf_protection_state
button.in_wall_switch_on_off_ping
binary_sensor.nano_switch_gen5_without_meter_heat_alarm_overheat_detected

One more question.

In the Z-Wave JS to MQTT addon, one device that was removed a few months ago is being polled.

How do I hide or delete this one device?

Just so you are aware that actually cycling the device (opening & closing the door, etc) won’t necessarily wake them up. they can still report status changes but not “wake up” for interview purposes.

A lot of times there will be a button (usually the same button that you use to include them on the controller) that needs to be pressed in order to wake them up and then maybe keep pushing that button until the interview process is complete.

but also be aware that the button is also the button to remove them from the controller or to do a factory reset on the device so make sure you follow the “wake” procedure exactly and not the “factory reset” procedure.

And again, if the device doesn’t wake up for long enough to do the interview it may never work.

you may have to physically wake the device up as decribed above for it to be successfully interviewed

I’m not sure what most of those are and don’t use them on my devices.

However I’ve found the node_status entity to be useful to indicate that a device is or isn’t functioning correctly.

I use the following sensor in an automation to notify me if a device goes down for some reason:

sensor:
  - platform: template
    sensors:
      zwave_failed_nodes:
        friendly_name: "ZwaveJS Failed Nodes"
        value_template: >
          {% set dead_count = states | selectattr("entity_id", "search", "node_status") |
             selectattr('state', 'in', 'dead, unavailable, unknown') |
             map(attribute='entity_id') | list | count %}
          {{ dead_count }}
        attribute_templates: 
          dead nodes: >
            {% set dead_list = states | selectattr("entity_id", "search", "node_status") |
               selectattr('state', 'in', 'dead, unavailable, unknown') |
               map(attribute='name') | list %}
            {{ dead_list }}

I think if you go to the drop down menu for the device and click the “advanced” button you can remove the dead node from there.

This works- thanks.

1 Like

Thanks. Templates are my weakness, but I will try to learn from your example.

1 Like

At the risk of waking up an old thread, I just wanted to thank Pedro for the excellent instructions. After an unsuccessful automatic migration, I did some more research, decided that ZwaveJS2MQTT was a better match for what I wanted to do, then took the plunge.

It all went well. I even took the opportunity to do a better job naming my Z-Wave entities.

Very happy overall. Thanks so much for pulling this together.

@acronce also still need to migrate; did you follow the guide at the start of this threat? Asking as I’m not sure if it is still updated.

How did you you handle all the renaming in lovelace and the automations?

Yes I followed this guide. There were some slight differences between the current GUI and the screenshots. I don’t remember what they were, but it was minor.

As far as the renaming is concerned, I just did that manually. The naming of many of my devices was bad (defaulted when I added them to HA), so I took the opportunity to use better and more consistent names.

I found that if you rename the device, it would give you the option to also rename all the entities. I used that option and it provided sensible results. But it also appended an unnecessary number at the end of the entities (like ‘_1’) where the number for same typed devices incremented. I removed these numbers from all the entities.

Yes, I did have to change the lovelace config and automations to know about the new names of my switches, but I didn’t have many of them so it wasn’t difficult.

I was worried about our smoke alarms (we’ve got 12 of them), but it was fairly straight forward. Luckily I had templates in place that interpreted sensor values, translating them into sensible states. This was needed before because our smoke alarm model was not directly supported by the legacy Z-Wave integration.

After updating, I did have to rework the templates, but it’s much cleaner now because the entities provided by the new integration are much better. No manual sensor value translation needed. I barely had to change my NodeRed flows because they referenced the templates, not the entities directly. That “one step removed” design made this update simpler than it might have otherwise been.

So yes, there is manual work to do here. But it wasn’t that bad for me, and the end result much nicer than I had before. Also, the admin GUI for ZwaveJS2MQTT blows the doors off the old legacy integration. This was all well worth the effort.

1 Like

Thanks @acronce and thanks @petro for all the info!

I was postponing this migration from OZW forever but started Friday night. Within a few hours was up and running again. Took the opportunity to clean up my zwave network as I had quite some dead nodes after several years of usage.

Of the +50 nodes there was only 1 I could not wakeup but that has always been an annoying sensor.

For renaming I was a bit more pragmatic; Renamed most of the back to their original names which limited my need to change templates & automations etc.

Network is way (!) faster

My original config had no network keys, also not for legacy/s0 so my config looks like below. Can I generate keys for these and save the config without breaking anything?