KeyMaster Z-Wave lock manager and scheduler

I recently installed a Yale Z-Wave lock which works fine in HA via Z-Wave JS. I am attempting to install KeyMaster to manage its access codes, but I’m stuck and need some guidance.

I’m running HA v2021.8.6 and installed KeyMaster v0.0.61 via HACS. I rebooted HA and installed the keymaster integration with the Yale lock device selected. After this point, I’m not sure what to do.

I see all the generated files in packages/keymaster. I copy/pasted the lovelace code into a new dashboard, but all it shows are a bunch of missing entities – every single one is missing except the lock badge.

I assume these sensor/helper configurations need to be put into the HA config, but I didn’t read anywhere that this was a manual process. Shouldn’t this happen automatically?

EDIT TO ADD: After installing the integration, I got the notification that package generation was complete and that HA didn’t need to be restarted. As part of troubleshooting, I tried restarting anyway and that didn’t help.

Did you add the packages configuration to configuration.yaml and install all the necessary lovelace ui modules via HACS? (As well as add to resources?)

No, I didn’t know about that. ¯\_(ツ)_/¯ Is there something that defines “the packages configuration”? Like, do I just add common or each code yaml or what do I add to configuration.yaml?

Should be at the top of the pre-installation steps here.

Thank you. I had been to that wiki page multiple times thinking “man these installation instructions are pretty weak”. And I never noticed the table of contents on the RIGHT of the screen. :frowning:

Wow, this integration rocks. Thank you to everybody who maintains this!

1 Like

I got the integration installed and the Lovelace card set up, but I have 1 problem, and 1 oddity:

Problem: Code 1 set successfully, but other codes are stuck on “Adding”.
Oddity: the badge for the “fake” sensor says “not found”

Exclude the lock from your zwave network. Delete the integration. Factory reset the lock. Include the lock. Create the integration again.

Here is hopefully an easy question:

How do I rename the title of the notifications I get on my phone so they don’t say front_door (the name of the lock) so that it says Front Door instead? I named it from front_door since spaces can cause issues in places.

Thanks

Same question here. I tried to use Front Door in the initial configuration but it refused to take it. I was able to change it in the badge on the dashboard but the change did not propagate. Hopefully this enhancement will be made soon :slight_smile:

Yeah I actually changed it there as well and noticed it didn’t propagate and actually upon reboot it changed it back to front_door.

1 Like

Are you talking about the title that’s sent with the manual_notify scripts? If that’s the case, I suspect you set the title to be

title: '{{ title }}'

Just change that text to be what you want instead. The dynamic text that really matters for the manual_notify script is what goes in message, that being

message: '{{ message }}'

Yeah I actually had that idea before my original post, but I plan on adding more locks in the future, so if I did that all of the notifications would say “Front Door” instead of the particular door, correct?

You’d probably have a different one for each lock in that case. For example, I have notification scripts for keymaster_frontdoor_manual_notify and keymaster_backdoor_manual_notify etc. etc.

Each lock gets its own dedicated manual_notify script since the lock name is encoded into the script that will be run. So, for instance. I have 3 different locks, and therefore 3 different manual_notify scripts.

1 Like

Good point. I think I am good now. Thanks!

Couple other questions:

  1. I noticed that if the timer auto-lock countdown is active and Home Assistant gets rebooted (or I’m guessing the same thing would happen in a power outage) then the lock never gets locked. Has anyone found a solution for this?

  2. I updated the “Day Auto Lock HH:MM:SS” badge to set my day time auto-lock to 5 minutes… Upon reboot of Home Assistant it sets it back to 15 minutes (the default). Do I need to edit this in the code yaml so it sticks? It seems like it should work via the badge.

Thanks

I noticed that if the timer auto-lock countdown is active and Home Assistant gets rebooted (or I’m guessing the same thing would happen in a power outage) then the lock never gets locked. Has anyone found a solution for this?

I would think that it should end up getting locked. Probably something that should be raised as a bug

I updated the “Day Auto Lock HH:MM:SS” badge to set my day time auto-lock to 5 minutes… Upon reboot of Home Assistant it sets it back to 15 minutes (the default). Do I need to edit this in the code yaml so it sticks? It seems like it should work via the badge.

That definitely sounds like a bug and should be raised as such if it’s not saving that out.

Issues should be raised here: Issues · FutureTense/keymaster · GitHub

I ended up changing the text for both the title and the message by using if/else statements in the script. Here’s what I came up with. I admit it’s hacky but it gets the job done and I really needed some non-tech language for my wife. “RF” and “operation” are not in people’s normal speech.

alias: Keymaster Front Door Lock Manual Notify
variables:
  new_title: |-
    {% if title == 'front_door_lock' %}
      Front Door
    {% else %}
      {{ title }}
    {% endif %}
  new_message: |-
    {% if message == 'Manual lock operation' %}
      Locked manually.
    {% elif message == 'Manual unlock operation' %}
      Unlocked manually.
    {% elif message == 'RF lock operation' %}
      Locked by Home Assistant.
    {% elif message == 'RF unlock operation' %}
      Unlocked by Home Assistant.
    {% elif message == 'Auto lock operation' %}
      Locked automatically.
    {% elif message.startswith('Keypad lock operation') %}
      Locked by {{ message.split('(')[1].split(')')[0] }} using Keypad.
    {% elif message.startswith('Keypad unlock operation') %}
      Unlocked by {{ message.split('(')[1].split(')')[0] }} using Keypad.
    {% else %}
      {{ message }}
    {% endif %}
sequence:
  - service: notify.mobile_phone
    data:
      title: '{{ new_title }}'
      message: '{{ new_message }}'
mode: parallel
max: 10

1 Like

I noticed that notifications weren’t working, so I started digging around and noticed that my {lock_name}_keymaster_common.yaml files are completely blank!

First question: How did that happen? The locks and codes are all working!
Second question: How do I fix it? I’d rather not start over…