Zwave Lock Manager

I realize that my lovelace looked to be out of date. I updated the lovelace to what I am using now. It does include the atomic calendar plugin, but if you dont care to load it or see the calendar, you can just remove that from the lovelace.

OK, I setup Google Calendar, added Atomic Calendar, Secondaryinfo Entity Row, and Button card plugins and getting

this._configElement is undefined

When trying to add that card.

Im sure you did, but can you verify that the ccustom card are are all loaded in to lovelace.

let’s try just a single slot

cards:
  - cards: null
    color: 'rgb(0, 0, 0)'
    color_type: label-card
    name: Entry Code 1
    styles:
      card:
        - height: 20px
      name:
        - justify-self: center
        - padding-left: 10px
        - font-size: 16px
    type: 'custom:button-card'
  - cards: null
    entities:
      - entity: input_text.door_keypad_1_name
      - entity: input_text.door_keypad_1_code
    type: entities
  - card:
      entities:
        - entity: input_boolean.code_1_notify
        - entity: input_select.door_keypad_1_access_schedule
      type: entities
    cards: null
    conditions:
      - entity: input_text.door_keypad_1_code
        state_not: Code Here
    type: conditional
  - card:
      color: 'rgb(44, 109, 214)'
      color_type: label-card
      name: Lock Schedule (Only Shows when on)
      styles:
        card:
          - height: 20px
        name:
          - justify-self: center
          - padding-left: 10px
          - font-size: 16px
      type: 'custom:button-card'
    cards: null
    conditions:
      - entity: input_select.door_keypad_1_access_schedule
        state_not: Always
    type: conditional
  - card:
      columns: 3
      entities:
        - entity: calendar.lock_code_1_schedule
          name: Start Time
          secondary_info: '[[ {entity}.attributes.start_time ]]'
          type: 'custom:secondaryinfo-entity-row'
        - entity: calendar.lock_code_1_schedule
          name: End Time
          secondary_info: '[[ {entity}.attributes.end_time ]]'
          type: 'custom:secondaryinfo-entity-row'
      show_icon: false
      show_state: true
      state_filter:
        - 'on'
      type: entity-filter
    cards: null
    conditions:
      - entity: input_select.door_keypad_1_access_schedule
        state_not: Always
    type: conditional
  - card:
      entities:
        - entity: input_boolean.door_keypad_1_front_switch
        - entity: input_boolean.door_keypad_1_back_switch
        - entity: input_boolean.door_keypad_1_garage_switch
        - entity: script.door_keypad_1_delete
      type: entities
    cards: null
    conditions:
      - entity: input_text.door_keypad_1_code
        state_not: Code Here
    type: conditional
type: vertical-stack

Create a new manual card and paste this in

Yes, the single slot did work.

EDIT: I’m an idiot.

Ha, so is the whole thing working now? I know it is a lot of lovelace

OK so I’m missing something here next to the first toggle on the last portion, is that related to the schedule? I’m not getting anything to select date range when choosing Recurring or temp.

Edit: hahah thats the header toggle

Do you have google calendar set up this? I moved to google calendar a few months back. I posted the link details a few posts up

Oh crap, yes sorry. I do have that setup, sorry I thought something would show here, all good!

One last question, can I rename ‘door keypad # front switch’, etc?

I’d also like to buy you a beer or something of your choice, PM me you paypal email! Thank you so much for all your help!

No need for a beer, happy to help. I would just give the switch a different name in the lovelace like so

  - card:
      entities:
        - entity: input_boolean.door_keypad_1_front_switch
          name: Front Door

If you really want to rename the entity you can, but you’ll have to have a look through the packages. A lot of the automations expect the switch to be named that.

So here is the last test. Put in a name, a code, Set the time to reoccuring, turn on the switch, and then set a google event for that slot. When the event is true, the code should be loaded, and you should get a notification. Then when the time ends, it should clear the slot

edit: and of course you can also remove the garage switch from the lovelace.

1 Like

I’m not bothered by the name of the entity itself, just want a friendly name. I was trying ‘friendly_name’.

I’ll test out the calendar shortly, it’s time for a break now that it’s working! Thank you so much!

1 Like

You’ve motivated me to do a little “prettying up” of the Lovelace. I should have some new yaml uploaded tomorrow.

