Best Door Lock

Hiya, folks.

I am fairly new to home automation and HA, but I have an EE background. I have a PI3 running HA, through an Wink Hub 2 and an Insteon hub.

I am automating my house, one piece at a time. Now is the time to add new door locks. I would like to be able to do the following.

  • See the state of the lock from within HA
  • Lock/unlock the door through HA
  • See which key code unlocked the door (and when).
  • Any other cool things later on.

What is the best door lock on the market now. I have looked at the Schlage locks, mainly because I can look at them at the local Home Depot.

What others would you suggest that I investigate?

Thanks

Steven

1 Like

I have a Schlage paired with my Wink v1 hub and I’ve been very happy with it. Can do all the requirements listed.

One day back a few months ago I noticed two binary sensors showing up named binary_sensor.key_1 and binary_sensor.key_2 and had no idea what they were or what they tied back to. No one on the forums answered my post about them either.

It wasn’t until working with @w1ll1am23 on the recent updates to the Wink platform did I find out that these actually represented the two key codes in my Schlage lock and they were tripped momentarily whenever one of them was used. If it wasn’t for him, I’d still be trying to figure that out!

So you can see and change the state of the lock through HA and with the binary sensors, see who unlocked and when.

Schlage here as well. I’ve tried a few other smart locks and ended up with the Schlage.

I had far too many issues with August to ever recommend them (nothing like having your back door unlock at random times)

Have you tried Schlage directly connected through ZWave or do you use wink like Rob?

I have the schlage sense with a ATV4 and it works fine with HA with a little automation. I bought the sense because it was on craigslist and i don’t have zwave and I did have an ATV4.

2 Likes

I just pulled the plus and bought a Schlage Connect. Thanks

I went the cheap route and sorta built my own… Installed an [electric drop bolt] (https://www.amazon.com/gp/product/B01CRFT0J2/ref=oh_aui_search_detailpage?ie=UTF8&psc=1) in the door frame along with a RFID card reader outside. Everything (including the doorbell for HA notification) is controlled by an Arduino and an ESP8266 communicating via MQTT to HA. The drop bolt has a built in reed switch for door open/closed status as well as a selectable timer for exit delay. I’m still working on the software side of everything but the intent is to use presence detection to unlock the front door when someone comes home. The RFID reader will just be used as a backup in case HA goes down. The only thing I don’t like about the setup is that although the literature indicates otherwise, the drop bolt appears to be designed to be left in the normally-locked / closed position. The mechanism is solenoid-based and the solenoid is continuously energized when in the unlocked / retracted position so it can get rather hot after a few hours. This also means that I have an “Exit” pushbutton near the door and it all has battery backup. I’m sure there is a way to automate the unlocking-during-exit with HA but again, in case of emergencies or if HA is down…

1 Like

I’m curious about this, too. I still have my Schlage connected to my Vera.

Also - it’s my understanding (which may be out of date) that HA doesn’t report the index of the code that most-recently unlocked it. I use this (on Vera) to let me know when my kids unlock the front door.

I have a Yale YRD220 connected directly to HA and it works great. The history shows who unlocked the door and when. I have an automation set up to send an email and SMS when the door is unlocked with certain codes. I highly recommend it.

2 Likes

In the market for a door lock as well. The additional requirement for me would be for HomeKit but in my research it looks like it’s either a z-wave (which plugs in nicely to HA) OR HomeKit but not both in the same lock. Is that a correct assumption?

Now I know I could expose a z-wave lock to Homebridge, but then would I be limited to using “turn on/off the front door” or would the “lock/unlock the front door” phrase work?

And what about Alexa? Seems like August is the only lock that directly supports Alexa without adding a bridge like Wink.

Any advice would be greatly appreciated!

I’m starting to look for a lock also. The August lock looks like it is very well rated, but wondering how difficult it would be to integrate into HA.

Any advice?

If you have or want to get a Wink Hub, I believe this will extend August functionality into HA. I like the fact that August had Siri and Alexa out of the box and it was my leading choice except I ended up going with a Schlage Sense because I didn’t like the physical features of the lock. Because it’s on the inside only, you have to use the app, or the auto-lock (which I wouldn’t trust) to lock your door from outside. Also I wanted to have a keypad for guests because not all are savvy enough to download the app and configure it. So for everyday ease of use, I went with the Schlage Sense (HomeKit only) and created an input_boolean, exposed to Homebridge and a rule in HomeKit to keep the 2 in sync. It’s a round about way to bring HA support and if I didn’t have an iPhone with HomeKit I probably would have just gone the Schlage Connect route. But for my use, August didn’t make the cut.

2 Likes

I’m testing a couple of locks right now. So far, ending month one with August and the experience has been sub par to say the least. August has been very very unreliable. Zwave locks fair much better as you control all the automatons from HA and Zwave is 100% reliable. Your lock experience will be determined by 1) how easy your door locks (do you have to pull it or push it extra to get it to lock) and 2) how solid your presence tracking is in HA.

