KeyMaster Z-Wave lock manager and scheduler

I would always recommend a restart or even a reboot. With Keymaster before I rolled it out, I had it on a test machine. I had to install it and uninstall it a couple of times. A few times it didn;t complete uninstall or the uninstall froze, I had to delete the Keymaster directories on the HA drive.

1 Like

Thanks.I did this:

  • Removed integration, restarted
  • Removed from HACS restarted
  • Added to HACS restarted
  • Added integration and waited for keymaster notifications to appear then restarted

It isnā€™t working for me. The only entities I get are 10 entities for PIN status (I chose 10 codes when setting up integration). I never get a folder for my lock in the keymaster folder. I turned on debugging and after see the following. All lines except the ā€˜INFOā€™ line are repeating every 5 seconds. Iā€™ll be opening an issue in github:

2023-12-23 04:53:10.405 INFO (MainThread) [custom_components.keymaster] Version v0.0.87 is starting, if you have any issues please report them here: https://github.com/FutureTense/keymaster
2023-12-23 04:53:10.475 DEBUG (MainThread) [custom_components.keymaster.binary_sensor] Connected to zwave_js network
2023-12-23 04:53:10.493 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 1 not enabled
2023-12-23 04:53:10.494 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 2 not enabled
2023-12-23 04:53:10.494 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Ignoring code slot with * in value for code slot 3
2023-12-23 04:53:10.494 DEBUG (MainThread) [custom_components.keymaster] Work around code in use.
2023-12-23 04:53:10.494 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Ignoring code slot with * in value for code slot 4
2023-12-23 04:53:10.494 DEBUG (MainThread) [custom_components.keymaster] Work around code in use.
2023-12-23 04:53:10.495 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Ignoring code slot with * in value for code slot 5
2023-12-23 04:53:10.495 DEBUG (MainThread) [custom_components.keymaster] Work around code in use.
2023-12-23 04:53:10.495 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Ignoring code slot with * in value for code slot 6
2023-12-23 04:53:10.495 DEBUG (MainThread) [custom_components.keymaster] Work around code in use.
2023-12-23 04:53:10.495 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Ignoring code slot with * in value for code slot 7
2023-12-23 04:53:10.495 DEBUG (MainThread) [custom_components.keymaster] Work around code in use.
2023-12-23 04:53:10.495 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 8 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 9 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 10 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 11 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 12 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 13 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 14 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 15 not enabled
2023-12-23 04:53:10.496 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 16 not enabled
2023-12-23 04:53:10.497 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 17 not enabled
2023-12-23 04:53:10.497 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 18 not enabled
2023-12-23 04:53:10.497 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 19 not enabled
2023-12-23 04:53:10.497 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 20 not enabled
2023-12-23 04:53:10.497 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 21 not enabled
2023-12-23 04:53:10.497 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 22 not enabled
2023-12-23 04:53:10.497 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 23 not enabled
2023-12-23 04:53:10.498 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 24 not enabled
2023-12-23 04:53:10.498 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 25 not enabled
2023-12-23 04:53:10.499 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 26 not enabled
2023-12-23 04:53:10.509 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 27 not enabled
2023-12-23 04:53:10.509 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 28 not enabled
2023-12-23 04:53:10.509 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 29 not enabled
2023-12-23 04:53:10.509 DEBUG (MainThread) [custom_components.keymaster] DEBUG: Code slot 30 not enabled
2023-12-23 04:53:10.509 DEBUG (MainThread) [custom_components.keymaster] Finished fetching keymaster data in 0.017 seconds (success: True)```

Longtime Keymaster user, thanks for building/developing it.

Hope I am not asking a frequent question, but I am not finding much to support this use case. Iā€™d like to take action based on specified PIN codes on the lock being used. For example, would like to do different things if it is me entering the home versus a temporary guest or service person.

All Iā€™ve found is that the keypad unlock event - but no additional data that specifics which person. Does this exist?

I also notice there is a ā€œnotifactionsā€ option per code. What does this do?

It sends a notification every time thereā€™s a lock event (lock\unlock) and how it event was done keypad code\manual

Thanks Rodrick. Iā€™ve seen that eventā€¦ is there any data in it that specifies which keypad code/user performed the unlock?

It does, hereā€™s what mine looks like.

ā€œ4781a-door
Keypad unlock operation (4781A Jose Xxxx)ā€

1 Like

Thanks, Iā€™ll do some more digging!

Info is in the wiki:

1 Like

Thanks, I must have missed the trigger.event.data property. Exactly what I was looking for.

I found a workable example digging through the notification automation.

Hello, Have recently installed the integration to manage my Schlage lock , installation went fine, but in the dashboard all i am seeing is Entity not found and entity nit available message. Can confirm i have the required pre-requisite exist in the configuration file and have installed the lovelace pre-requisite as well. Also restarted HA after the keymaster install and as well the HACS card install. Could someone please help on what i am missing here
configuration.yaml file
image

homeassistant.yaml file
image

package directory

Error message

did you restart HA after modifying the configuration?

Yes, have restarted HA multiple times after the configuration.

If you restarted multi times and no fix. Remove KeyMaster, wait till the uninstall is complete, and restart. Delete the directory, restart and install it again.

Went through the process of removing the keymaster and re-installing it again. have the same results as before UI is fully of entity not available message. Should I be Renaming your entities as mentioned in the document, it seems to be optional?

This is the process which i followed for removing

  1. Removed the keymaster integration from the devices page which remove the folders from the packages directory as expected.
  2. removed the keymaster folder custom_components directory as well and made sure from HACS as well
  3. rebooted HA

Then followed through the installation steps by

  1. installating keymaster from HACS
  2. re-download the frontend components from HACS for UI
  3. Added the keymaster integration which created the folder in the package directory
  4. Used the Lovelace file to create the dashboard nut presented only with the entity not available message :frowning:

Wondering what I am missing here?

Check your home-assistant.log for errors

keymaster created six entities 5 sensors for each slot and 1 binary sensor showing as network, when i open up the slot sensors it has the PIN which is currently configured, so i believe keymaster is configured as expected, this is the log entry for the keymaster which seems to be good.

2024-01-17 14:07:37.578 INFO (MainThread) [homeassistant.setup] Setting up keymaster
2024-01-17 14:07:37.578 INFO (MainThread) [homeassistant.setup] Setup of domain keymaster took 0.0 seconds
2024-01-17 14:07:37.580 INFO (MainThread) [custom_components.keymaster] Version v0.0.87 is starting, if you have any issues please report them here: https://github.com/FutureTense/keymaster
2024-01-17 14:07:37.580 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=keymaster, service=refresh_codes>
2024-01-17 14:07:37.580 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=keymaster, service=add_code>
2024-01-17 14:07:37.581 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=keymaster, service=clear_code>
2024-01-17 14:07:37.581 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event service_registered[L]: domain=keymaster, service=generate_package>
2024-01-17 14:07:37.581 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=keymaster, service=generate_package, service_data=lockname=frontdoor>
2024-01-17 14:07:37.584 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up keymaster.binary_sensor
2024-01-17 14:07:37.585 INFO (MainThread) [homeassistant.components.sensor] Setting up keymaster.sensor
2024-01-17 14:07:37.587 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new binary_sensor.keymaster entity: binary_sensor.frontdoor_network
2024-01-17 14:07:37.588 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=binary_sensor.frontdoor_network>
2024-01-17 14:07:37.588 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=binary_sensor.frontdoor_network, old_state=None, new_state=<state binary_sensor.frontdoor_network=on; device_class=connectivity, friendly_name=frontdoor: Network @ 2024-01-17T14:07:37.588549-04:00>>
2024-01-17 14:07:37.589 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.keymaster entity: sensor.frontdoor_code_slot_2
2024-01-17 14:07:37.589 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.frontdoor_code_slot_2>
2024-01-17 14:07:37.590 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_2, old_state=None, new_state=<state sensor.frontdoor_code_slot_2=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 2 @ 2024-01-17T14:07:37.590765-04:00>>
2024-01-17 14:07:37.591 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.keymaster entity: sensor.frontdoor_code_slot_3
2024-01-17 14:07:37.591 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.frontdoor_code_slot_3>
2024-01-17 14:07:37.591 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_3, old_state=None, new_state=<state sensor.frontdoor_code_slot_3=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 3 @ 2024-01-17T14:07:37.591480-04:00>>
2024-01-17 14:07:37.591 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.keymaster entity: sensor.frontdoor_code_slot_4
2024-01-17 14:07:37.591 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.frontdoor_code_slot_4>
2024-01-17 14:07:37.592 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_4, old_state=None, new_state=<state sensor.frontdoor_code_slot_4=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 4 @ 2024-01-17T14:07:37.592098-04:00>>
2024-01-17 14:07:37.592 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.keymaster entity: sensor.frontdoor_code_slot_5
2024-01-17 14:07:37.592 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.frontdoor_code_slot_5>
2024-01-17 14:07:37.592 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_5, old_state=None, new_state=<state sensor.frontdoor_code_slot_5=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 5 @ 2024-01-17T14:07:37.592626-04:00>>
2024-01-17 14:07:37.596 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=update, entity_id=binary_sensor.frontdoor_network, changes=options=>
2024-01-17 14:07:37.597 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_2, old_state=<state sensor.frontdoor_code_slot_2=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 2 @ 2024-01-17T14:07:37.590765-04:00>, new_state=<state sensor.frontdoor_code_slot_2=7431; code_slot=2, icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 2 @ 2024-01-17T14:07:37.597842-04:00>>
2024-01-17 14:07:37.598 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_3, old_state=<state sensor.frontdoor_code_slot_3=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 3 @ 2024-01-17T14:07:37.591480-04:00>, new_state=<state sensor.frontdoor_code_slot_3=; code_slot=3, icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 3 @ 2024-01-17T14:07:37.598294-04:00>>
2024-01-17 14:07:37.598 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_4, old_state=<state sensor.frontdoor_code_slot_4=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 4 @ 2024-01-17T14:07:37.592098-04:00>, new_state=<state sensor.frontdoor_code_slot_4=; code_slot=4, icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 4 @ 2024-01-17T14:07:37.598680-04:00>>
2024-01-17 14:07:37.599 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_5, old_state=<state sensor.frontdoor_code_slot_5=unavailable; icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 5 @ 2024-01-17T14:07:37.592626-04:00>, new_state=<state sensor.frontdoor_code_slot_5=; code_slot=5, icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 5 @ 2024-01-17T14:07:37.599084-04:00>>
2024-01-17 14:07:37.599 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=update, entity_id=sensor.frontdoor_code_slot_2, changes=options=>
2024-01-17 14:07:37.599 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=update, entity_id=sensor.frontdoor_code_slot_3, changes=options=>
2024-01-17 14:07:37.600 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=update, entity_id=sensor.frontdoor_code_slot_4, changes=options=>
2024-01-17 14:07:37.600 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=update, entity_id=sensor.frontdoor_code_slot_5, changes=options=>
2024-01-17 14:07:37.604 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.keymaster entity: sensor.frontdoor_code_slot_1
2024-01-17 14:07:37.604 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=create, entity_id=sensor.frontdoor_code_slot_1>
2024-01-17 14:07:37.605 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.frontdoor_code_slot_1, old_state=None, new_state=<state sensor.frontdoor_code_slot_1=9585; code_slot=1, icon=mdi:lock-smart, friendly_name=frontdoor: Code Slot 1 @ 2024-01-17T14:07:37.605363-04:00>>
2024-01-17 14:07:37.627 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event entity_registry_updated[L]: action=update, entity_id=sensor.frontdoor_code_slot_1, changes=options=>
2024-01-17 14:07:37.633 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event call_service[L]: domain=automation, service=reload, service_data=>

Donā€™t you have to call the key master generate files service for EVERY named lock?

I fairly frequently get HA warnings in the repair promts that keymaster is calling some non existing service, so I have to go enter the lock name and re-gen the files.

This happens when you finish the configuration flow.

Seems like the helpers arenā€™t getting created. Check over your WHOLE log file for any errors.

While I created this project ā€” with the help of many. ā€” and am the techinal ā€œownerā€ of the repo, @firstof9 is the defacto Big Cheese. Heā€™s been keeping the lights on.

2 Likes