1st gen Eve Room, Bluetooth and 2022.8

I’m super excited to be able to setup the Schlage Sense lock directly in Home Assistant now but I too am wondering about how to configure user codes and the other options like enable/disable 1-touch locking.

It seems that once the lock is setup with the Homekit controller, these can no longer be configured anywhere. I even tried configuring them manually but I’m not having any luck getting the programming code to work once paired.

Would be great if it could connect to the Schlage app as @zadigre mentioned in the same way that it does when doing the HomeKit setup from the Schlage app, but I would also take being able to configure the settings via Home Assistant or manually. If anyone else has had any luck with this I’d love to hear how you did it.

Big thanks to @bdraco for your work on this!

There is a Lock Control point characteristic on the lock. Unfortunately its vendor specific so we have no idea how to add/remove users and codes to/from it

Devices show up. Got pairing working.

Fantastic work! Was is the mtu value?

Regarding the vendor specific characteristics, is there a bluetooth sniffer that I can use to capture the homekit communication when using the vendor specific apps?
I remember for Eve devices there was a module for Home bridge called fakeeve that simulated the logged data for Eve app.

Thank you!

Like @Jc2k wrote, great stuff!! :wink:
Thanks for your hard work on this!

Should work once this is released in 2022.8.5

2 Likes

@Chris_Quach , did you find a way to add codes to the lock when connected to HA?
for some reason, my lock lost all codes but was still paired to HA.
I’m under the impression I’ll have to repair with HomeKit, add my codes, remove from HomeKit and repair with HA… and even with that, it looses codes after that.
(started a new thread about this here Schlage sense with 2022.8.3)

I believe the only way to add lock codes is to have the lock paired with the original HomeKit, and then use the Schlage app.

I’ve tried manually adding codes via the programming function but it seems that only works if the lock isn’t paired with HomeKit - or in this case HA (HomeKit emulator).

The two pre programmed user codes are also disabled when the lock is paired with HomeKit.

Unfortunately haven’t found any other way unless it’s paired with original HomeKit .

lets see now if the Eve app can downloaded the Eve Room data when paired…
if this works fine, I don’t see why Schlage wouldn’t allow any communication between their app and the lock even if not connected directly to HomeKit.

2022.8.5 is on the way out the door now

1 Like

HA 2022.8.5 Eve Room attempt. Still the same error.

https://controlc.com/646a8154

HA 2022.8.5 Eve Weather attempt. This one throws another error when prompted for pin.

https://controlc.com/3c18965f

Looking through logs I’ve noticed hci1 and hci0. Is it a hardcoded message for hci0?

2022-08-16 07:16:57.355 DEBUG (MainThread) [bleak.backends.bluezdbus.client] _cleanup_all(/org/bluez/hci1/dev_D8_04_6F_5C_55_5A)
2022-08-16 07:16:57.355 DEBUG (MainThread) [bleak.backends.bluezdbus.client] already disconnected (/org/bluez/hci1/dev_D8_04_6F_5C_55_5A)
2022-08-16 07:16:57.355 DEBUG (MainThread) [bleak.backends.bluezdbus.client] Connecting to device @ D8:04:6F:5C:55:5A with hci0

Thats interesting as the error is the aiohomekit version that comes with 2022.8.4. 2022.8.5 should have included the update to aiohomekit 1.2.11 whereas your log looks like its still running 1.2.6

2022-08-16 07:17:03.662 DEBUG (MainThread) [aiohomekit.controller.ble.client] Bleak error calling <function BleDiscovery.async_start_pairing at 0x7f8aadeeacb0>, retrying...
Traceback (most recent call last):
  File "/config/deps/lib/python3.10/site-packages/aiohomekit/controller/ble/client.py", line 62, in _async_wrap
    return await func(*args, **kwargs)
  File "/config/deps/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py", line 126, in async_start_pairing
    salt, pub_key = await self._async_start_pairing(alias)
  File "/config/deps/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py", line 109, in _async_start_pairing
    ff_char = self.client.get_characteristic(
  File "/config/deps/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 31, in get_characteristic
    char = self.services.get_service(service_type).get_characteristic(
AttributeError: 'NoneType' object has no attribute 'get_characteristic'

1.2.6 which comes with 2022.8.4 which matches up with the erorr in your log.

1.2.11 which comes with 2022.8.5

Damn! Somehow I had a pip install of an old version in /config/deps.

Anyway success!!!

Eve room 2022.8.5
https://controlc.com/1b017fea

Thank you for your hard work!

1 Like

Eve Thermo gen1 works too.

Eve Weather throws an error before pin prompt.

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/homekit_controller/config_flow.py”, line 502, in async_step_pair
self.finish_pairing = await discovery.async_start_pairing(self.hkid)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/client.py”, line 65, in _async_wrap
return await func(*args, **kwargs)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py”, line 137, in async_start_pairing
salt, pub_key = await self._async_start_pairing(alias)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py”, line 119, in _async_start_pairing
ff_char = self.client.get_characteristic(
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py”, line 37, in get_characteristic
raise ValueError(
ValueError: Service 00000055-0000-1000-8000-0026BB765291 not found, available services: []

https://controlc.com/81f8558f

Thanks! :grinning:
It works! :+1:

Same error for Eve Outlet

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/homekit_controller/config_flow.py”, line 502, in async_step_pair
self.finish_pairing = await discovery.async_start_pairing(self.hkid)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/client.py”, line 65, in _async_wrap
return await func(*args, **kwargs)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py”, line 137, in async_start_pairing
salt, pub_key = await self._async_start_pairing(alias)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py”, line 119, in _async_start_pairing
ff_char = self.client.get_characteristic(
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py”, line 37, in get_characteristic
raise ValueError(
ValueError: Service 00000055-0000-1000-8000-0026BB765291 not found, available services: []
/usr/local/lib/python3.10/site-packages/bleak/backends/bluezdbus/client.py:461: UserWarning: Using default MTU value. Call _acquire_mtu() or set _mtu_size first to avoid this warning.
warnings.warn(
2022-08-16 10:55:32.406 ERROR (MainThread) [homeassistant.components.homekit_controller.config_flow] Pairing attempt failed with an unhandled exception
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/homekit_controller/config_flow.py”, line 502, in async_step_pair
self.finish_pairing = await discovery.async_start_pairing(self.hkid)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/client.py”, line 65, in _async_wrap
return await func(*args, **kwargs)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py”, line 137, in async_start_pairing
salt, pub_key = await self._async_start_pairing(alias)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/discovery.py”, line 119, in _async_start_pairing
ff_char = self.client.get_characteristic(
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py”, line 37, in get_characteristic
raise ValueError(
ValueError: Service 00000055-0000-1000-8000-0026BB765291 not found, available services: []