Yale Conexis L1 Door Lock

@jak123uk, I managed to get this into homekit by disabling homekit starting and puting in an automation to only kick it off once the zwave network is ready. Instructions are towards the bottom of this link.

1 Like

any idea how to pair and get this lock to talk to HA(hassio-rpi3)

I pressed the button on the lock three times prior to adding secure node, I hadn’t at the time added a key in the options and configuration files, but it appears to have been added, I have subsequently added a key, but not removed or repressed the button on the lock.
this is the only device in the network and like the OP I am using the same usb stick in the pi3
the lock shows in lovelace but as an unknown item and i cannot control it

any ideas?

node id 3
node name Unknown Node 3
manufacturer name
product name
query stage Complete
is awake true
is ready true
is failed false
is info received true
max baud rate 40000
is zwave plus true
capabilities zwave_plus, routing, beaming, frequent
neighbors 1
sentCnt 19
sentFailed 0
retries 0
receivedCnt 0
receivedDups 0
receivedUnsolicited 0
sentTS 2020-05-27 20:35:36:869
receivedTS2020-05-27 16:53:53:233
lastRequestRTT 1260
averageRequestRTT 1257
lastResponseRTT 0
averageResponseRTT 0
battery level 100
application version Unknown

Hi @dodavies. It has been a long time since I originally set up my lock, however, what does the zWave panel show? For example, I have 3 nodes;

  1. My Lock
  2. A Switch
  3. zWave Hub

You may have to try a soft reset and/or heal network…

Thanks for the reply, it’s all sorted and showing up now, I didn’t have the network key

After trying some automations I finally when to the source code from OpenZWave to understand the ‘AlarmTypes’. Here is the complete list:

enum DoorLockEventType
			{
				DoorLockEventType_LockCode = 0x01,
				DoorLockEventType_UnLockCode = 0x02,
				DoorLockEventType_LockButton = 0x03,
				DoorLockEventType_UnLockButton = 0x04,
				DoorLockEventType_LockCodeOOSchedule = 0x05,
				DoorLockEventType_UnLockCodeOOSchedule = 0x06,
				DoorLockEventType_IllegalCode = 0x07,
				DoorLockEventType_LockManual = 0x08,
				DoorLockEventType_UnLockManual = 0x09,
				DoorLockEventType_LockAuto = 0x0A,
				DoorLockEventType_UnLockAuto = 0x0B,
				DoorLockEventType_LockRemoteCode = 0x0C,
				DoorLockEventType_UnLockRemoteCode = 0x0D,
				DoorLockEventType_LockRemote = 0x0E,
				DoorLockEventType_UnLockRemote = 0x0F,
				DoorLockEventType_LockRemoteCodeOOSchedule = 0x10,
				DoorLockEventType_UnLockRemoteCodeOOSchedule = 0x11,
				DoorLockEventType_RemoteIllegalCode = 0x12,
				DoorLockEventType_LockManual2 = 0x13,
				DoorLockEventType_UnlockManual2 = 0x14,
				DoorLockEventType_LockSecured = 0x15,
				DoorLockEventType_LockUnsecured = 0x16,
				DoorLockEventType_UserCodeAdded = 0x17,
				DoorLockEventType_UserCodeDeleted = 0x18,
				DoorLockEventType_AllUserCodesDeleted = 0x19,
				DoorLockEventType_MasterCodeChanged = 0x1A,
				DoorLockEventType_UserCodeChanged = 0x1B,
				DoorLockEventType_LockReset = 0x1C,
				DoorLockEventType_ConfigurationChanged = 0x1D,
				DoorLockEventType_LowBattery = 0x1E,
				DoorLockEventType_NewBattery = 0x1F,
				DoorLockEventType_Max = 0x20
			};

			static char const* c_DoorLockEventType[] =
			{ 
				"Locked via Access Code", // 0
				"Unlocked via Access Code", // 1
				"Locked via Lock Button", // 2
				"Unlocked via UnLock Button", // 3
				"Lock Attempt via Out of Schedule Access Code", // 4
				"Unlock Attempt via Out of Schedule Access Code", // 5
				"Illegal Access Code Entered", "Manually Locked", // 6
				"Manually UnLocked", // 7
				"Auto Locked", // 8
				"Auto Unlocked", // 9
				"Locked via Remote Out of Schedule Access Code", // 10
				"Unlocked via Remote Out of Schedule Access Code", // 11
				"Locked via Remote", // 12
				"Unlocked via Remote", // 13 
				"Lock Attempt via Remote Out of Schedule Access Code", // 14
				"Unlock Attempt via Remote Out of Schedule Access Code", // 15
				"Illegal Remote Access Code", // 16
				"Manually Locked (2)", // 17
				"Manually Unlocked (2)", // 18
				"Lock Secured", // 19
				"Lock Unsecured", // 20
				"User Code Added", // 21
				"User Code Deleted", // 22
				"All User Codes Deleted", // 23
				"Master Code Changed", // 24
				"User Code Changed", // 25
				"Lock Reset", // 26
				"Configuration Changed", // 27
				"Low Battery", // 28
				"New Battery Installed", // 29
				"Unknown" // 30
				};
			/* size = 31 entries */


This should make it easier for creating those automations.

Hi guys, I’m new to the world of home assistant but have slowly been migrating away from smartthings.

One of the last devices I have yet to get on home assistant is my conexis lock. I have the an aeotec gen5 USB adapter connected to my Pi and zwave is running and seeing the USB adapter, but when I try to add the secure node and tap the button 3 times on the lock nothing happens and the pair out fails.

I have tried resetting the Yale lock to factory (that was fun :weary:) and my smartthings is completely disconnected.
Any suggestions?