Should have a video up in the next few weeks! Working through a couple more locks now.

Cheers,
Ben

9 Likes

@ceh Can you share your config code for how you have it setup?

Here’s my setup. There may be better or easier ways to do it, but this is what I came up with.

# from sensor.yaml
  - platform: template
    sensors:
      template_front_door_status:
          value_template: >-
            {%- if is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type", "19") -%}
              {%- if is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "1") -%}
                MOM/DAD
              {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "2") -%}
                KIDS
              {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "3") -%}
                Pet Sitter
              {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "4") -%}
                House Cleaners  
              {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "5") -%}
                unassigned 
                {%- else -%}
                Unlocked by user {{ sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level }}
              {%- endif %}
            {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type", "24") %}
              Locked by Zwave
            {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type", "25") %}
              Unlock by Zwave
            {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type", "21") %}
              {%- if is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "1") -%}
                Manual Lock
              {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "2") -%}
                Lock by Keypad
              {%- endif %}            
            {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type", "22") %}
              Manual Unlock
            {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level", "161") %}
              Tamper
            {%- elif is_state("sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type", "167") %}
              Low Battery
              {%- else -%}
              Unknown Level {{ states.sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level.state }} Type {{ states.sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level.state }}
            {%- endif %}
          friendly_name: 'Front Door Status'
 
# from notify.yaml  - name: email
    platform: smtp
    server: smtp.gmail.com
    port: 587
    sender: [email protected]
    encryption: starttls
    username: [email protected]
    password: PASSWORD
    recipient: [email protected]
  - name: sms
    platform: smtp
    server: smtp.gmail.com
    port: 587
    sender: [email protected]
    encryption: starttls
    username: [email protected]
    password: PASSWORD
    recipient: [email protected]'S_SMS_EMAIL_GATEWAY   


# from automations.yaml  
# I originally had the trigger as 
# lock.assa_abloy_yale_touchscreen_deadbolt_yrd220_locked:
#   to: 'unlocked'
# and it worked fine, and I thought it was a bit more discriptive than alarm -> code 19,
# but after a recent HASS version upgrade that stoppped working.

  - id: "0"
    alias: door_unlock_notify
    hide_entity: true
    trigger:
      - platform: state
        entity_id: lock.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type
        to: '19'
      - platform: numeric_state
        entity_id: sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_level
        above: 2        
    action:
      - service: notify.email
        data_template:
          title:  "Front Door"
          message: "Front door unlocked by {{ states('sensor.template_front_door_status') }} "
      - service: notify.sms
        data_template:
          title:  "Front Door"
          message: "Front door unlocked by {{ states('sensor.template_front_door_status') }} "

  - id: "1"
    alias: door_unlock_night
    hide_entity: true
    trigger:
      platform: state
      entity_id: sensor.assa_abloy_yale_touchscreen_deadbolt_yrd220_alarm_type
      to: '19'
    condition:
      condition: state
      entity_id: sun.sun
      state: below_horizon
    action:
      service: light.turn_on 
      entity_id: light.ge_45606_2way_dimmer_switch_level
      data: 
        brightness: 50

Awesome, thanks. I did something similar last night before I saw your post:

Which August do you own? I’ve personally had the Schlage Connect and Sense models, both work flawlessly.

I am a subscriber to your channel, Ben… I cannot wait to see a video on your locks! I have been trying for a while to figure out which lock to use on my home. Will be awesome to see what you have to say on the subject!

~Beau

@Jer78 could you share further how you did this with the schlage, I’m trying to work around the limited Bluetooth range for homekit with apple tv as I my front door is well out of range of my apple tv. My idea is to run Home Assistant alongside a raspi Homebridge and using this (https://www.npmjs.com/package/homebridge-homeassistant) plugin link back it to my actual Homekit hub. If you have any thoughts on this I’d love some feedback

@gswtt0 The way I did it was create an input_boolean and exposed it to homebridge. Then I created 4 rules, lock and unlock for the Schage Sense to turn the input_boolean on/off and vice versa.

Unfortunately I don’t think this solution would work for you since your Apple TV is out Bluetooth range.