Z-wave lock user codes not found error

Hi All,
I have a z-wave Schlage lock BE469ZP that I have setup and the basics work, like lock and unlock without issues. But, if I try to use the service call “Z-Wave JS: Set a usercode on a lock” I get the error seen below. I have been searching for awhile for a solution but haven’t been able to figure it out.

Is there something else I need to do to create the userCode slots?

Error executing script. Unexpected error for call_service at pos 1: userCode for code slot 10 not found

I’m using Z-Wave JS with the HUSBZB-1 stick.
The lock shows security was setup properly.

Things I’ve tried:

  • I’ve removed the lock and re-added it multiple times
  • I’ve tried rebooting
  • I’ve tried to re-interview the device

# Door lock info
BE469ZP
by Allegion
Firmware: 3.3

Z-Wave Info

Device ID: 12
Device Status: Alive
Device Ready: Yes
Highest Security: S2 Access Control
Z-Wave Plus: Version 1

Anyone have suggestions?

Try querying for the user code first and see if it then becomes available. Copy/paste this into YAML mode of the Services DevTools, then switch back to UI mode to select your device or lock entity.

service: zwave_js.invoke_cc_api
data:
  command_class: "99"
  method_name: get
  parameters:
    - 10

If you download the Device diagnostic file, it will show you if it knows about any userCode values. My understanding is that the metadata for users codes is not created during interviews (by default). Devices could have hundreds to thousands of codes, and refreshing all of them causes problems if done during interviews.

2 Likes

Thank You!!! that worked. I don’t get the error listed above and the user code is in the diagnostic file. The lock responds as seen in the zwave-js logs.

The new issue is that the zwave_js.set_lock_usercode service isn’t doing anything now. When I set a slot and code and click “call service” the green arrow shows up as expected, no more error, but nothing happens. the zwave_js logs show no activity in the logs and the HA logs show nothing.

for anyone else, some details can be found here on the service call used:

and zwave_js:

I wouldn’t expect any kind of response from the service call. If the green box showed, it means the command was sent successfully. If you are viewing driver logs, you need to have the log window open in a separate window to see them. It doesn’t show past logs.

Does the user code not work?

@freshcoast
yeah, i had driver logs open in a separate window. Then after sending the usercode service call, I was sending the api call to get the user code. The code was returned as “available” “00000”, so no change is seen on the lock. I can read the codes from 3 other usercode slots that I manually added to the lock just fine.

Yeah, I have the same issue. This worked awhile back, and then broke. Have tried many things to fix, but with no luck.

In case this wasn’t obvious to someone else (it wasn’t obvious to me)

You need to run:

service: zwave_js.invoke_cc_api
data:
  command_class: "99"
  method_name: get
  parameters:
    - 10

for each slot you want Home Assistant to know about and change the parameter value to the slot to learn about. (I.e. run this 10 times with the parameter values 1 through 10)

This part i get. The part that’s lost on me is where the user codes are showing up. They are not showing up anywhere in the developer tools area

Inside the config/ folder, key master generates a lovelace dashboard. You copy that dashboard config to a new dashboard.

Okay i figured out how view the debug logs on the Z Wave JS integration. But the user code always shows up as ****? Not sure what i’m doing wrong here, wonder if the fact that my BE469ZP is at Security S0 is an issue…

2023-10-18T17:28:37.991Z CNTRLR   [Node 021] [User Code] userIdStatus[5]: metadata updated          [Endpoint 0]
2023-10-18T17:28:37.992Z CNTRLR   [Node 021] [+] [User Code] userIdStatus[5]: 1                     [Endpoint 0]
2023-10-18T17:28:37.993Z DRIVER « [Node 021] [REQ] [BridgeApplicationCommand]
                                  │ RSSI: -87 dBm
                                  └─[SecurityCCCommandEncapsulation]
                                    │ sequenced: false
                                    └─[UserCodeCCReport]
                                        user id:   5
                                        id status: Enabled
                                        user code: ****