Austausch - Switchbot Lock Pro

Ich würde gerne einen Thread erstellen, um über die HA Integration des Switchbot Lock Pro zu sprechen.

Hat dies schon jemand erfolgreich in HA via BLUETOOTH einbinden können?
Ich habe es aktuell via Matter am laufen da funktioniert es allerdings über Bluetooth nicht.
Über BT scheint es ja aktuell auch mehr Möglichkeiten zu geben als über Matter.
Release habe ich das aktuelle 2024.7.3 am laufen.

Ich habe so ein Lock und das ist über einen ESPhome-Bluetooth-Proxy angebunden.
Im Moment ist die Integration noch stark in der Entwicklung.
Aufschliessen, Zuschliessen, Öffnen geht, da wird noch dran gearbeitet.

Zustände wie Batteriestatus werden auch übermittelt.

Matter habe ich nicht. Fingerprint-Keypad auch nicht.

Ich überlege, selber was mit RFID-Leser und/oder Fingerabdruckscanner aufzubauen. Noch dramatischer wäre es mit einer Gesichtserkennung. Aber da muss ich mal in mich gehen ob man das wirklich will.

Hast du es einwandfrei über Bluetooth angebunden bekommen?
Es wird gefunden und auch als neue Entität in den Integrationen angezeigt aber
Ich bekomme beim nur Fehlermeldungen - hier mal ein Auszug aus dem Protokoll.

Logger: switchbot.devices.device
Quelle: runner.py:190
Erstmals aufgetreten: 20:19:39 (15 Vorkommnisse)
Zuletzt protokolliert: 20:22:11

D5-3E-63-87-: Device unexpectedly disconnected; RSSI: -127

Logger: switchbot.devices.device
Quelle: /usr/local/lib/python3.12/site-packages/switchbot/devices/device.py:187
Erstmals aufgetreten: 20:20:42 (2 Vorkommnisse)
Zuletzt protokolliert: 20:24:59

D5-3E-63-87- device not found, no longer in range, or poor RSSI: -127

Logger: py.warnings
Quelle: components/switchbot/config_flow.py:239
Erstmals aufgetreten: 20:19:36 (2 Vorkommnisse)
Zuletzt protokolliert: 20:29:04

/usr/local/lib/python3.12/site-packages/switchbot/devices/device.py:250: FutureWarning: BLEDevice.rssi is deprecated and will be removed in a future version of Bleak, use AdvertisementData.rssi instead return self._device.rssi

:crayon:by HarryP: Post formatiert

Die Logs sind quasi voll damit wenn ich die integration setupen will, so dass er immer in einen Timeout gerät wenn ich die Zugangsdaten zur Switchbot Verbindung herstellen will.

