Schlage Connect Locks - HA Integration Needs Attention

Does anyone know how to update OZW to identify the new Schlage BE469ZP? I’m finally going end-to-end Zwave plus by moving to these Zwave Plus locks.

1 Like

@ptdalen

I am a Long time Vera user and am working on switching everything over to my new rPi/Hassio install. I still need to read through the documentation a little more thoroughly, but I am quite comfortable with Python/YAML/Jinja2.

I have several integrations up and running, and have managed to add several z-wave devices, including my Schlage connect deadbolt, but I’m missing something with getting your integration working. I can lock/unlock, but I dont have cards giving me the ability to manipulate lock codes, etc… What all files / YAML configurations from your git repo do I need to get this going? If I missed instructions somewhere, my sincerest apologies… Feel free to point me to them and I will happily read / follow them!

Do I just thee the door_locks.yaml? (Or the lock_package_for_one_deadbolt.txt file?) I renamed the entities to match what you have in the comments of your YAML file, and have added it to the newly created config/packages directory and added “packages: !include_dir_named packages” to my main configuration.yaml. I also commented out the pushbullet stuff temporarily just to try to get the basics up and running, but plan to add that back after I get it to a point where I can edit lock codes, etc…

What else am I missing to get this up and running? Any pointers/insight you have would be greatly appreciated!

-Kerry

Do you have all the input texts, booleanss, etc that get created? Are you in the latest version of HA? Did you install the package on a version prior to 85? I suspect that I’ll have to update for Lovelace for new installs?

I realize that my last message was not a reply so you probably did not get a notice. So, if you had this up and running prior to 84.x, you should have had a panel for the lock codes, etc. When upgrading to 85.x, HA converted the current panels, to lovelace. I’m not sure what would happen if you installed the package at this time, but my guess, based on your comments is “nothing”, so the panel would not be created. I’m not at all a lovelace expert. I ended up converting the “old” converted lovelace to a swiper lovelace for the codes. I’m not 100% sure I’ll keep it that way, its a bit slow, probably because there are a lot of entities to manage. Anyway, 1st thing you need to do is verify that you have the 18 input_booleans, input texts, date_times, etc used for names, codes, and swiches, also the 18 scripts to delete the codes. Automations, too.

If you see all of those, then it’s a UI issue, if you dont see those then something else is wrong, and we’ll need to figure it out