Should join these two threads together.

I gave up on the inconsistency of the zwave module and switched to the Yale Access Module which essentially is August Connect which uses a WiFi bridge located within bluetooth range of the lock. This solution has worked flawlessly and removed the need for any zwave integration.

Maybe a zwave /zigbee to WiFi bridge is a better alternative than a USB stick.

Using a USB stick works flawlessly for me once I understood the configuration.

@msansoni what are the pros of using the yale module? What entities are exposed to Home Assistant?

I did the same. The zwave module for this lock was nothing but a headache. The august/Yale access module has been flawless and works with the Yale keypads.

Sorry to hear you guys are having problems but this hasn’t been my experience at all. I’ve had my lock installed with the zwave module for about 2 years and it’s been rock solid. When I was setting mine up I found the range to be critical. A few feet further away and it would fail to pair. My USB stick is now about 30 feet away from the lock with almost direct line of sight. It was about 35 feet away and pairing would fail a lot. I used a USB extender to get my Aeotic stick literally only about 4 feet closer and suddenly pairing worked first time. It has never dropped off the zwave network since then.

My USB stick is now about 30 feet away from the lock with almost direct line of sight.
My zwave network consists only of the Aeotec stick and this lock, maybe that has something to do with it.

I still like the lock a lot. I’d like it better if it could engage the multipoint lock but i understand why it can’t.

Hi
How does this work with HA?

What intergration is required?

Thanks

Hi, does anyone know how to restrict a card or fob to only be active during certain days / hours? Looking to give a contractor access during the week days.

Hey,

I was looking at this, but where do you place these infos to be able to see later in the Z-Wave config and visa vi as entities and sensors in HA?

For my use I simple created a sensor in yaml to log last user.

But with the latest integration all the properties are available without creating a sensor. Even “The last door user” is available.

Not sure what the real question is… sorry.

Hi Geoff,

sorry for being not so clear. I do not have the overview to see the last door user. I have also checked with the latest integration, and it still looks like I need to create the sensor, as all I have now is the below:

Hi All,

I have been using this lock with the Yale zwave module and find it excellent. I have a separate docker container with a Aotec zwave stick running zwaveJs that talks to HA via the websocket. One thing I cannot see how to do is to update the battery status. It stays the same until I logon to the ZwaveJS UI and do a battery refresh - is there a way to get this done say once a day?

It is probably answered, but I must have missed it!

Thanks

mb

EDIT: Just found out how (Always the way!).

For those that are in the same boat, in the UI go to settings and expand General. Create a new value
Screenshot 2023-03-02 at 20.00.36

(all from dropdowns) and enable polling. I have set mine at every 12 hours

Sorry if repeating stuff already known!

mb

@Prash I see what you mean. You are looking for away to display who unlocked the door.

 template_last_door_user:
      friendly_name: "Last Door User"
      value_template: >-
        {% if states('input_number.door_lock_user_code') | int == 1 %}
          Master
        {% elif states('input_number.door_lock_user_code') | int == 2 %}
          Geoff
        {% elif states('input_number.door_lock_user_code') | int == 3 %}
          Alison
        {% elif states('input_number.door_lock_user_code') | int == 4 %}
          Guest
        {% elif states('input_number.door_lock_user_code') | int == 5 %}
          Jimmy
        {% elif states('input_number.door_lock_user_code') | int == 6 %}
          Emily
        {% else %}
          unassigned
        {% endif %}

The next question is where does the input_number.door_lock_user_code come from.

I have an automation to set it:

alias: Door Lock User Code
description: User Code from front door lock
trigger:
  - platform: event
    event_type: zwave_js_notification
condition:
  - condition: template
    value_template: "{{ trigger.event.data.device_id == 'xxxxxxxxxxxxxxxxxxxxxx'}}"
  - condition: template
    value_template: "{{ trigger.event.data.event == 6 }}"
action:
  - service: input_number.set_value
    data_template:
      entity_id: input_number.door_lock_user_code
      value: "{{ trigger.event.data.parameters.userId | int}}"
mode: single

For more information about zwave events look here.

Good luck.

1 Like

Thank Geoff, where do I add the template? And also the device_id, where can I get hold of that value?

@Prash sorry for the delay in getting back to you. I don’t have notifications turned on for the forum.

Both are good questions.

The device_id comes from the tail of the device page. Goto Settings → Devices → Conexis L1.

The url will look something like https://ha-url/config/devices/device/device_id

The device_id, in my instance, is a long hex-decimal string.

I have added template_last_door_user to my sensors.yaml file.

In automations,yaml I have added the following code:

- id: '1640264841577'
  alias: Door Lock Status
  description: Status of front door lock
  trigger:
  - platform: event
    event_type: zwave_js_notification
  condition:
  - condition: template
    value_template: '{{ trigger.event.data.device_id == ''device_id''}}'
  action:
  - service: input_text.set_value
    data_template:
      entity_id: input_text.door_lock_status
      value: '{{ trigger.event.data.event_label }}'
  mode: single
- id: '1640265363278'
  alias: Door Lock User Code
  description: User Code from front door lock
  trigger:
  - platform: event
    event_type: zwave_js_notification
  condition:
  - condition: template
    value_template: '{{ trigger.event.data.device_id == ''device_id''}}'
  - condition: template
    value_template: '{{ trigger.event.data.event == 6 }}'
  action:
  - service: input_number.set_value
    data_template:
      entity_id: input_number.door_lock_user_code
      value: '{{ trigger.event.data.parameters.userId | int}}'
  mode: single

You will need to fix up the id’s and device_id.

Good luck