KeyMaster Z-Wave lock manager and scheduler

Hey Everyone,

I updated my docker containers today and now I’m getting the below message in HA. Is Keymaster not ready for 7.4.0 yet or did I miss something and shouldn’t have gone this bleeding edge yet?

zwavejsmqtt version: 4.2.1

Error from HA:

2021-05-18 00:22:23 ERROR (MainThread) [custom_components.keymaster] Unexpected error fetching keymaster data: 'node_id'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 180, in _async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 140, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/keymaster/__init__.py", line 416, in async_update_usercodes
    return await self.hass.async_add_executor_job(self.update_usercodes)
  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/keymaster/__init__.py", line 431, in update_usercodes
    node_id = get_node_id(self.hass, self._lock.lock_entity_id)
  File "/config/custom_components/keymaster/helpers.py", line 59, in get_node_id
    return state.attributes[ATTR_NODE_ID]
KeyError: 'node_id' 

That function is only called if you’re using ozw or zwave.

Yeah I think I know what the problem is. I use git for storing all of my stuff and I thought I had recently checked everything in and apparently not. So I did a git stash expecting it to only affect 1 item and um yeah now I"m having fun undoing.

Hello all, this is my first time posting and I have been reading through everything before I posted. I got HACS installed and it is working for other things as well. I am using ZWAVE_JS for my zwave platform. I have one lock installed and it is working with normal Zwave but I want all the other features. So, I went to the Wiki and followed everything step by step, I went to HACS and installed KeyMaster and rebooted. When I go to integrations in HA I am not able to ever find KeyMaster there. I have refreshed over and over and still get nothing. I see the KeyMaster file under my custom components in config/ I have also made sure that packages in in my config.yaml and the folder is also built. So, for some reason I am unable to get key master to show up in my integrations. any help is greatly appreciated. Thanks

Sorry if this is a stupid question, but you are going to ‘Configuration’ → ‘Integrations’ and then clicking the ‘ADD INTEGRATION’ button and searching ‘keymaster’ there?

Yep. made sure I was doing that. :slight_smile: Not a stupid question at all!

does it show up under integrations within HACS? Have you tried a cache-refresh? aka cntrl-f5 with pc or shift-command-r with mac?

It is showing under HACS integrations

I cleared all cache and cookies and history as well as I have tried the refresh as well and still get nothing

well, the only two things i can think of, 1. is it already listed as an added integration, somehow? 2. Are you 100% positive HA actually restarted? Personally i’d check the process itself to see how long its been running just to confirm that.

I found this in my logs

2021-05-19 12:54:03 ERROR (SyncWorker_0) [homeassistant.loader] Error parsing manifest.json file at /config/custom_components/keymaster/manifest.json: Expecting ‘,’ delimiter: line 24 column 3 (char 546)

Whats that mean?

1 Like

So I only know about this because I dealt with it last night because I really messed up my install and had to reinstall HACS and all of my other integrations.
So there is a comma missing in a file under the custom components
So go to config/custom_compenents/keymaster
Edit the manifest.json
Go down to the line that reads "version": "somenumber" notice that is missing a comma.
Add the comma in there and then save and exit and restart HA.

I only noticed this after banging my head into the desk for an hour trying to figure out why it wasn’t showing up in the integrations list and then I finally decided to go look at the logs for HA and saw the error message in there.
In the repo there is a comma there but I don’t know why it doesn’t show up in the release unless it was missed in the latest release. But I dunno either way slap that thing in there and give it heck.

1 Like

you could do a pull request on that if you wished to contribute! or at the very least add an issue to the repo with that information. The greatness of opensource!

1 Like

@John_Gratis you are absolutely correct I just haven’t had a chance to do it yet. By the time I realized it last night it was 1am and I’ve been slammed with work stuff today. I just happened to see these emails and knew I could provide a quick solution.

1 Like

That worked for me! Thank you so much!

1 Like

Opened an issue for it Missing Comma · Issue #171 · FutureTense/keymaster · GitHub

1 Like

So when a user unlocks the door i get 2 notifications. “door unlocked” as well as a “door unlocked by [user]” or something along those lines. Is that right? Is there a way I can fine-tune exactly what notifications I get? For example, I dont want to get notification fatigue because someone leaves and forgot something:
door locked manual
door unlocked
door unlocked by [user]
door locked manual

Or even just the coming in and locking the door behind them. Anyway, long story short, whats the easiest way to fine tune notifications?

This happens if you have the “door notifications” turned on. It’s one of the toggles at the top of the generated lovelace.

image

There’s 2 of them, I always toggle them off and leave just the notification on for the slots.

1 Like

This maybe for an older version.
Latest is v0.0.33

One other question, where do I put the information for the notification? I was able to get everything with the doors to work and the pins and codes and all that fun stuff, but now I want notification to come to my app when so and so unlocks the door. :slight_smile: I am still learning a lot with HA so your help is awesome!

This…
_manual_notify:
mode: parallel
sequence:
- service: notify.phones
data:
title: “{{ title }}”
message: “{{ message }}”

Goes where?

its a script, so under scripts you create it. make sure the name matches your door. ie if you name it frontdoor but name the script front_manual_notify it will not work.