I’m still learning lovelace, but here is the code that was autocreated when I updated HA to the latest version

  - badges: []
    cards:
      - entities:
          - input_text.door_keypad_1_name
          - input_text.door_keypad_1_code
          - input_select.door_keypad_1_access_schedule
          - input_datetime.door_keypad_1_date_start
          - input_datetime.door_keypad_1_date_end
          - input_boolean.door_keypad_1_front_switch
          - input_boolean.door_keypad_1_back_switch
          - input_boolean.door_keypad_1_garage_switch
          - script.door_keypad_1_delete
        title: Entry Code 1
        type: entities
      - entities:
          - input_text.door_keypad_2_name
          - input_text.door_keypad_2_code
          - input_select.door_keypad_2_access_schedule
          - input_datetime.door_keypad_2_date_start
          - input_datetime.door_keypad_2_date_end
          - input_boolean.door_keypad_2_front_switch
          - input_boolean.door_keypad_2_back_switch
          - input_boolean.door_keypad_2_garage_switch
          - script.door_keypad_2_delete
        title: Entry Code 2
        type: entities
      - entities:
          - input_text.door_keypad_3_name
          - input_text.door_keypad_3_code
          - input_select.door_keypad_3_access_schedule
          - input_datetime.door_keypad_3_date_start
          - input_datetime.door_keypad_3_date_end
          - input_boolean.door_keypad_3_front_switch
          - input_boolean.door_keypad_3_back_switch
          - input_boolean.door_keypad_3_garage_switch
          - script.door_keypad_3_delete
        title: Entry Code 3
        type: entities
      - entities:
          - input_text.door_keypad_4_name
          - input_text.door_keypad_4_code
          - input_select.door_keypad_4_access_schedule
          - input_datetime.door_keypad_4_date_start
          - input_datetime.door_keypad_4_date_end
          - input_boolean.door_keypad_4_front_switch
          - input_boolean.door_keypad_4_back_switch
          - input_boolean.door_keypad_4_garage_switch
          - script.door_keypad_4_delete
        title: Entry Code 4
        type: entities
      - entities:
          - input_text.door_keypad_5_name
          - input_text.door_keypad_5_code
          - input_select.door_keypad_5_access_schedule
          - input_datetime.door_keypad_5_date_start
          - input_datetime.door_keypad_5_date_end
          - input_boolean.door_keypad_5_front_switch
          - input_boolean.door_keypad_5_back_switch
          - input_boolean.door_keypad_5_garage_switch
          - script.door_keypad_5_delete
        title: Entry Code 5
        type: entities
      - entities:
          - input_text.door_keypad_6_name
          - input_text.door_keypad_6_code
          - input_select.door_keypad_6_access_schedule
          - input_datetime.door_keypad_6_date_start
          - input_datetime.door_keypad_6_date_end
          - input_boolean.door_keypad_6_front_switch
          - input_boolean.door_keypad_6_back_switch
          - input_boolean.door_keypad_6_garage_switch
          - script.door_keypad_6_delete
        title: Entry Code 6
        type: entities
      - entities:
          - input_text.door_keypad_7_name
          - input_text.door_keypad_7_code
          - input_select.door_keypad_7_access_schedule
          - input_datetime.door_keypad_7_date_start
          - input_datetime.door_keypad_7_date_end
          - input_boolean.door_keypad_7_front_switch
          - input_boolean.door_keypad_7_back_switch
          - input_boolean.door_keypad_7_garage_switch
          - script.door_keypad_7_delete
        title: Entry Code 7
        type: entities
      - entities:
          - input_text.door_keypad_8_name
          - input_text.door_keypad_8_code
          - input_select.door_keypad_8_access_schedule
          - input_datetime.door_keypad_8_date_start
          - input_datetime.door_keypad_8_date_end
          - input_boolean.door_keypad_8_front_switch
          - input_boolean.door_keypad_8_back_switch
          - input_boolean.door_keypad_8_garage_switch
          - script.door_keypad_8_delete
        title: Entry Code 8
        type: entities
      - entities:
          - input_text.door_keypad_9_name
          - input_text.door_keypad_9_code
          - input_select.door_keypad_9_access_schedule
          - input_datetime.door_keypad_9_date_start
          - input_datetime.door_keypad_9_date_end
          - input_boolean.door_keypad_9_front_switch
          - input_boolean.door_keypad_9_back_switch
          - input_boolean.door_keypad_9_garage_switch
          - script.door_keypad_9_delete
        title: Entry Code 9
        type: entities
      - entities:
          - input_text.door_keypad_10_name
          - input_text.door_keypad_10_code
          - input_select.door_keypad_10_access_schedule
          - input_datetime.door_keypad_10_date_start
          - input_datetime.door_keypad_10_date_end
          - input_boolean.door_keypad_10_front_switch
          - input_boolean.door_keypad_10_back_switch
          - input_boolean.door_keypad_10_garage_switch
          - script.door_keypad_10_delete
        title: Entry Code 10
        type: entities
      - entities:
          - input_text.door_keypad_11_name
          - input_text.door_keypad_11_code
          - input_select.door_keypad_11_access_schedule
          - input_datetime.door_keypad_11_date_start
          - input_datetime.door_keypad_11_date_end
          - input_boolean.door_keypad_11_front_switch
          - input_boolean.door_keypad_11_back_switch
          - input_boolean.door_keypad_11_garage_switch
          - script.door_keypad_11_delete
        title: Entry Code 11
        type: entities
      - entities:
          - input_text.door_keypad_12_name
          - input_text.door_keypad_12_code
          - input_select.door_keypad_12_access_schedule
          - input_datetime.door_keypad_12_date_start
          - input_datetime.door_keypad_12_date_end
          - input_boolean.door_keypad_12_front_switch
          - input_boolean.door_keypad_12_back_switch
          - input_boolean.door_keypad_12_garage_switch
          - script.door_keypad_12_delete
        title: Entry Code 12
        type: entities
      - entities:
          - input_text.door_keypad_13_name
          - input_text.door_keypad_13_code
          - input_select.door_keypad_13_access_schedule
          - input_datetime.door_keypad_13_date_start
          - input_datetime.door_keypad_13_date_end
          - input_boolean.door_keypad_13_front_switch
          - input_boolean.door_keypad_13_back_switch
          - input_boolean.door_keypad_13_garage_switch
          - script.door_keypad_13_delete
        title: Entry Code 13
        type: entities
      - entities:
          - input_text.door_keypad_14_name
          - input_text.door_keypad_14_code
          - input_select.door_keypad_14_access_schedule
          - input_datetime.door_keypad_14_date_start
          - input_datetime.door_keypad_14_date_end
          - input_boolean.door_keypad_14_front_switch
          - input_boolean.door_keypad_14_back_switch
          - input_boolean.door_keypad_14_garage_switch
          - script.door_keypad_14_delete
        title: Entry Code 14
        type: entities
      - entities:
          - input_text.door_keypad_15_name
          - input_text.door_keypad_15_code
          - input_select.door_keypad_15_access_schedule
          - input_datetime.door_keypad_15_date_start
          - input_datetime.door_keypad_15_date_end
          - input_boolean.door_keypad_15_front_switch
          - input_boolean.door_keypad_15_back_switch
          - input_boolean.door_keypad_15_garage_switch
          - script.door_keypad_15_delete
        title: Entry Code 15
        type: entities
      - entities:
          - input_select.door_keypad_16_access_schedule
          - input_text.door_keypad_16_name
          - input_text.door_keypad_16_code
          - input_boolean.door_keypad_16_front_switch
          - input_boolean.door_keypad_16_back_switch
          - input_boolean.door_keypad_16_garage_switch
          - script.door_keypad_16_delete
        title: One Time Use Code 1
        type: entities
      - entities:
          - input_select.door_keypad_17_access_schedule
          - input_text.door_keypad_17_name
          - input_text.door_keypad_17_code
          - input_boolean.door_keypad_17_front_switch
          - input_boolean.door_keypad_17_back_switch
          - input_boolean.door_keypad_17_garage_switch
          - script.door_keypad_17_delete
        title: One Time Use Code 2
        type: entities
      - entities:
          - input_select.door_keypad_18_access_schedule
          - input_text.door_keypad_18_name
          - input_text.door_keypad_18_code
          - input_boolean.door_keypad_18_front_switch
          - input_boolean.door_keypad_18_back_switch
          - input_boolean.door_keypad_18_garage_switch
          - script.door_keypad_18_delete
        title: One Time Use Code 3
        type: entities

    icon: 'mdi:lock-smart'
    path: keypads
    title: 'Door Lock Information, Codes and Configuration'