1 Like

Minor changes: All UI based. I updated the lock packages to include friendly names for the input booleans for the door switches. I also included mdi icons for several entities. Probably biggest change is in the lovelace.txt. With the ability for have multiple lovelace configs now. You should be able to add a new lovelace vis configuration --> lovelace dashboards. You can even hide the panel so that it is only visible via admins. You can then edit the lovelace as raw and copy/paste the lovelace.txt from the github repository. The updated code includes a bit of conditional formatting, and will tell you if you dont have a calendar event set for a door code. I also set the clear code script to work with the button entity card to be Locked, so that it requires two taps/clicks to clear a code slot.

No other changes. Mostly just front end

2 Likes

A few more changes, and also a bit of code changes to all lock packages.

  1. I found that as I was playing around with my switches, and input selects in the lovelace, I was also sending zwave commands to clear codes, set codes, etc. Sometimes I was just looking to see what my options were or maybe it was a bad click choice. So… I added a 30 second delay in the automations before they run. So switch to ‘on’ for 30 seconds, etc. That way if you select something incorrectly, you can put it back without running the automaiton.
  2. I also noticed that if you set a schedule to recurring from Always and there was not a google calendar entry for the code slot, that it would delete the code. Kind of makes sense, and it did notify me, but… setting it back to always did not load the code back into the door because it was not a trigger. I added a second trigger so that selecting ‘Always’ also sets the code back in the door.
  3. I also added some safetly catches to keep automations from running before the zwave network is up and running. totally borrowed the idea from here
    Simplified Zwave Lock Manager

I added one input boolean and two automations. I did not add them to my lock packages because I feel like the will be used in other automations outside of just locks.

Add these two automations to your automations.yaml (or recreate them in the UI if you prefer)

- alias: homeassistant start-up
  initial_state: true
  trigger:
    platform: homeassistant
    event: start
  action:
    - service: input_boolean.turn_off
      data:
        entity_id: input_boolean.allow_zwave_automation_execution
        
- alias: Zwave_loaded_Start_System
  initial_state: true
  trigger:
    - platform: event
      event_type: zwave.network_ready
    - platform: event
      event_type: zwave.network_complete
    - platform: event
      event_type: zwave.network_complete_some_dead
  action:
    - service: input_boolean.turn_on # enable zwave automations again
      data:
        entity_id: input_boolean.allow_zwave_automation_execution

I then added on input boolean to my configutation. Like the automations I feel like this goes beyond the locks, so it is not in the lock.yaml files

input_boolean:
  allow_zwave_automation_execution:
    name: Zwave Network State
  1. I then added some custom markdown and a conditional card to the lock lovelace to tell you the zwave network is not started, so dont make changes. They wont work… The automations actually wont run until the network is started, but you could still change switches, input selects, etc and then end up in a state where things were as expected.

I’m pretty happy with the current state of this package. I personally really like the google calendar as the times. I find it easier to have more flexible scheduling. I wish there was a local calendar, for HA, that would make it perfect.

I may post a full update soon to this post so that people dont have to dig around to get the details.

1 Like

Do I just need back_door_lock.yaml if I am just using a lock on my back door? I added it to my packages folder, and my entities are named correctly as stated in the yaml, but it seems the only things that I can see on my dashboard or in my entities config is the back door switch. Keypad slot names and codes show entity not available, and same with notify and schedule entities. Am I missing a file or do I need to grab something else?

you also need common lock.yaml.

Ah ok! I’ll give it a try!

Looks like it was added in 0.110!

Close. It’s not a local calendar, but will show any calendars you have added to HA. Still… pretty cool, nice to see what’s going on.

Hi All, thought I would put a small update as I have been playing around with all different lock managers (thanks @ptdalen and @FutureTense) and trying to build my own through node red. One thing I noticed is a lot of people saying that the lock.clear_usercode service doesn’t work, but in my experience it has worked every time. I am using a yale touch yrd256 but I know most people posting are using the schalge locks so this may be different. But thought I would let anyone know who is using one of these Lock manager packages with a yale lock you could potential just call the clear code service instead of setting a random number. The only thing the service doesn’t do is remove the code from the zwave manager straight away. It seems you have to restart the zwave service before this code/deleted code is re-read.
image