2024-08 - current state of zwave lock code managers

Thank-you for the suggestion and validating my assumptions. If you could please, I have a couple of questions regarding this approach.

  1. I used the default zwave integration - not the ui version. I can simply enter the pin codes into it - but is there some advantage for this task in moving to the ui version first?

  2. I previously used the smart things hub (which recently started acting up, this giving me incentive to move you a direct ha zwave approach. ). The existing codes are still embedded in the locks and continue to function. My objectives in managing the codes in HA are 1) simpler than manually editing them via the lock keypad and 2) knowing which pin unlocked a lock so I can have an ha automation react accordingly. Will I be able to achieve these objectives by manually managing the pins via the integration?

  3. Is there a way to sync the existing pins in the lock back into the integration? It’s only 13 pins so not really a big deal - but I’m curious about how one syncs the codes between the lock and the integration?

Thanks,
Ken

  1. YES Z-Wave JS UI is simpler than manually editing codes on your keypad. Here is a screenshot of the UI. As you can see you can easily add codes as well as enable and disable them. To set a code I just enter a pin in the User Code field and press send.
    Z-Wave JS UI User Codes

  2. Yes you can easily tell which pin unlocked a locked by using Z-Wave JS Events. Here is an example you would use in your automation. In your automation click ADD TRIGGER > Search for MANUAL EVENT > Enter zwave_js_notification in the EVENT TYPE BOX > Then paste the following in the EVENT DATA box.

  domain: zwave_js
  node_id: 56
  home_id: 4263815964
  endpoint: 0
  device_id: 902eeb296b54c6652cf0ed6b81f51cc1
  command_class: 113
  command_class_name: Notification
  label: Access Control
  type: 6
  event: 6
  event_label: Keypad unlock operation
  parameters:
    userId: 1

Realistically all you need is the following. If you have multiple locks I would keep the node id field.

  domain: zwave_js
  event_label: Keypad unlock operation
  parameters:
    userId: 1
  1. You can’t manage your pins in the Z-Wave JS integration you need Z-Wave JS UI for that.

  2. To sync your pins you just hit refresh and it will read your pins from the lock and display them in Z-Wave JS UI

1 Like

There’s a separate UI panel dedicated to managing user codes in ZUI. Have you tried that?

1 Like

Thank you cornellrwilliams and freshcoast

I have followed the instructions for migrating from zwave JS to zwave js UI.

The 2 locks (and 1 plug) were automatically added. I then manually added names to the two locks.

Where I struggle now is finding them as devices (and associated entities) in HA. I believe that ZUI is talking to the locks, as the sync function did bring in all the existing pin codes from the locks. I’m just not sure that HA sees the integration - specifically I can’t find the devices / entities in HA. Am I missing a step?

Thanks,
Ken

Not sure which instructions you followed, but it sounds like you don’t have the integration installed. If you need to install it, the instructions are in the add-on docs. https://github.com/hassio-addons/addon-zwave-js-ui/blob/72d4d51bea3684d84ce3792ccf3c83954feaa368/zwave-js-ui/DOCS.md#setting-up-the-home-assistant-z-wave-js-integration

1 Like

In z wave js up settings, make sure the Hass websocket port is ope./enabled (port 3000 I think).

In hass dashboard, Go to settings>devices and entities. Click add device, type in zwave and add that. It will ask you if you want supervised mode , uncheck that and clock ok, then it asks for the ip:port which is > ws://a0d7b954-zwavejs2mqtt:3000

You can find that url in z wave js UI add-on documentation.

For the installation I followed two sets of instuctions - one under the official ZWAVE topic in the HA documentation, and another - which was the same but in a great degree of more detail at

From the official documentation:

How do I switch between the official Z-Wave JS add-on and the Z-Wave JS UI add-on?

Switching does not require renaming your devices.

  1. Disable the Z-Wave integration. Do not remove the Z-Wave integration or you will lose all device and entity naming. This will automatically stop the official Z-Wave JS add-on.
  2. Note your network security keys from the official add-on.
  3. Install and start the Z-Wave JS UI add-on.
  4. Configure the Z-Wave JS UI add-on with the added control panel, including setting the location of your Z-Wave device and the network security keys.
  5. Add the Z-Wave integration again (even though it is still installed), and uncheck the “Use the Z-Wave JS Supervisor add-on”. Enter the correct address for the community add-on in the URL field in the next step.
  6. Uninstall the official Z-Wave JS add-on.
  7. Enable the Z-Wave integration.

I followed both sets (the high level set I copied above and the detailed one from the link above)

I have MQTT turned off as the instructions said it was only required if I had additional addons that wanted to communicate with zwave devices. Is this correct?

Did you perform steps 4-7 to reconfigure and re-enable the integration? Why don’t you show us your integration configuration?

Here’s another guide:

There are a lot of screens in the configuration of zwave JS UI. I gather the one you want isn’t the screen shot I provided above. What should I send to show you my configuration?

The Z-Wave integration is part of HA, not ZUI. Settings → Devices & Services → Z-Wave. I would suggest reviewing the guides a second time, it seems you’ve missed that step if there’s nothing in HA.

OK - Yes, I did that step, disabling the supervisor and setting the URL to ws://a0d7b954-zwavejs2mqtt:3000

However, zwave does not appear as an integration. I tried to repeat this step and now it refuses to connect.

image

Is the add-on still running?

Did you change any settings in ZUI related to the websocket server, that were not mentioned in the instructions? E.g. websocket server host and port should not be changed.

1 Like

Yes - the addin is still running. I had tried adding the server name into the configuration - so I took that out and tried again - now I get:

image

but it still doesn;t show up as in installed integration on the integrations screen

At this point I’m begging you, please read the guide.

https://community.home-assistant.io/t/switching-z-wave-js-addons-with-minimal-downtime-z-wave-js-official-to-z-wave-js-ui-community/409904#step-9-reconfigure-the-z-wave-js-integration-17

1 Like

I appreciate your patience - I was reading the guide you sent and it had a lot of steps that the other documentation didn’t have (and I was trying to figure out if I needed to just start over.- and as you pointed out :slight_smile: - this one step was critical. I enabled it and it now shows up. I think this clears up so much! Very much appreciated. I will try and carry on.

1 Like

Back to the original problem of configuring user codes, do you see a User Code panel under the lock nodes, in ZUI?

Yes - I was using that screen earlier to confirm my codes. What do you think is the simplest way that I could have HA show, that (for example) - user code 1 was used to open the front door and have it then associate a name with code 1 so that I can display (or announce or whatever) that “Ken unlocked the front door”?

Can you provide a little more context on this please? I get errors trying to enter this trigger / event type box (the red lines at the side of the edit box that don’t tell you where the error is). If you have a working example could I ask you to show me all the code in that automation as an example.

One of the code samples you provided:

domain: zwave_js
  node_id: 56
  home_id: 4263815964
  endpoint: 0
  device_id: 902eeb296b54c6652cf0ed6b81f51cc1
  command_class: 113
  command_class_name: Notification
  label: Access Control
  type: 6
  event: 6
  event_label: Keypad unlock operation
  parameters:
    userId: 1

Sorry it was a syntax error. Align the first line with everything else or just delete it.

Thanks - I’ll give it a try ASAP