And here is an updated lovelace using the swiper card.

cards:
  - cards:
      - content: |
          ## Door Lock Info
          The first few cards show the door reports

          ## Code Management
          The next cards are for user code slot management
          Codes 1-10 are for Family Members
          Codes 11-15 are for Workers
          Codes 16-18 are one time use slots

          ##  The last few cards are for Z-Wave options
        type: markdown
      - entities:
          - lock.lock_front_door_lock
          - sensor.front_door_report
          - sensor.frontdoor_code
        title: Front Door Info
        type: entities
        show_header_toggle: false
      - entities:
          - lock.lock_back_door_lock
          - sensor.back_door_report
          - sensor.backdoor_code
        title: Back Door Info
        type: entities
        show_header_toggle: false
      - entities:
          - lock.lock_garage_door_lock
          - sensor.garage_door_report
          - sensor.garagedoor_code
        title: Garage Door Info
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_1_name
          - input_text.door_keypad_1_code
          - input_select.door_keypad_1_access_schedule
          - input_datetime.door_keypad_1_date_start
          - input_datetime.door_keypad_1_date_end
          - input_boolean.door_keypad_1_front_switch
          - input_boolean.door_keypad_1_back_switch
          - input_boolean.door_keypad_1_garage_switch
          - script.door_keypad_1_delete
        title: Entry Code 1
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_2_name
          - input_text.door_keypad_2_code
          - input_select.door_keypad_2_access_schedule
          - input_datetime.door_keypad_2_date_start
          - input_datetime.door_keypad_2_date_end
          - input_boolean.door_keypad_2_front_switch
          - input_boolean.door_keypad_2_back_switch
          - input_boolean.door_keypad_2_garage_switch
          - script.door_keypad_2_delete
        title: Entry Code 2
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_3_name
          - input_text.door_keypad_3_code
          - input_select.door_keypad_3_access_schedule
          - input_datetime.door_keypad_3_date_start
          - input_datetime.door_keypad_3_date_end
          - input_boolean.door_keypad_3_front_switch
          - input_boolean.door_keypad_3_back_switch
          - input_boolean.door_keypad_3_garage_switch
          - script.door_keypad_3_delete
        title: Entry Code 3
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_4_name
          - input_text.door_keypad_4_code
          - input_select.door_keypad_4_access_schedule
          - input_datetime.door_keypad_4_date_start
          - input_datetime.door_keypad_4_date_end
          - input_boolean.door_keypad_4_front_switch
          - input_boolean.door_keypad_4_back_switch
          - input_boolean.door_keypad_4_garage_switch
          - script.door_keypad_4_delete
        title: Entry Code 4
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_5_name
          - input_text.door_keypad_5_code
          - input_select.door_keypad_5_access_schedule
          - input_datetime.door_keypad_5_date_start
          - input_datetime.door_keypad_5_date_end
          - input_boolean.door_keypad_5_front_switch
          - input_boolean.door_keypad_5_back_switch
          - input_boolean.door_keypad_5_garage_switch
          - script.door_keypad_5_delete
        title: Entry Code 5
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_6_name
          - input_text.door_keypad_6_code
          - input_select.door_keypad_6_access_schedule
          - input_datetime.door_keypad_6_date_start
          - input_datetime.door_keypad_6_date_end
          - input_boolean.door_keypad_6_front_switch
          - input_boolean.door_keypad_6_back_switch
          - input_boolean.door_keypad_6_garage_switch
          - script.door_keypad_6_delete
        title: Entry Code 6
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_7_name
          - input_text.door_keypad_7_code
          - input_select.door_keypad_7_access_schedule
          - input_datetime.door_keypad_7_date_start
          - input_datetime.door_keypad_7_date_end
          - input_boolean.door_keypad_7_front_switch
          - input_boolean.door_keypad_7_back_switch
          - input_boolean.door_keypad_7_garage_switch
          - script.door_keypad_7_delete
        title: Entry Code 7
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_8_name
          - input_text.door_keypad_8_code
          - input_select.door_keypad_8_access_schedule
          - input_datetime.door_keypad_8_date_start
          - input_datetime.door_keypad_8_date_end
          - input_boolean.door_keypad_8_front_switch
          - input_boolean.door_keypad_8_back_switch
          - input_boolean.door_keypad_8_garage_switch
          - script.door_keypad_8_delete
        title: Entry Code 8
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_9_name
          - input_text.door_keypad_9_code
          - input_select.door_keypad_9_access_schedule
          - input_datetime.door_keypad_9_date_start
          - input_datetime.door_keypad_9_date_end
          - input_boolean.door_keypad_9_front_switch
          - input_boolean.door_keypad_9_back_switch
          - input_boolean.door_keypad_9_garage_switch
          - script.door_keypad_9_delete
        title: Entry Code 9
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_10_name
          - input_text.door_keypad_10_code
          - input_select.door_keypad_10_access_schedule
          - input_datetime.door_keypad_10_date_start
          - input_datetime.door_keypad_10_date_end
          - input_boolean.door_keypad_10_front_switch
          - input_boolean.door_keypad_10_back_switch
          - input_boolean.door_keypad_10_garage_switch
          - script.door_keypad_10_delete
        title: Entry Code 10
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_11_name
          - input_text.door_keypad_11_code
          - input_select.door_keypad_11_access_schedule
          - input_datetime.door_keypad_11_date_start
          - input_datetime.door_keypad_11_date_end
          - input_boolean.door_keypad_11_front_switch
          - input_boolean.door_keypad_11_back_switch
          - input_boolean.door_keypad_11_garage_switch
          - script.door_keypad_11_delete
        title: Entry Code 11
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_12_name
          - input_text.door_keypad_12_code
          - input_select.door_keypad_12_access_schedule
          - input_datetime.door_keypad_12_date_start
          - input_datetime.door_keypad_12_date_end
          - input_boolean.door_keypad_12_front_switch
          - input_boolean.door_keypad_12_back_switch
          - input_boolean.door_keypad_12_garage_switch
          - script.door_keypad_12_delete
        title: Entry Code 12
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_13_name
          - input_text.door_keypad_13_code
          - input_select.door_keypad_13_access_schedule
          - input_datetime.door_keypad_13_date_start
          - input_datetime.door_keypad_13_date_end
          - input_boolean.door_keypad_13_front_switch
          - input_boolean.door_keypad_13_back_switch
          - input_boolean.door_keypad_13_garage_switch
          - script.door_keypad_13_delete
        title: Entry Code 13
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_14_name
          - input_text.door_keypad_14_code
          - input_select.door_keypad_14_access_schedule
          - input_datetime.door_keypad_14_date_start
          - input_datetime.door_keypad_14_date_end
          - input_boolean.door_keypad_14_front_switch
          - input_boolean.door_keypad_14_back_switch
          - input_boolean.door_keypad_14_garage_switch
          - script.door_keypad_14_delete
        title: Entry Code 14
        type: entities
        show_header_toggle: false
      - entities:
          - input_text.door_keypad_15_name
          - input_text.door_keypad_15_code
          - input_select.door_keypad_15_access_schedule
          - input_datetime.door_keypad_15_date_start
          - input_datetime.door_keypad_15_date_end
          - input_boolean.door_keypad_15_front_switch
          - input_boolean.door_keypad_15_back_switch
          - input_boolean.door_keypad_15_garage_switch
          - script.door_keypad_15_delete
        title: Entry Code 15
        type: entities
        show_header_toggle: false
      - entities:
          - input_select.door_keypad_16_access_schedule
          - input_text.door_keypad_16_name
          - input_text.door_keypad_16_code
          - input_boolean.door_keypad_16_front_switch
          - input_boolean.door_keypad_16_back_switch
          - input_boolean.door_keypad_16_garage_switch
          - script.door_keypad_16_delete
        title: One Time Use Code 1
        type: entities
        show_header_toggle: false
      - entities:
          - input_select.door_keypad_17_access_schedule
          - input_text.door_keypad_17_name
          - input_text.door_keypad_17_code
          - input_boolean.door_keypad_17_front_switch
          - input_boolean.door_keypad_17_back_switch
          - input_boolean.door_keypad_17_garage_switch
          - script.door_keypad_17_delete
        title: One Time Use Code 2
        type: entities
        show_header_toggle: false
      - entities:
          - input_select.door_keypad_18_access_schedule
          - input_text.door_keypad_18_name
          - input_text.door_keypad_18_code
          - input_boolean.door_keypad_18_front_switch
          - input_boolean.door_keypad_18_back_switch
          - input_boolean.door_keypad_18_garage_switch
          - script.door_keypad_18_delete
        title: One Time Use Code 3
        type: entities
        show_header_toggle: false
      - entities:
          - input_select.lock_zwave_option_3_front
          - input_select.lock_zwave_option_4_front
          - input_select.lock_zwave_option_5_front
          - input_select.lock_zwave_option_7_front
          - input_select.lock_zwave_option_8_front
          - input_select.lock_zwave_option_9_front
          - input_select.lock_zwave_option_10_front
          - input_select.lock_zwave_option_11_front
          - input_select.lock_zwave_option_15_front
          - input_select.lock_zwave_option_16_front
        title: Front Door Configuration Options
        type: entities
        show_header_toggle: false
      - entities:
          - input_select.lock_zwave_option_3_back
          - input_select.lock_zwave_option_4_back
          - input_select.lock_zwave_option_5_back
          - input_select.lock_zwave_option_7_back
          - input_select.lock_zwave_option_8_back
          - input_select.lock_zwave_option_9_back
          - input_select.lock_zwave_option_10_back
          - input_select.lock_zwave_option_11_back
          - input_select.lock_zwave_option_15_back
          - input_select.lock_zwave_option_16_back
        title: Back Door Configuration Options
        type: entities
        show_header_toggle: false
        parameters:
          spaceBetween: 8
          scrollbar:
            hide: false
            draggable: true
            snapOnRelease: true
    type: 'custom:swipe-card'
