Yale Smart Lock

@BendedArrow I actually did consider that, because assumed that because it allowed me to add it insecure it wouldn’t be a problem.

I didn’t add secure because nothing else in my network is, so thought i would have to remove and readd everything again? Does it reduce the performance of the mesh?

I’ll add it as secure anyway and report back with results.

Where does options.xml need to reside? I edited this one with no joy:

/usr/local/lib/python3.5/dist-packages/libopenzwave-0.3.1-py3.5-linux-x86_64.egg/config/options.xml

Everytime i do this i have to remove the node and its sending my nodeIDs very high :smiley:

Does home assistant not use system libs anymore, should I be using this instead?

/.homeassistant/deps/lib/python3.5/site-packages/python_openzwave/ozw_config/options.xml

Sorry for the multiple questions but its all related so may as well keep it in this thread.

Ive noticed that HA loads an XML when it finds my device, but its called “Yale Touch Deadbolt”, I wen’t to this XML file and found two products listed here on the z-wave alliance website:

<Product xmlns='http://code.google.com/p/open-zwave/'>
<!-- Yale Touchscreen Deadbolt (YRD220)
http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf
http://products.z-wavealliance.org/products/1972/configs
http://products.z-wavealliance.org/products/1973/configs

This isn’t the model of my device, so i went to this website and found it, how do i get HA to use this XML instead, or does it not offer anything different?

http://products.z-wavealliance.org/products/1358

Any update on this? I’ll be jumping in, in about 3 weeks time :wink: :smiley:

Locks require a secure addition for full functionality.

Did anyone get this to work it’s on sale today on Monoprice

Yes. I got it to work. It works flawlessly. I can unlock and lock the door from HA. It also reports back who lock/unlock it, the battery status, etc… I am really satisfied with this lock.

can you give instructions to get it working?

I am having a new door installed with this Monday and will no doubt need help :slight_smile:

Total noob here, but I just bought a similar lock lock (YRD 200) and after adding it to my network unsecure and being frustrated I finally followed instructions and added as a secure node (through Z-Wave config in HA) and it works great. The lock/unlock state on the HA launch screen doesnt work like you think it should, but the alarm type node (sensor.assa_abloy_unknown_type0002_idaa00_alarm_type) node reports a change for the different types of operation. (manual, key code, RF) Now I just need to connect the dots on what the alarm state codes mean what and figure out how to actually use HA to custom configure groups/nodes/actions/etc.

I have this lock, and have been able to activate the lock and unlock services using the hassio user interface. I had to add this lock securely (as per the above answers). I created a user code specifically for hassio, so that I could tell the difference between lock/unlock events commanded by automations and those that were entered by other users. Of note with this lock, it appears that a user code must be entered in the JSON.
For example: {"entity_id":"lock.front_door_lock_locked", "code":"1111"}

Here’s another Yale thread with some code sprinkled throughout. I got my locks working from this and learned a lot…

I’m a little newer to HA and have just got my Aeotec Gen 5 stick connected/configured. I have the Yale YRD210 and when “paired” using secure node, I see a funny item in the HA front-end. Seeing your comment makes me think there is a way to use the XML file found on the zwave alliance site.

Did you ever figure out how to get HA to do this?

Hi guys, I bought last year a Yale smartlock 25 YRD256 , originally bought with zigbee module, but after I bought a z-wave stick I bought the z-wave module and I’m trying to set it up with that.

The first time I didn’t set it up with the code because I’m a noob and of course wasn’t working, so I followed some posts here on the forum, I removed the node, add a key on configuration.yaml and added it as secure node but doesn’t open or close, it says it’s open also when it’s closed. It’s saying is Yale 446, I Don’t know why! Anyway doesn’t work, if I check the info, it says 43 cnd received and it never failed but still isn’t working. Somebody has an idea to how to fix it?

I have the same lock and it also shows as 446. After adding it as a secure node, everything works. Values update almost instant and config changes through zwave control panel have all worked. Using a template to display “human readable” status also works quite well.

I had problems at first not adding secure and then trying remove/add secure to get it to work. It might be holding on to old config somewhere. I found completely removing zwave devices tricky. I ended factory resetting zstick and devices and starting with a fresh install of hassio. Has worked flawlessly since. Good luck.

1 Like

Thank you so much bud!!!

I think I’ll do the same, I’m happy to know somebody has the same device and it worked!

It sucks I gotta reset the z-wave but whatever at least after everything will work!

Thank you so much! I appreciate that! I’ll let you know as soon as I have some time to do it.

Cheers

And like you said bud, it worked!! I pretty much factory reset every z-wave device, my switches and dimmers, the lock , the z-wave stick and then I cancelled the z-wave files in home assistant, now works like a charm !!!

Do you guys know how identify each code? Let’s say my girlfriend code is 123456 so if she opens the door I get a notification says lady… Just opened the door

