Level door lock?

There is a new version of ESP-IDF that has some more BLE fixes

I manually switched all my proxies to use it a a week ago and the results have been good

esp32:
  board: [YOUR BOARD HERE]
  framework:
    type: esp-idf
    version: 4.4.5
    platform_version: 5.4.0
1 Like

Also the proxies should be a bit faster (YMMV) connecting in 2023.8.x

To anyone who can’t make HASS find the lock and everything else above didn’t work: remove the lock from the app. (in my case it was an Android app).

  • You will be able to add it back to the app after HASS recognizes and successfully configures it.
  • You will be able to control it from the both places (which helps to turn off sound, do the calibration, etc.)

That seems to be mostly true, but, what I’ve observed is that if you have more than one lock, then, only one still needs to be paired with an Apple HK hub while the others can be paired with a HA HK controller.

I have 3 LL+. Upon initial installation, I added them all to the Level app and paired them with my Apple TV during setup. This added the HomeKey option which worked very well. However, controlling via the Home app was unreliable due to distance between hub and locks.

I decided to give HA & ESPHome BLE proxies a try to make the connections more reliable. I slowly moved each lock from the Apple TV to HA:

  • disable Works With Homekit in Level app
  • pair with HA HK Controller
  • expose back to HK via HA HK integration
  • confirm lock / unlock with Level app
  • confirm HomeKey works
  • confirm lock / unlock via HA
  • confirm lock / unlock via Home app

Once I moved the final key to HA HK controller, my HomeKey disappeared from my wallet, so, now I’m back to all locks paired with Apple TV. I will do this again, but, keep a single lock paired with the Apple TV to maintain the HomeKey functionality.

[edit - 2023-10-17]
I take back my initial statement and believe I was just getting lucky. Whether the lock “remembers” the HomeKey seems unreliable. I have 2 of 3 locks exposed to HK via HK Controller + HK Integration and one is controllable via HomeKey and one is not. Both were controllable prior to removing from my Home and moving to HA. The third is still paired with my Apple TV and is also controllable via HomeKey.

I caved in and purchased two of the Level Connects to see how they work.

Do you find re-connection times when the lock is sleeping to be better with the BLE proxies (over AppleTV)?

I’ve found the HA + BLE proxies are far more responsive than the Apple TV. I have updated my earlier post with some details of my observations regarding Home Key functionality.

@jemayes

Please let us know if you have any success with the Connect. I bought one and connected to my Level Lock + yesterday just to see if it makes it respond faster, but I don’t see any difference. Moreover, it seems the hub made the lock more sluggish. I’m still monitoring to understand if that’s the case.

I thought the Connect hub will enable remote lock settings management, but to my surprise it only enables lock/unlock when out of range and still shows Lock is out of range when BT is not connected. So there is no way to change any settings unless you are within Bluetooth range. I might just end up removing it completely as it doesn’t provide with any useful extra features.

Unfortunately, I’m still unable to add my Lock + to Home Assistant, tried a bunch times, but it never worked. Also, even if it integrates but I lose the Home Key, then I rather to keep the lock integrated in HomeKit directly and being able to use the Home Key.

On the other hand, I have a Level Bolt integrated in HA and it has been working almost perfectly.

I don’t know how you did this. I’ve been trying everything without any luck. Not fun.

I can’t figure it out either but it’s my only level lock. Only got the one.

Figured it out. You do need to try a usb Bluetooth antenna. I thought having my home assistant on my pi with built in Bluetooth would work. I even set it up right next to lock. Didn’t work. Once i ordered the Bluetooth usb antennae i got it working.

Can you outline how you got the Bolt to work? Thanks in advance.

Which one did you get?

Started this thread originally and still holding off buying. See there is an option for a “Connect”? Guess a puck that adds Wi-Fi capabilities and Bluetooth? Anyone take a look at this and is there any HA integration for it?

Same here but holding off until a Matter integration is available. Not planning to use Wifi but Thread. I know I probably have to wait for a while but I’m not in a hurry :slight_smile:

I got the Level Bolt with Connect to work, and just also got the local connection over HomeKit to work in parallel.

I can lock/unlock in multiple ways:

  1. Level app: Phone bluetooth » level bolt
  2. Level app: Level cloud » Connect » level bolt
  3. Home Assistant: HomeKit integration » ESP bluetooth proxy » level bolt