type: horizontal-stack

Details on the required setup for the card can be found here.

I do see the input boolean/datetime, and the scripts when I scroll through the available entities for automations, so that seems promising. I am, however, seeing an error message in the log file:

WARNING (MainThread) [homeassistant.components.sensor.template] Could not render template Front Door Report, the state is unknown.

I did attempt adding some of the lovelace code posted in this thread by @mcoleman001, but Im getting an error "Custom element doesn’t exist: layout-card. I did find the layout-card.js and place it in my config/www directory and add it as a resource in my lovelace configuration file, but that didn’t resolve the error… If anyone has suggestions I’d really appreciate it… or if you have a different lovelace config just to get it semi-functional while I continue down the sharp learning curve to figure all this out, I am open to all suggestions! :slight_smile:

EDIT - I see you posted some lovelace code above… I will give that a shot and see what happens!

Thanks in advance for your assistance!

So your first post with the auto-created lovelace config works perfectly (minus the extra locks I dont have). I’ll give getting the swiper card version working next… thanks again!

Good deal. I like the swiper card a bit better than the standard, mostly because it kind of “hides” the codes. Security through obscurity, haha. Obviously the codes are easy enough to get to, but at least they are not just showing on the main UI panel.

So I haven’t implemented any of the original code for this setup. Would I now basically just copy and paste this updated code of yours and change my lock names? Also what yaml file does this get pasted in? ui-lovelace.yaml?