Ich habe das Gefühl das etwas mit dem Addon nicht richtig ist und es einen bug gibt.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/bleak_retry_connector/init.py", line 363, in establish_connection
await client.connect(
File "/usr/local/lib/python3.12/site-packages/habluetooth/wrappers.py", line 310, in connect
connected = await super().connect(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/bleak/init.py", line 615, in connect
return await self._backend.connect(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/bleak/backends/bluezdbus/client.py", line 151, in connect
async with async_timeout(timeout):
File "/usr/local/lib/python3.12/asyncio/timeouts.py", line 115, in aexit
raise TimeoutError from exc_val
TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_protocol.py", line 452, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_app.py", line 543, in _handle
resp = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiohttp/web_middlewares.py", line 114, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 85, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
return await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 122, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 368, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 415, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 518, in _async_handle_step
result: _FlowResultT = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/switchbot/config_flow.py", line 198, in async_step_lock_auth
return await self.async_step_lock_key(key_details)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/switchbot/config_flow.py", line 239, in async_step_lock_key
if not await SwitchbotLock.verify_encryption_key(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/lock.py", line 101, in verify_encryption_key
lock_info = await lock.get_basic_info()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/lock.py", line 257, in get_basic_info
lock_raw_data = await self._get_lock_info()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/lock.py", line 299, in _get_lock_info
_data = await self._send_command(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/lock.py", line 356, in _send_command
result = await self._ensure_encryption_initialized()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/lock.py", line 371, in _ensure_encryption_initialized
result = await self._send_command(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/lock.py", line 354, in _send_command
return await super()._send_command(key[:2] + "000000" + key[2:], retry)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/device.py", line 185, in _send_command
return await self._send_command_locked(key, command)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/device.py", line 419, in _send_command_locked
await self._ensure_connected()
File "/usr/local/lib/python3.12/site-packages/switchbot/devices/device.py", line 279, in _ensure_connected
client: BleakClientWithServiceCache = await establish_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/bleak_retry_connector/init.py", line 387, in establish_connection
_raise_if_needed(name, device.address, exc)
File "/usr/local/lib/python3.12/site-packages/bleak_retry_connector/init.py", line 327, in _raise_if_needed
raise BleakNotFoundError(msg) from exc
bleak_retry_connector.BleakNotFoundError: D5-3E-63-87-40-3A (D5:3E:63:87:40:3A) - D5:3E:63:87:40:3A: Failed to connect after 6 attempt(s): TimeoutError```

Hi,

ich habe das Lock Pro ebenfalls im Einsatz, per Switchbot Bluetooth Integration in Verbindung mit einen Bluetooth Proxy ESP32, ca. zwei Meter entfernt.

Bei mir funktioniert es soweit problemlos. Hatte auch keine Probleme es zu integrieren.
Es wird bei mir per Abwesenheitsautomation abgeschlossen und per Apple Watch aufgeschlossen.

ah ok du hast noch den ESP32 Proxy dazwischen den habe ich nicht, da ich einen direkten Bluetooth verifizierten Dongle genommen habe.
Der ist aber auch “nur” 2m Reichweite entfernt zum Schloss.

Kann mit den Fehlermeldungen leider nichts anfangen.
Via Bluetooth werden einfach mehr Entitäten ausgegeben als über Matter, daher wäre es schön “gewesen” wenn das auch bei mir funktionieren würde.

Die Bluetooth-Proxies und die Switchbot-Integration hatte ich bereits und mit dem HA-Update 7 (Juli) wurde es dann automatisch gefunden. Die Logs habe ich gerade mal angesehen, solche Fehlermeldungen habe ich nicht.

Das deutet eigentlich drauf hin dass der Empfang zu schlecht ist. Wodrüber hast du die Verbindung hergestellt? Mein Proxy ist glücklicherweise gerade mal 3m entfernt.

Kannst du über Bluetooth die Tür öffnen ohne, dass die Falle aufgezogen wird?

Raspberry steht im Keller, dazwischen ist nur eine Decke wo direkt darüber der Flur und die Haustür ist.
Die Entfernung sind maximal 2m mit einer Zwischendecke.

Vlt sollte ich es auch mal mit einem Bluetooth Proxy ausprobieren ggf ist das wirklich der Fehler wobei ich mir das kaum vorstellen kann.

Hatte mir den hier gekauft Amazon.de? da er auch offiziell supportet und erkannt wird in HA.

Jein :slight_smile:
Da wird wohl gerade noch das Protokoll analysiert.
Zuerst ging das, in der jetzigen Version wird die Falle immer mit aufgezogen. Da gibt es gerade einen regen Austausch in Github.
Leider ist es mir nicht gelungen, ein Bluetooth-Protokoll im Handy mitzuschneiden um mich da ein wenig mehr einzubringen.

Bei der Falle bin ich ingesamt noch am Grübeln was ich mache.
Sollte man per Feder die Tür ein wenig aufziehen sodass sie auch nach den eingestellten 3 Sekunden offen bleibt oder eher umgekehrt zudrücken? Also dass nach 3 Sekunden wieder zu ist?

Ja, versuch das mal. Ich habe im Proxy noch eingestellt:

bluetooth_proxy:
  active: true

Keine Ahnung ob das was nützt, das soll die Verbindung aufrecht erhalten. Vielleicht kannst du so eine Einstellung auch bei deinem Bluetooth finden.

Welches Device hast du gekauft um ihn als Proxy laufen zu lassen?

ESP32

Den habe ich im Einsatz.

1 „Gefällt mir“

Der sollte doch auch problemlos funktionieren, oder?
https://www.amazon.de/NodeMCU-32S-APKLVSR-ESP-WROOM-32-Bluetooth-Development/dp/B0CQSWC67G/

NodeMCU-32S
Kommt morgen an

Ja der sollte funktionieren.

:crayon:by HarryP: Post formatiert

1 „Gefällt mir“

Hallo in die Runde,

das Schloss hat auch mein Interesse geweckt. Beim schauen der Videos und Beschreibungen werden auch verschiedene Adapter gezeigt. Einer der Adapter scheint zum aufstecken auf einen 7mm Vierkant zu sein. Ich stelle mir nun die Frage, ob man diesen Adapter samt Smart Lock zum öffnen einer Terrassentür verwenden könnte?
Eine Standard Balkon/ Terrassentür hat ja einen 7mm Vierkant zum öffnen und schließen der Tür. Die Tür kann nur auf/zu und keine Kippstellung. Der Vierkant müsste vermutlich gekürzt und das Schloss aufgeklebt werden. Da der Antrieb auch auf ein Single Cylinder Deadbolt lock gesteckt werden kann, dürfte die Software/Motor keine Probleme mit dem kurzen Laufweg haben. Könnte das funktionieren? Ist der Motor dafür stark genug? Wie ist eure Einschätzung?

Danke, schon mal für euer Feedback.

Die einfachste Methode: Ausprobieren :slight_smile:

Sowohl ESP als auch Switchbotlock.

1 „Gefällt mir“

Hat schon jemand das Lock Pro über Shelly Bluetooth Proxy verbunden bekommen? Ich habe die Switchbot Bluetooth Integration mit einem Meter am Laufen, aber das Lock Pro wird nicht gefunden. Im log des Shelly habe ich die mac Adresse des Lock Pro schon gesehen.

Gerade ist ein ganz dickes Feature released worden und auch direkt in der App verfügbar - nicht getestet bisher

**Auto Unlock **



Du brauchst als Grundvoraussetzung die aktuellste Version von HA.
Irgendwo habe ich auch einen Shelly mit aktiviertem Proxy, allerdings nicht in Reichweite meines Locks.
Schade das man bei Bluetooth keine Map ziehen kann wie bei Zigbee.