Kwikset 912


So this issue that I’m having is that my kwikset 912 doesn’t really work in hassio. It connects and monitor it but I’m not able to lock, unlock, view/ change codes and etc. it’s a zwave device and I use zstick gen 5.
If anyone has any suggestions, the zwave lock information is a bit confusing.


I believe locks require zwave security key to be set. Did you use ‘add_node_secure’ when adding the lock?


yep, make sure you have a security key set for zwave under the zwave: section of your configuration. you will probably have to exclude the lock then do a secure include to get it working fully.


I did not use add_node_secure to add it to my hassio
I will try doing this method.


Nice I’ll will do that first then.


Also be aware that network-wide inclusion does not work with these devices. They are Z-Wave (not Z-Wave Plus) and so you need to have the lock near the hub when you do the add_node_secure. I have the Kwikset 910 deadbolt and it does work great in HA.


Nice thanks for that info and pic


Looks like it works after trying to pair with the lock for a few hours. So I found out that doing a factory reset didn’t work for both the lock and the zstick. I followed the instructions to unpair the device form kwikset, that didn’t work. I went to the zstick manual and did it that way by removing it from the usb then holding down the button for 2 sec, the light turned yellow. When the light was yellowed and flashing I went to the lock and hit the button for pairing/unpairing. The zstick went to solid blue then back to flashing yellow.
After all that I was able to add it through secure_node.


I got it to pair. Now is there any literature on how i can make it see stuff like batt level, status of the lock and how to change and add code?
The zwave lock documentation isn’t the best for noobs.


Totally agree on the docs. Try something like this:
(in configuration.yaml)

  - platform: template
        friendly_name: 'Front Door Lock Battery'
        value_template: '{{ states.zwave.front_door_lock.attributes.battery_level }}'
        unit_of_measurement: '%'
        entity_id: zwave.front_door_lock
        friendly_name: 'Front Door Lock Status'
        value_template: '{{ states.lock.front_door_lock_locked.attributes.lock_status }}'
        entity_id: lock.front_door_lock_locked

(in groups.yaml:)

  name: Front Door Lock
    - lock.front_door_lock_locked
    - sensor.lock_front_door_battery
    - sensor.lock_front_door_status

And then you need to add the lock_card group to one of your view groups. Obviously make sure your entity IDs are right.

To set / clear user codes, you can do that in the Z-Wave Config screen. Select the lock under ‘Nodes’ and the Node User Codes card should appear way down at the bottom of the screen.

[INFO] Kwikset 910 with Zwave

@netopiax, just wanted to say thanks for posting all your code here. uber helpful!! I was ready to return the lock before I found this post. :star_struck:


Very glad I could help!


You can either add a new code through the Developer tools > Services or through configuration > Z-wave > Z-Wave Node Management (choose the appropriate node) > Node user codes ( choose the appropriate user) >Enter the user Code >then set code.

At least thats what I did.


@netopiax Thanks for the code you have here. Helped out quite a bit. I do have one issue, when I look at my node details for my Kwikset 910 lock I do not have an attribute for battery_level, therefore my “Lock Battery” entry always shows as “Unknown.” Any ideas?


I’m not sure why it would not have a battery_level attribute. Do carefully note that the battery_level attribute comes from the zwave node entity zwave.front_door_lock, not the lock entity lock.front_door_lock_locked.

I normally get errors on HA startup because it tries to initialize the template sensors before the Z-Wave network has finished starting up. So those two sensors show as blank initially and I think at least one action with the lock (e.g. it’s locked or unlocked) has to happen before they show up.


I just wanted to add that this sensor template and card/group works great for the Kwikset 910, thanks again! I wanted to add something to this, below is an automation.yaml addition that will notify you in the event of the following:

9: Lock jammed
161: Tamper alarm
167: Low battery
168: Critical battery level
169: Battery too low to operate

Additionally, the message sent uses the friendly verbiage from the sensor state. You will need to change your config to match the proper sensor of your lock, and setup some sort of notify service. I like to use SMS via email as it nags me a bit more than the standard home assistant ios notifications. Good luck!

- alias: Front Door notification
  - platform: state
    entity_id: sensor.front_door_lock_alarm_type
    to: '9'
  - platform: state
    entity_id: sensor.front_door_lock_alarm_type
    to: '161'
  - platform: state
    entity_id: sensor.front_door_lock_alarm_type
    to: '167'
  - platform: state
    entity_id: sensor.front_door_lock_alarm_type
    to: '168'
  - platform: state
    entity_id: sensor.front_door_lock_alarm_type
    to: '9'
  - service: notify.chris_sms
        title: "Front Door Alarm"
        message: "Lock status has changed to: {{ states.sensor.lock_front_door_status.state }}"


Wow that’s nice. I have mine running through a Wink hub and I don’t think it gives me any of the status information. I only get locked/unlocked/battery info. I may look at a Z-wave stick as my next upgrade.


My Kwikset 910 only gives a status that is text based. It says “Locked by RF” how did you get the number status, because I would love to get a push notification when the door is unlocked.


There’s code in HA that translates the Alarm Types for us to the proper status messages.


Its been a while since I set mine up. You can get the numerical status of the lock on the history panel (i.e. It will show the number status of the lock. I did a quick google search and found that this site also has a listing of the numbers:

Good luck.