This is the best place to start

But yes, basically get the package you need, put it in packages, and rename your entities appropiately. The code is pretty well commented, so it should be easy to follow.

The only recent change is that the lovelace needs to be added afterwards. I’ll eventually figure out how to get the lovelace included, or will update my package comments, accordingly.

My lock entity id is lock.back_door, how do I modify the following part of the code to match?

          node_id: >-
            {{ states['lock']['lock_front_door_lock'].attributes.node_id }}

Here you go:

node_id: >-
            {{ states['lock']['back_door'].attributes.node_id }}
2 Likes

@ptdalen any idea how to get the new Schlage BE469ZP lock added to the OZW so that it gets recognized?

I wish I did. It sounds like it may not be a supported device yet?

I’m suprised it does not “just work” I’m definitely no programmer, or expert, just good at reading other people code. :slight_smile:

So, what happens when you try to add it?

I poked around here

And did not see anything specific for that lock.

comes up as unknown, I believe it has all the same capabilities, just using the Wave Plus chip, but it shows with a ZP at the end and throws up identifying it.

Hmm, does it “work” can it lock/unlock? Did you have a previous version of this lock

I had a previous version of the lock, but got rid of them, didn’t try whether it worked since it came up s unknown. when it comes up as unknown I dont believe it knows its a lock