Only 1 & 3 are local connections. You can add to Google Home via Level’s Connect as well, which I did while I was waiting for my ESP32 boards to come in, but now I have it all set up within Home Assistant which can be controlled via Google Home, and it’s faster than the cloud approach.

I paired the bolt originally using a bluetooth dongle and taking the bolt out of the door and placing it right next to it, then I installed the ESP proxy after everything was set up properly.

The full process I did was:

  1. Connect the Level Bolt in the Level app via bluetooth and perform any firmware upgrades
  2. Plug in the Level Connect and install using the Level app and perform any firmware upgrades. This was tedious as it had issues all the time, but I eventually got it working. I did factory resets if I ever had it hanging and not working.
  3. Disassemble the Level Bolt or remove the battery, turning it off.
  4. Make sure a bluetooth dongle is installed and the integration is in Home Assistant
  5. Place the Level Bolt next to your Home Assistant dongle and re-assemble it, turning it on.
  6. Find the Level Bolt using the HomeKit integration and configure it.
  7. Install the Level Bolt in your door, and add an ESPHome bluetooth proxy nearby. Mine is in the closet next to the door, like 4 feet away.
2 Likes

I wanted to chime in to share my experience getting this to pair with HA.

First, I installed the connect thing to bridge it to wifi, but I couldn’t get it to pair. So, I reset the lock using the button inside and holding for 8-10 seconds to wait for the chime. Then I did the following:

  1. Setup the bolt only using the Level App.
  2. Went to HA Homekit to look for it.
  3. Saw it as A229949A (Door Lock)
  4. Tried to pair, long wait no luck. Error.
  5. Moved my pi4 running HA closer (using the internal BT chip)
  6. Cycled power on the lock by pulling the battery.
  7. See it again in HA, no luck pairing.
  8. Updated the lock to extend BT range…no luck.
  9. Pick up my pi off the floor next to the door and place it on an amazon box, brining it from like 4 ft to 2ft away from the lock.
  10. Cycle battery, pairs right away.

Some people have said “It needs to be close to pair.” For me, close meant close. Like, real close. Like…what’s the difference between the floor and up on a 2ft box? Don’t know, but that was the trick.

2 Likes

Sounds like with the connect Wi-Fi bridge it’s still a cloud solution so that’s a no joy for me. If nothing else want my access to my house to be local only.

My HA is on a Hyper-V server in my basement crawlspace and Z-WaveJS UI as a service on a separate PC. Works great for what I have now. Don’t think Bluetooth, HomeKit, not even sure about Matter is an option in this setup.

Does anyone have experience pairing the Level Bolt to HA after it was previously paired to HomeKit? Can you describe the process you took, in detail, if you don’t mind, or at least share whether it needed to be removed from HomeKit first or not? Thanks!

I have the Level Lock+, not the Bolt, but I’m happy to share my experience. I spent many hours toiling and tinkering, eventually discovering that it can only be officially paired to one of them. So you’ll need to choose either HomeKit or HASS. Each has advantages and disadvantages. I’m probably missing some; these are just off the top of my head.

Pairing to HomeKit - Advantages:

  • First party support. Plays nicely with everything else in your HomeKit & Apple ecosystem.
  • You can use the Level Lock app to add (and manage) additional NFC devices like keycards, your spouse’s phone, and an Apple Watch
  • If/when Apple actually builds out the ability to share a digital HomeKey, you’ll get this too.
  • Adding it as a passive device to HASS (inheriting states only) is super easy

Pairing to HomeKit - Disadvantages:

  • Getting full functionality in HASS requires lots of overhead
  • Cannot be directly controlled from HASS (I think?)
  • Cannot use a bluetooth proxy. Biggest downside IMO.

Pairing to HASS - Advantages:

  • Can use a bluetooth proxy!
  • Plays nicely with your other HASS accessories
  • Easy addition to your dashboards & automations

Pairing to HASS - Disadvantages:

  • Can’t add it to your Home app
  • NFC doesn’t work with phones (or Apple Watches) from family members. Unsure if the NFC reader can be leveraged to work like a typical HASS NFC reader.
  • If/when Apple finally releases their HomeKey product, you won’t be able to send a digital Key to your neighbor’s iPhone.

