Level door lock?

I have a french door with a glass insert out to my patio which has a double cylinder lock (key on both sides). The only solution to automating this kind of lock I could find was the Level Bolt, but I was reluctant to spend $250 for the bolt with the Connect hub.

I’ve also been experimenting with an ESP32 dev board as a BT proxy which I have working but couldn’t find a use for. Then I saw a used Level bolt without the Connect hub on Amazon for $130 which seemed a more reasonable price and would allow me to put my BT proxy board to use.

Here are my experiences with getting the Bolt to work with HA and a BT proxy.

  1. I did all my setup before installing the Bolt in the door which made it much easier to see what was happening with the Bolt, and if it didn’t work, to return it to Amazon!
  2. I powered down my BT proxy.
  3. Installed the Level app on my iPhone and added the Bolt to the Level App. The app said a firmware update was needed so I went ahead and did that. I did NOT add the Bolt to Homekit in the Level app.
  4. I tested the operation of the Bolt from the Level app and all seemed to be working well.
  5. Next I turned off Bluetooth on my phone (to make sure the Level app could not talk to the Bolt) and powered up my BT proxy board right next to the Bolt.
  6. I removed and replaced the battery in the Bolt.
  7. HA said it had discovered a new Homekit device.
  8. I added the Homekit device to HA.
  9. The Homekit integration came up with the following error:
    An unhandled error occurred while attempting to pair with this device. This may be a temporary failure or your device may not be supported currently.
    However it still allowed me to go ahead and enter the HK code which is printed on the Bolt and in the QuickStart guide. A few seconds after entering the code, HA went back to the screen to enter the code again, so I entered it again. This time it worked and it added a HK device, with three entities:
    lock.a208w4ea_lock_mechanism
    button.a208w4ea_identify
    sensor.a208w4ea_signal_strength (initially disabled)
    I was able to successfully lock and unlock the Bolt from HA. I found that the Bolt would react immediately to an HA command if I did not wait too long between commands, but if I waited, then it was a lot slower to react. I also found that even when the Bolt reacted immediately, HA would sometimes show the lock entity in the “locking” or “unlocking” state for about 15 secs before eventually showing “Locked” or “Unlocked”.
  10. My next test was to verify that HA showed the correct state for the lock when I locked and unlocked it manually using the key. I have an HA dashboard near my backdoor, and my main reason for getting the lock was so I could see if the patio door was locked before leaving the house.
    To my disappointment I found that when I locked/unlocked the lock manually the HA lock entity did not change state.
    Looking at the BT proxy logs I found the following message
[09:43:15][D][esp32_ble_server:164]: BLE Client disconnected
[09:43:15][D][esp32_ble_client:172]: [0] [E0:A3:66:B3:85:3F] ESP_GATTC_DISCONNECT_EVT, reason 19
[09:43:15][D][esp32_ble_client:110]: [0] [] ESP_GATTC_CLOSE_EVT

after 30 seconds. So it seems the Bolt is disconnecting from the BT proxy after 30 seconds of inactivity (to conserve battery I assume).
After searching the HA forums, I found the suggestion that I could use an automation to update the entity every 30 seconds and so keep the connection to the Bolt up:

alias: Patio Lock Update
description: ""
triggers:
  - trigger: time_pattern
    seconds: /30
conditions: []
actions:
  - action: homeassistant.update_entity
    metadata: {}
    data:
      entity_id:
        - lock.a208w4ea_lock_mechanism
mode: single

After adding this automation, HA is consistently reflected the correct state of the lock, even when I lock/unlock manually, though the update takes a few seconds. Also the lock seems to be much quicker to react to a command from HA. I don’t know what effect this is going to have on the battery life of the Bolt.

  1. Since all seemed to be working well, I went ahead and installed the Bolt in the door. I found that the Bolt cylinder was slightly too fat to fit in the existing hole in the door, so I had to dremel out the hole a little bit to get it to slide in.
  2. Moved my BT proxy to the nearest outlet to the door (about 3 feet away).

So far all is working well.

I can control the Bolt from HA or the Level app. I also exposed the HA lock entity to Amazon Alexa, so I can also control the Bolt from Alexa.

One more thing I found is that if the Bolt cannot operate properly because of an obstruction or something, the HA entity goes into an “Unavailable” state. The best way to get it out of that state is to manually lock and/or unlock the Bolt.

I got mine from eBay in the US

1 Like

Were you able to successfully add to HA as a Matter device? I also went through troubleshooting with the Level folks to get it added to HomeKit. Remove from Level app, manually change the HomeKit hub to a close one.

But, I can’t get HA to add it, just ‘Failed to add’. HA indicates it’s Thread fabric is the same network as the Apple device, although I’m not confident in that after seeing some ‘failed to add thread credentials to iCloud Keychain’ messages in the HA companion app.

I did the firmware upgrade today on my Level Lock+, and it’s now a first-class citizen in both Apple Home (w/HomeKey) and also in HA. Very excited about this. Below are the steps I took after upgrading firmware and pairing to HomeKit.

After adding to HomeKit and ensuring everything worked as desired, I verified that my Apple HomePod mini and Apple TV 4K devices were detected as Thread border routers under HA > Integrations > Thread > Configure. HA detected a new integration on my network called “Matter”, and I followed the prompt and allowed it to install the Matter server add-on for HAOS. (Unsure if this step is necessary for everyone.)

I then opened the HA companion app Settings > Companion App > Debugging > Thread and clicked the “Transfer to Home Assistant” button under the Apple Keychain entry in my Thread Credentials.

Finally, in HA: Settings > Integrations > Add > Add Matter Device > Yes it’s already in use > Apple Home. The flow prompted me to open the Apple Home app, open the device, go to its Settings, scroll all the way down, and tap the “Turn On Pairing Mode” button at the bottom. This popped up a pairing number on my phone, which I entered into the HA “Add Matter Device” flow, and voila! The Level Lock now appears as a regular device under the Matter integration.

Now it’s time to deactivate all my old automations that kept the device’s state in sync between Apple Home & HA. HomeKey works with my iPhone (and presumably my wife’s Apple watch too). Couldn’t be happier right now! Sure hope this continues working well beyond just the past hour :wink:

1 Like

Yea! Yes proper matter standard adherence is way cool and I’m happy for you. I was just as jazzed as you when they upgraded my bolt to matter - works great!

I just can not understand why Level refuses to allow upgrade of their Touch models to matter…this seems like a petulant money-grab on their part - the lock supports it as proven by the older bolt upgrade path but their stance is “buy a new one” because “we want more revenue” vs “thanks for buying our product, here is an upgrade”.

I have another door that could use a smart lock…it will be dumb until/unless something better comes along and I feel comfortable that it will be supported.

2 Likes

I’m just having all sorts of trouble with my Bolt. IF I can even get it pairing to Apple Home, I can never add it to HA. Then it goes ‘Not Responding’ in Apple Home. I’m stumped.

Hi everyone, I contacted Level Support about matter and my original Level lock, and unfortunately the original Level Lock is not matter compatible, so will not get a matter update, incase anyone is wondering.
However I found that changing my BLE proxy to an ESP32-C6 (BLE 5) increased the response speed quite a bit, it takes under 2 seconds to respond/ wake up if it hasn’t been used in a while, but if used recently its under 1second.
I think an Ethernet connection to the esp32 would also improve this so ill try that also at some time.