I think I have a similar (minor) issue. Before last week, the lock status didn’t update when manually locking/unlocking. So I built a little node-red thing to translate the alarmType values into a more user-friendly status. And it worked!
Since the update, it appears that lock/unlock is displaying correctly. However, the alarmType value is stuck on “undefined”. It’s not the worst thing in the world, but I’d like to be able to get that information. I’m using zwavejs2mqtt. It sounds like I’m just out of luck, at least for now. Does that sound right?
Using Kwikset 910. I have been using this Blueprint successfully until I updated Z-Wave to 1.14 and above when the alarmtype stopped being updated. I am running 1.16 now and am having the same issue.
I believe its due to “it may be necessary to set group 1 association to the controller node”
How do I do that?
Unfortunately, I’m new enough that I really don’t trust myself to tell anyone how to do anything. I have the same lock, but I’m running zwavejs2mqtt, so it might be a different setup than what you have. For me, I looked at the individual node (device) in zwavejs2mqtt, and then the Groups tab let me manage associations.
What I can tell you is that for me, it didn’t seem to make a difference. I haven’t been able to get alarmType to update since upgrading over a week ago. I hope this comes back; it was nice to add another level to my own logging.
I found a workaround - monitor Z-Wave events, and you’ll be able to get more info.
I found a workaround also…I moved the Kwikset lock back to HomeSeer where it works.
Thank you @rickprime Using Z-Wave events as triggers has allowed me to make my door lock automations work correctly running latest OS, Core and Z-Wave JS
It took me a little bit to wrap my head around how to do it, it works exactly how I want it to now.
Anyone have the issue where the lock is updating status on manual lock/unlock but it is NOT updating status when toggled through home assistant? If I manually run the zwavejs_refresh_values service, it does update.
One of my 910’s is still being finicky. I’m running zwavejs2mqtt master, config updated, debug logging. When I manually operate the lock, there are no entries in the debug log. In Groups there is 1 association, “Lifeline ZStick Gen5 USB Controller”. I tried removing and readding the association and then reinterviewing. Still nothing printed in the debug log when I operate the lock manually. I’m actually not positive it used to work before I moved to zwavejs. Do some of these locks just not push status correctly?
Edit: excluded / included and now it’s working as expected. Shrug.
I saw your work and said, hey, I have one of those, too for this same lock.
Thought I would share mine, and if you are interested in tweaking the icons and pointing out who entered the code, I have that covered…
This goes under the template integration in the new way templates are supposed to be used going forward.
Hi. I’m not very good using code or anything so I need your help.
I have managed to add my Kwikset 910 to my HA using Z-Wave (HA Integration + Z-Wave JS addon) and it works great… except for manual status update. If I open/close the lock manually, it won’t update the status in my HA.
I’ve tried using the blueprint in this post, but it doesn’t seem to work anymore. Alarmlevel and alarmtype sensors are always in “unknown” state.
Do anybody knows how to make it work in 2022.6.7 ? I would appreciate if you give kind of a “full guide” or a step by step indication to achieve this!
Thanks.
They are disabled by default.
To enable them, select settings menu, then
devices and services
in the zwave-js card select devices
select your lock
under sensors the alarmlevel and alarmtype should be listed so you can enable them.
Alternatively, you can use an automation based on the zwave_js_notification event.
Here’s what I have…
- name: "Garage Door Lock Log"
unique_id: garage_door_lock_log
state: >-
{%- if is_state("sensor.garage_door_lock_alarmtype", "19") -%}
Unlocked by Usercode
{%- elif is_state("sensor.garage_door_lock_alarmtype", "9") %}
Lock Jammed
{%- elif is_state("sensor.garage_door_lock_alarmtype", "18") %}
Unlocked
{%- elif is_state("sensor.garage_door_lock_alarmtype", "23") %}
Lock Jammed
{%- elif is_state("sensor.garage_door_lock_alarmtype", "24") %}
Locked by Z-Wave
{%- elif is_state("sensor.garage_door_lock_alarmtype", "25") %}
Unlocked by Z-Wave
{%- elif is_state("sensor.garage_door_lock_alarmtype", "27") %}
Auto-Relocked
{%- elif is_state("sensor.garage_door_lock_alarmtype", "21") %}
Manually Locked
{%- elif is_state("sensor.garage_door_lock_alarmtype", "22") %}
Manually Unlocked
{%- elif is_state("sensor.garage_door_lock_alarmtype", "161") %}
Tampered!
{%- elif is_state("sensor.garage_door_lock_alarmtype", "167") %}
Low Battery
{%- elif is_state("sensor.garage_door_lock_alarmtype", "168") %}
Critical Battery
{%- elif is_state("sensor.garage_door_lock_alarmtype", "169") %}
Battery Too Low to Operate
{%- else -%}
Unknown Level {{ states("sensor.garage_door_lock_alarmLevel") }} Type {{ state("sensor.garage_door_lock_alarmtype") }}
{%- endif %}
icon: >-
{%- if is_state("sensor.garage_door_lock_alarmtype", "19") -%}
mdi:lock-open
{%- elif is_state("sensor.garage_door_lock_alarmtype", "9") %}
mdi:lock-alert
{%- elif is_state("sensor.garage_door_lock_alarmtype", "18") %}
mdi:lock-open
{%- elif is_state("sensor.garage_door_lock_alarmtype", "23") %}
mdi:lock-open-alert
{%- elif is_state("sensor.garage_door_lock_alarmtype", "24") %}
mdi:lock
{%- elif is_state("sensor.garage_door_lock_alarmtype", "25") %}
mdi:lock-open
{%- elif is_state("sensor.garage_door_lock_alarmtype", "27") %}
mdi:lock-clock
{%- elif is_state("sensor.garage_door_lock_alarmtype", "21") %}
mdi:lock
{%- elif is_state("sensor.garage_door_lock_alarmtype", "22") %}
mdi:lock-open
{%- elif is_state("sensor.garage_door_lock_alarmtype", "161") %}
mdi:alert
{%- elif is_state("sensor.garage_door_lock_alarmtype", "167") %}
mdi:battery-10
{%- elif is_state("sensor.garage_door_lock_alarmtype", "168") %}
mdi:battery-alert-variant-outline
{%- elif is_state("sensor.garage_door_lock_alarmtype", "169") %}
mdi:battery-alert-variant-outline
{%- else -%}
mdi:lock-open
{%- endif %}
attributes:
user_code: >
{%- if is_state("sensor.garage_door_lock_alarmtype", "19") -%}
{%- if is_state("sensor.front_door_lock_alarmLevel", "0") -%}
Master Code
{%- elif is_state("sensor.garage_door_lock_alarmLevel", "1") -%}
Daniel
{%- elif is_state("sensor.garage_door_lock_alarmLevel", "2") -%}
May
{%- elif is_state("sensor.garage_door_lock_alarmLevel", "3") -%}
Paul
{%- elif is_state("sensor.garage_door_lock_alarmLevel", "6") -%}
Guest
{%- else -%}
Code: {{ sensor.garage_door_lock_alarmLevel }}
{% endif %}
{% else %}
n/a
{%- endif %}
date: >
{{ as_timestamp(states("input_datetime.garage_door_lock_last_changed"),0)| timestamp_custom("%A %b %-d", true) }}
time: >
{{ as_timestamp(states("input_datetime.garage_door_lock_last_changed"),0)| timestamp_custom("%-I:%M%p", true) }}
# Garage Door Lock Log
- name: "Garage Door Lock Log Message"
unique_id: garage_door_lock_log_message
state: '{{ states("sensor.garage_door_lock_log") }}'
- name: "Garage Door Lock Log User"
unique_id: garage_door_lock_log_user
state: '{{ state_attr("sensor.garage_door_lock_log", "user_code") }}'
- name: "Garage Door Lock Log Date"
unique_id: garage_door_lock_log_date
state: '{{ state_attr("sensor.garage_door_lock_log","date") }}'
true) }}'
- name: "Garage Door Lock Log Time"
unique_id: garage_door_lock_log_time
state: '{{ state_attr("sensor.garage_door_lock_log","time") }}'
true) }}'
type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: markdown
content: '## Front Door'
card_mod:
class: top-level-card
style: |
ha-card {
text-align: center;
background-color: rgba(67,101,181,0.87);
-webkit-box-shadow: 14px 14px 5px 0px rgba(7,5,130,1);
-moz-box-shadow: 14px 14px 5px 0px rgba(7,5,130,1);
box-shadow: 5px 5px 5px 0px rgba(7,5,130,1);
}
- type: markdown
content: '## Garage'
card_mod:
class: top-level-card
style: |
ha-card {
text-align: center;
background-color: rgba(67,101,181,0.87);
-webkit-box-shadow: 14px 14px 5px 0px rgba(7,5,130,1);
-moz-box-shadow: 14px 14px 5px 0px rgba(7,5,130,1);
box-shadow: 5px 5px 5px 0px rgba(7,5,130,1);
}
- type: grid
columns: 2
square: false
card_mod:
class: inline-card
cards:
- type: custom:button-card
tap_action:
action: toggle
entity: lock.front_door_lock
icon_height: 15px
show_state: true
show_name: false
styles:
icon:
- color: |
[[[
if (entity.state == 'locked') return 'lime';
else return 'red';
]]]
- width: 10%
- margin-top: 0%
card_mod:
class: inline-card
- type: custom:button-card
tap_action:
action: toggle
entity: lock.garage_door_lock
icon_height: 25px
show_state: true
show_name: false
styles:
icon:
- color: |
[[[
if (entity.state == 'locked') return 'lime';
else return 'red';
]]]
- width: 10%
- margin-top: 0%
card_mod:
class: inline-card
- type: glance
entities:
- entity: sensor.front_door_lock_log_date
- entity: sensor.front_door_lock_log_time
- entity: sensor.front_door_lock_log_message
- entity: sensor.front_door_lock_log_user
show_name: true
show_icon: false
columns: 1
show_state: true
state_color: true
card_mod:
class: inline-card
- type: glance
entities:
- entity: sensor.garage_door_lock_log_date
- entity: sensor.garage_door_lock_log_time
- entity: sensor.garage_door_lock_log_message
- entity: sensor.garage_door_lock_log_user
show_name: true
show_icon: false
columns: 1
show_state: true
state_color: true
card_mod:
class: inline-card
- type: glance
tap_action:
action: more-info
entities:
- entity: sensor.front_door_lock_battery
name: Battery
show_state: false
icon_height: 25px
show_name: true
hold_action:
action: none
card_mod:
class: inline-card
- type: glance
tap_action:
action: more-info
entities:
- entity: sensor.garage_door_lock_battery
name: Battery
show_state: false
icon_height: 25px
show_name: true
hold_action:
action: none
card_mod:
class: inline-card
- type: custom:button-card
tap_action:
action: toggle
entity: cover.garage_door
icon_height: 25px
show_state: false
show_name: false
styles:
icon:
- color: |
[[[
if (entity.state == 'closed') return 'darkblue';
else return 'yellow';
]]]
- width: 15%
- margin-top: '-2%'
state:
- value: open
styles:
card:
- animation: blink 1.5s ease infinite
card_mod:
class: inline-card
- type: custom:button-card
entity: sensor.garage_status
show_icon: false
show_name: false
show_state: true
card_mod:
class: inline-card
I have enabled them, both alarmlevel and alarmtype, However their state is always “unknown”…
so… I’m stuck there.