KeyMaster Z-Wave lock manager and scheduler

Remove this automation.

did not fix it still not being called.

Also change the automation like this:

- id: ea8993fb46db42d3938cb93de50197d0
  alias: open_zwave_network_up
  trigger:
  - platform: event
    event_type: zwave.network_start
  action:
  - service: homeassistant.turn_on
    entity_id: input_boolean.allow_automation_execution
  initial_state: true

still no does not start

input_boolean.allow_automation_execution is till off after you restart HA?

This makes total sense. I really appreciate all the time and effort thatā€™s been but into the development so far. Itā€™s one of my favorite integrations in my setup. Seems like thereā€™s potential for the integration to serve as a frontend for locks without keypads by connecting to external keypads. Just wanted to put that on your radar for future potential development. Sounds like youā€™re already thinking about it. Keep up the good work!

Wouldnā€™t external keypads just link to the lock already?

I assume they would through the cloud. For my use case Iā€™d like to be able to change codes, access permissions, etc. all locally. Your integration allows me to do that on my Yale. However, Iā€™ve just added the Wyze lock I linked above to my back door. It doesnā€™t have a keypad built in. Itā€™s just a cheap zigbee deadbolt replacement. Ideally, I could add an external (zwave) keypad and use lock-manager for local access management. The convivence of using lock-manager for both doors as opposed to having to use an app for the backdoor and lock-manager for the front really appeals to me.

All that said, maybe this use case is too niche to be worth spending any time on development. Just thought Iā€™d mention it in case others are trying to juggle locks that use differing implementations.

yes it is still off

Are you using ozw or the old zwave?

I am using zwave

Try changing the event to zwave.network_ready

Iā€™m attempting to install Lock-Manager. I followed each step found here using the HACs install method. Iā€™ve generated a config for my schlage be469 lock and pasted it into the LoveLace Raw Configuration Editor. I now see a keypad icon in LoveLace but that tab is blank. I read that I might need to add the following line (though I didnā€™t see this mentioned in the README.md):

homeassistant:
  packages: !include_dir_named packages/

to configuration.yaml file but when I do I get this error when I check my config before restarting:

invalid slug back garage door_lock_manager_1 (try back_garage_door_lock_manager_1) for dictionary value @ data['packages']

Can anyone offer advice?

If the external keypad Wyze uses has function calls for add/remove PIN adding the functionality should be relatively simple.

Not sure if you need the include directive. Comment that out and restart home assistant. How many slots did you choose in options? You should see that many ā€œcodesā€ in the UI ā€” even if the integration isnā€™t working, they still should appear. If not, delete the entire view (the tab) and paste the UI Code at the end of the raw configuration again.

no errors when the directive was removed. I originally selected 15 slots but reduced it to 10 and reconfigured. I removed the view code and pasted the updated code into the raw configuration again. I restarted the system but ended up with the same results:

on restart I also noticed these errors:

Logger: homeassistant.helpers.entity
Source: custom_components/lock-manager/sensor.py:79
First occurred: 8:33:12 PM (30 occurrences)
Last logged: 8:34:12 PM

Update for sensor.back_garage_door_code_slot_5 fails
Update for sensor.back_garage_door_code_slot_4 fails
Update for sensor.back_garage_door_code_slot_3 fails
Update for sensor.back_garage_door_code_slot_2 fails
Update for sensor.back_garage_door_code_slot_1 fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 278, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 471, in async_device_update
    await self.hass.async_add_executor_job(self.update)  # type: ignore
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/lock-manager/sensor.py", line 129, in update
    self.data.update()
  File "/usr/src/homeassistant/homeassistant/util/__init__.py", line 239, in wrapper
    result = method(*args, **kwargs)
  File "/config/custom_components/lock-manager/sensor.py", line 57, in update
    data[ATTR_NODE_ID] = self._get_node_id()
  File "/config/custom_components/lock-manager/sensor.py", line 79, in _get_node_id
    data = test.attributes["node_id"]
KeyError: 'node_id'

Rename your lock to not have spaces you entered: back garage door change it to back_garage_door
Iā€™m adding sanitization to the config flow input now.

1 Like

Progress! Now Iā€™m to a point where the entity is not found:

I pushed out v0.0.26 today. It has a new feature (ozw only) that will monitor the codes in the lock and compare them to what is ā€œactiveā€ in the UI. This is to address the times that ozw fails to add/delete the code on the lock. Every 30 seconds or so each slot in the UI will attempt to verify the code in the lockā€™s slot is correct. If not it will attempt to correct the issue. If you want to test this out, use your programming key to delete all user codes and lock-manager will rebuild the codes. For Schlage, press the Schlage button, enter your 6 digit program code, enter 6, then enter the program code again. Your lock will beep and flash twice. It can take up to a couple of minutes to rebuild, depending upon the number of slots you are using.

NB Any codes that you added to the lock that are not represented in the UI will be deleted!

1 Like

I followed theses and updated to 0.0.26, Then restarted HA and then performed the steps on my lock. I heard the two beeps. In the case of this lock, it currently has no codes programmed so it might not sync anything. Iā€™m still seeing the entries missing as in the image above.