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.