Fortunately, the bluetooth proxy wasn’t absolutely necessary for me, so I decided to pair it to HomeKit. I created some virtual helpers in HASS and paired them with some automations in the Home app to get the best of both worlds. Here’s what I did:

  1. In HASS, create an input_boolean to keep track of the lock’s state. It’s critical you don’t allow any HASS users to update this helper!
  2. In HASS, create a momentary switch to capture lock requests initiated by HASS. To avoid impatient users from hammering the dashboard button I use to trigger the lock, I use an 8-second toggle for the momentary switch to let me display a “please wait” state while we wait for the lock to do its thing. YMMV.
- platform: momentary
  name: Front Door Lock Trigger
  mode: "on"
  toggle_for: 8
  cancellable: False
  1. In HASS, create another momentary switch to capture unlock requests initiated by HASS. Same 8-second delay here.
- platform: momentary
  name: Front Door Unlock Trigger
  mode: "on"
  toggle_for: 8
  cancellable: False
  1. In HASS, expose the 3 above sensors to the HomeKit bridge so they’re available in the Home app
  2. In the Home app, create automations that update your input boolean whenever the Level Lock is either locked or unlocked
  3. In the Home app, create automations that lock or unlock the Level Lock when the relevant momentary switch is flipped
  4. In HASS, create an automation to trigger the proper momentary switch when HomeKit updates the input_boolean used to track the lock’s state locally:
alias: Front Door Lock Toggle
description: Triggers the proper momentary switch to lock/unlock the door when HomeKit toggles our input boolean.
trigger:
  - platform: state
    entity_id:
      - input_button.toggle_front_door_lock
    to: null
condition:
  - condition: state
    entity_id: switch.momentary_front_door_lock_trigger
    state: "off"
  - condition: state
    entity_id: switch.momentary_front_door_unlock_trigger
    state: "off"
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: input_boolean.is_front_door_locked
            state: "on"
        sequence:
          - service: switch.turn_on
            target:
              entity_id: switch.momentary_front_door_unlock_trigger
            data: {}
      - conditions:
          - condition: state
            entity_id: input_boolean.is_front_door_locked
            state: "off"
        sequence:
          - service: switch.turn_on
            data: {}
            target:
              entity_id: switch.momentary_front_door_lock_trigger
mode: single
  1. Add a mushroom template card to your dashboard incorporating all of the above. My config is part of a single-column grid, so you may need to adjust for your dashboard layout:
  - type: custom:mushroom-template-card
    primary: Front Door Lock
    secondary: >-
      {%- if states.switch.momentary_front_door_lock_trigger.state | bool +
      states.switch.momentary_front_door_unlock_trigger.state | bool == 0 %} 
        {%- if states.input_boolean.is_front_door_locked.state | bool %}
        Locked
        {% else %}
        Unlocked
        {% endif %}
      {% else %}
        {%- if states.switch.momentary_front_door_unlock_trigger.state | bool %}
        Unlock requested, please wait.
        {% else %}
        Lock requested, please wait.
        {% endif %}
      {% endif %}
    icon: |-
      {%- if states.input_boolean.is_front_door_locked.state | bool %}
        mdi:lock
      {% else %}
        mdi:lock-open
      {% endif %}
    icon_color: >-
      {%- if states.switch.momentary_front_door_lock_trigger.state | bool +
      states.switch.momentary_front_door_unlock_trigger.state | bool == 0 %} 
        {%- if states.input_boolean.is_front_door_locked.state | bool %}
        green
        {% else %}
        red
        {% endif %}
      {% else %}
        yellow
      {% endif %}
    badge_icon: ''
    hold_action:
      action: more-info
    double_tap_action:
      action: none
    entity: input_boolean.is_front_door_locked
    multiline_secondary: true
    fill_container: true
    tap_action:
      action: call-service
      service: input_button.press
      target:
        entity_id: input_button.toggle_front_door_lock

Here’s what all of that gets you. Unlocked state:

When tapped from the unlocked state, it requests the door be locked and shows this pending state:

Locked state:

From the locked state, the card can be tapped in HASS for another pending state while the lock is doing its thing.

Best of both worlds, as long as you don’t need the BT proxy. My wife can tap her Apple Watch to the lock face to lock/unlock it, I can do the same with my iPhone, and everything is still accessible and controllable via HASS. :smiley:

1 Like

Wow, thank you so much for this detailed and incredibly helpful post! I haven’t had a chance to apply it to my situation yet, but when I do, I will post again to confirm for others whether it worked (or, if it didn’t, if I learned anything) with the Bolt. Cheers!