Schlage be469 (non-zp) cannot set/clear user codes

I have two Schlage zwave locks - a be469 and be469zp (I didn’t know there was a difference between the two locks until now!). I’m using the zwave js integration (not mqtt, 0.1.27 using zwavejs 7.9.0 as of this morning) on a rpi4. Both locks correctly report locked/unlocked, but the zwave_js.set_lock_usercode and zwave_js.clear_lock_usercode only work on the plus model. When attempting the same thing on the non-plus model I get this error in the logs:

2021-06-25 05:11:26 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [547771537536] Error handling message: Unknown error
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 25, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 525, in handle_execute_script
    await script_obj.async_run(msg.get("variables"), context=context)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1216, in async_run
    await asyncio.shield(run.async_run())
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 350, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 368, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 568, in _async_call_service_step
    await service_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1491, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1526, in _execute_service
    await handler.job.target(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 666, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 658, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 760, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/zwave_js/lock.py", line 129, in async_set_lock_usercode
    await set_usercode(self.info.node, code_slot, usercode)
  File "/usr/local/lib/python3.8/site-packages/zwave_js_server/util/lock.py", line 89, in set_usercode
    value = get_code_slot_value(node, code_slot, LOCK_USERCODE_PROPERTY)
  File "/usr/local/lib/python3.8/site-packages/zwave_js_server/util/lock.py", line 32, in get_code_slot_value
    raise NotFoundError(f"{property_name} for code slot {code_slot} not found")
zwave_js_server.exceptions.NotFoundError: userCode for code slot 7 not found

This error seems to be raised here, but I’m not sure how to go any further to figure out why and either attempt a fix or provide more useful information.

Can someone give me a nudge on how to continue investigating/solving this issue? The next thing I was hoping to look at was the dict/json that represents these zwave nodes to compare the two, but a) I don’t know how to get that and b) I’m not sure if that’s actually the right next step or not.

Re-interview the lock.

That’s it - thanks!

1 Like