Here is my template for it. Pretty much went through different posts on the web and found examples, then went through the engineering guide (http://ozw.my-ho.st/Yale/Yale%20ZWave%20Developer%20Guide.pdf) and modified examples to get what I wanted.

You will have to replace <person’s name> with whatever name you want, change “front_door_lock” to match your entity name (default is something like “assa_abloy_yrd_446_blah_blah_blah” can’t remember off top of my head) , and probably add/remove names/codes to match your situation.

I tried to get most relevant items out of that guide and so far everything has worked, but haven’t been able to try some like the low/critical battery yet (still at ~85% battery after almost 9 months)

#############################################################################################
#####                                   Front Door                                      #####
#############################################################################################
- platform: template
  sensors:
    template_front_door_lock_status:
      friendly_name: 'Front Door Lock Status'
      value_template: >-
        
        {%- if is_state("sensor.front_door_lock_alarm_type", "112") -%}
          {%- if is_state("sensor.front_door_lock_alarm_level", "0") -%}
            Master code changed at keypad
          {%- elif is_state("sensor.front_door_lock_alarm_level", "251") -%}
            Master code changed over RF
          {%- else -%}
            User added to slot {{ states.sensor.front_door_lock_alarm_level.state }}
          {%- endif %}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "33") %}
          User deleted from slot - {{ states.sensor.front_door_lock_alarm_level.state }}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "161") -%}
          {%- if is_state("sensor.front_door_lock_alarm_level", "1") -%}
            Tamper Alarm - Keypad Attempts
          {%- elif is_state("sensor.front_door_lock_alarm_level", "2") -%}
            Tamper Alarm - Escutcheon Removed
          {%- else -%}
            Error - Tamper Alarm
          {%- endif %}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "25") %}
          Unlocked by RF
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "19") -%}
          {%- if is_state("sensor.front_door_lock_alarm_level", "1") -%}
            Keypad Unlock - <person's name>
          {%- elif is_state("sensor.front_door_lock_alarm_level", "2") -%}
            Keypad Unlock - <person's name>
          {%- elif is_state("sensor.front_door_lock_alarm_level", "3") -%}
            Keypad Unlock - <person's name>
          {%- elif is_state("sensor.front_door_lock_alarm_level", "4") -%}
            Keypad Unlock - <person's name>
          {%- else -%}
            Unlocked by user slot {{ sensor.front_door_lock_alarm_level }}
          {%- endif %}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "21") -%}
          {%- if is_state("sensor.front_door_lock_alarm_level", "1") -%}
            Manual Lock - Inside Thumb Turn
          {%- elif is_state("sensor.front_door_lock_alarm_level", "2") -%}
            Manual Lock - Touch Function
          {%- elif is_state("sensor.front_door_lock_alarm_level", "3") -%}
            Manual Lock - Inside Button
          {%- else -%}
            Error - Manual Lock
          {%- endif %}
        {%- elif is_state("sensor.front_door_lock_alarm_type", "22") %}
          Manual Unlock
       
        {%- elif is_state("sensor.front_door_lock_alarm_type", "24") %}
          Locked by RF
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "18") -%}
          {%- if is_state("sensor.front_door_lock_alarm_level", "1") -%}
            Keypad Lock - <person's name>
          {%- elif is_state("sensor.front_door_lock_alarm_level", "2") -%}
            Keypad Lock - <person's name>
          {%- elif is_state("sensor.front_door_lock_alarm_level", "3") -%}
            Keypad Unlock - <person's name>
          {%- elif is_state("sensor.front_door_lock_alarm_level", "4") -%}
            Keypad Lock - <person's name>
          {%- else -%}
            Keypad Lock by user slot {{ sensor.front_door_lock_alarm_level }}
          {%- endif %}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "38") -%}
          Non Access Code by user slot {{ sensor.front_door_lock_alarm_level }}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "167") -%}
          Low Battery Level - {{ sensor.front_door_lock_alarm_level }}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "168") -%}
          Critical Battery Level - {{ sensor.front_door_lock_alarm_level }}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "27") -%}
          Locked by Auto Lock
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "113") -%}
          Duplicated PIN from RF in slot - {{ sensor.front_door_lock_alarm_level }}
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "130") -%}
          Power To RFM Was Restored
        
        {%- elif is_state("sensor.front_door_lock_alarm_type", "131") %}
          Disabled User Code Entered from slot - {{ states.sensor.front_door_lock_alarm_level.state }}
        {%- endif %}
1 Like

Hi All,

I’m relatively new to HA and I’m trying to set up my Yale Smart Lock properly. I have it connected via the Z-wave module and I’m able to control it. What I can’t do is get all the additional information to display via a sensor. Everytime I try I get a notification saying:
Invalid config
The following components and platforms could not be set up:

  • Sensor
    Please check your config.

This is what I’ve added to the config file:

Sensor:
 - platform: template
   sensors:
    template_front_door_status:
      friendly_name: 'Front Door Status'
      value_template: >-
        {%- if is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "144") -%}
          {%- if is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_level", "1") -%}
            Fob Unlock - 1
          {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_level", "2") -%}
            Fob Unlock - 2
          {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_level", "3") -%}
            Fob Unlock - 3
          {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_level", "4") -%}
            Fob Unlock - 4
          {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_level", "5") -%}
            Fob Unlock - 5
          {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_level", "6") -%}
            Fob Unlock - 6
          {%- else -%}
            Unlocked by Unknown Fob {{ states.sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_level.state }}
          {%- endif %}
        {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "22") %}
           Manual Unlock
        {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "25") %}
           Unlocked by RF
        {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "21") %}
           Manual Lock - Handle Lifted
        {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "24") %}
           Locked by RF
        {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "27") %}
           Auto-Relock
        {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "167") %}
          Low Battery Level
        {%- elif is_state("sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type", "168") %}
          Critical Battery Level
        {%- else -%}
          {{ states.sensor.assa_abloy_yale_conexis_l1_sd_l1000_ch_alarm_type.state }}
        {%- endif %}

Any help appreciated, TIA!

There are formatting issues in the first few lines with the leading spaces.

Sensor:
 - platform: template
   sensors:
    template_front_door_status:

Try this…

sensor:
- platform: template
  sensors:
    template_front_door_status:

Hi @gohassgo, thanks for your reply. This was solved in another post and the issue was the capital S in sensor.