Here is my xml for the lock

	<Node id="104" name="" location="" basic="4" generic="64" specific="3" type="Secure Keypad Door Lock" listening="false" frequentListening="true" beaming="true" routing="true" max_baud_rate="40000" version="4" secured="true" query_stage="Complete">
		<Manufacturer id="3b" name="Schlage">
			<Product type="6341" id="5044" name="BE469 Touchscreen Deadbolt" />
		</Manufacturer>
		<CommandClasses>
			<CommandClass id="32" name="COMMAND_CLASS_BASIC" version="1" request_flags="4" issecured="true" mapping="98">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="34" name="COMMAND_CLASS_APPLICATION_STATUS" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="98" name="COMMAND_CLASS_DOOR_LOCK" version="1" request_flags="4" issecured="true" m_timeoutsupported="1" m_insidehandlemode="0" m_outsidehandlemode="0" m_timeoutmins="254" m_timeoutsecs="254">
				<Instance index="1" />
				<Value type="bool" genre="user" instance="1" index="0" label="Locked" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
				<Value type="list" genre="user" instance="1" index="1" label="Locked (Advanced)" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="Unsecure" value="0" />
					<Item label="Unsecured with Timeout" value="1" />
					<Item label="Inside Handle Unsecured" value="2" />
					<Item label="Inside Handle Unsecured with Timeout" value="3" />
					<Item label="Outside Handle Unsecured" value="4" />
					<Item label="Outside Handle Unsecured with Timeout" value="5" />
					<Item label="Secured" value="255" />
					<Item label="Invalid" value="255" />
				</Value>
				<Value type="list" genre="system" instance="1" index="2" label="Timeout Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Item label="No Timeout" value="1" />
					<Item label="Secure Lock after Timeout" value="2" />
				</Value>
				<Value type="byte" genre="system" instance="1" index="5" label="Outside Handle Control" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="system" instance="1" index="6" label="Inside Handle Control" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
			</CommandClass>
			<CommandClass id="99" name="COMMAND_CLASS_USER_CODE" version="1" request_flags="4" issecured="true" codes="30">
				<Instance index="1" />
				<Value type="raw" genre="user" instance="1" index="0" label="Enrollment Code" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="1" label="Code 1:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="2" label="Code 2:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="3" label="Code 3:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="4" label="Code 4:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="5" label="Code 5:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00" length="1" />
				<Value type="raw" genre="user" instance="1" index="6" label="Code 6:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a 0x2a" length="10" />
				<Value type="raw" genre="user" instance="1" index="7" label="Code 7:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00" length="1" />
				<Value type="raw" genre="user" instance="1" index="8" label="Code 8:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="9" label="Code 9:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="10" label="Code 10:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="11" label="Code 11:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="12" label="Code 12:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="13" label="Code 13:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="14" label="Code 14:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="15" label="Code 15:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="16" label="Code 16:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="17" label="Code 17:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="18" label="Code 18:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="19" label="Code 19:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="20" label="Code 20:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="21" label="Code 21:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="22" label="Code 22:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="23" label="Code 23:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="24" label="Code 24:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="25" label="Code 25:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="26" label="Code 26:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="27" label="Code 27:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="28" label="Code 28:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="29" label="Code 29:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="raw" genre="user" instance="1" index="30" label="Code 30:" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00" length="10" />
				<Value type="button" genre="system" instance="1" index="254" label="Refresh All UserCodes" units="" read_only="false" write_only="true" verify_changes="false" poll_intensity="0" min="0" max="0" />
				<Value type="byte" genre="system" instance="1" index="255" label="Code Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="30" />
			</CommandClass>
			<CommandClass id="112" name="COMMAND_CLASS_CONFIGURATION" version="1" request_flags="4" issecured="true">
				<Instance index="1" />
				<Value type="list" genre="config" instance="1" index="3" label="Beeper" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" vindex="1" size="1">
					<Help>Enable or disable the beeper.</Help>
					<Item label="Disable Beeper" value="0" />
					<Item label="Enable Beeper" value="255" />
				</Value>
				<Value type="list" genre="config" instance="1" index="4" label="Vacation Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" vindex="0" size="1">
					<Help>Prevents all user codes from unlocking the deadbolt. Enable for extra security while you are away for an extended period of time.</Help>
					<Item label="Disable Vacation Mode" value="0" />
					<Item label="Enable Vacation Mode" value="255" />
				</Value>
				<Value type="list" genre="config" instance="1" index="5" label="Lock &amp; Leave" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" vindex="1" size="1">
					<Help>When enabled: Press the Outside Schlage Button to lock the deadbolt. (Default setting). When disabled: Press the Outside Schlage Button and then enter a user code to lock the deadbolt.</Help>
					<Item label="Disable Lock &amp; Leave" value="0" />
					<Item label="Enable Lock &amp; Leave" value="255" />
				</Value>
				<Value type="list" genre="config" instance="1" index="7" label="Lock Alarm Mode" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>The alarm is turned off by default. After installation, you will need to turn on your alarm. Activity Alarms when the door opens or closes. Perfect for monitoring doors while you re at home. After the alarm is triggered, there is a built-in 3-second delay for it to reset. Sounds two short beeps. Tamper Alarms when the lock is disturbed, while locked. Senses subtle activity at the lock. Sounds 15 second Alarm (90 dB) Forced Entry Alarms when significant force pushes against the door, while locked. Perfect for nighttime or when you re away from home. Least sensitive mode Sounds three-minute shrill, steady alarm (90 dB)</Help>
					<Item label="Alarm Off" value="0" />
					<Item label="Activity" value="1" />
					<Item label="Tamper" value="2" />
					<Item label="Forced Entry" value="3" />
				</Value>
				<Value type="list" genre="config" instance="1" index="8" label="Activity Alarm Sensitivity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Help>Each alarm mode is preset to a sensitivity level of three. If your alarm is sounding too frequently, or not frequently enough, try changing this setting. If you change the alarm mode, the sensitivity will revert back to the default setting.</Help>
					<Item label="Most Sensitive" value="1" />
					<Item label="Medium/high Sensitivity" value="2" />
					<Item label="Medium Sensitivity" value="3" />
					<Item label="Medium/low Sensitivity" value="4" />
					<Item label="Least Sensitivity" value="5" />
				</Value>
				<Value type="list" genre="config" instance="1" index="9" label="Tamper Alarm Sensitivity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Help>Each alarm mode is preset to a sensitivity level of three. If your alarm is sounding too frequently, or not frequently enough, try changing this setting. If you change the alarm mode, the sensitivity will revert back to the default setting.</Help>
					<Item label="Most Sensitive" value="1" />
					<Item label="Medium/high Sensitivity" value="2" />
					<Item label="Medium Sensitivity" value="3" />
					<Item label="Medium/low Sensitivity" value="4" />
					<Item label="Least Sensitivity" value="5" />
				</Value>
				<Value type="list" genre="config" instance="1" index="10" label="Forced Entry Alarm Sensitivity" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="2" size="1">
					<Help>Each alarm mode is preset to a sensitivity level of three. If your alarm is sounding too frequently, or not frequently enough, try changing this setting. If you change the alarm mode, the sensitivity will revert back to the default setting.</Help>
					<Item label="Most Sensitive" value="1" />
					<Item label="Medium/high Sensitivity" value="2" />
					<Item label="Medium Sensitivity" value="3" />
					<Item label="Medium/low Sensitivity" value="4" />
					<Item label="Least Sensitivity" value="5" />
				</Value>
				<Value type="list" genre="config" instance="1" index="11" label="Disable Local Alarm Controls" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="1" size="1">
					<Help>Enables/Disables local alarm on/off, mode change, sensitivity changes</Help>
					<Item label="Disable local alarm controls" value="0" />
					<Item label="Enable local alarm controls" value="255" />
				</Value>
				<Value type="int" genre="config" instance="1" index="12" label="Electronic transition count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="config" instance="1" index="13" label="Mechanical transition count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="config" instance="1" index="14" label="Electronic failed count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
					<Help>Each failed electronic attempt increments this count by one.</Help>
				</Value>
				<Value type="list" genre="config" instance="1" index="15" label="Auto lock" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" vindex="0" size="1">
					<Help>When enabled, the lock will automatically relock 30 seconds after unlocking. (Disabled by default.)</Help>
					<Item label="Disable auto lock" value="0" />
					<Item label="Enable auto lock" value="255" />
				</Value>
				<Value type="byte" genre="config" instance="1" index="16" label="User code pin length" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="4" max="8" value="4">
					<Help>User Code PIN length, a value between 4 and 8. IMPORTANT: All user codes must be the same length.</Help>
				</Value>
				<Value type="int" genre="config" instance="1" index="17" label="Electrical High Preload Transition Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0">
					<Help>A subset of Electronic transition count, the number of transitions with high preload.</Help>
				</Value>
				<Value type="byte" genre="config" instance="1" index="18" label="Bootloader Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0">
					<Help>The version of the bootloader</Help>
				</Value>
			</CommandClass>
			<CommandClass id="113" name="COMMAND_CLASS_ALARM" version="3" request_flags="2" issecured="true">
				<Instance index="1" />
				<Value type="byte" genre="user" instance="1" index="0" label="Alarm Type" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="22" />
				<Value type="byte" genre="user" instance="1" index="1" label="Alarm Level" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<Value type="byte" genre="user" instance="1" index="2" label="SourceNodeId" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="user" instance="1" index="9" label="Access Control" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="2" />
				<Value type="byte" genre="user" instance="1" index="10" label="Burglar" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="2" />
				<Value type="byte" genre="user" instance="1" index="11" label="Power Management" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="0" />
				<Value type="byte" genre="user" instance="1" index="12" label="System" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="1" />
				<TriggerRefreshValue Genre="user" Instance="1" Index="0">
					<RefreshClassValue CommandClass="98" RequestFlags="0" Instance="1" Index="1" />
				</TriggerRefreshValue>
			</CommandClass>
			<CommandClass id="114" name="COMMAND_CLASS_MANUFACTURER_SPECIFIC" version="1" request_flags="4" innif="true">
				<Instance index="1" />
			</CommandClass>
			<CommandClass id="128" name="COMMAND_CLASS_BATTERY" version="1" request_flags="4" issecured="true">
				<Instance index="1" />
				<Value type="byte" genre="user" instance="1" index="0" label="Battery Level" units="%" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="255" value="89" />
			</CommandClass>
			<CommandClass id="133" name="COMMAND_CLASS_ASSOCIATION" version="1" request_flags="4" issecured="true">
				<Instance index="1" />
				<Associations num_groups="1">
					<Group index="1" max_associations="2" label="Group 1" auto="true">
						<Node id="1" />
					</Group>
				</Associations>
			</CommandClass>
			<CommandClass id="134" name="COMMAND_CLASS_VERSION" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="string" genre="system" instance="1" index="0" label="Library Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="6" />
				<Value type="string" genre="system" instance="1" index="1" label="Protocol Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="3.42" />
				<Value type="string" genre="system" instance="1" index="2" label="Application Version" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="128.22" />
			</CommandClass>
			<CommandClass id="152" name="COMMAND_CLASS_SECURITY" version="1" request_flags="4" innif="true">
				<Instance index="1" />
				<Value type="bool" genre="system" instance="1" index="0" label="Secured" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="0" max="0" value="True" />
			</CommandClass>
		</CommandClasses>
	</Node>

@ptdalen do you use Hass.io for your setup? I noticed you run a forked OZW so was curious…