v2.9.6
Bug Fixes
-
Sleep Number MCR: fix connection failures through ESPHome proxy (#326, Ref #322) — Three issues prevented the MCR handshake from completing:
- ESPHome BLE proxies silently drop write-without-response packets for the MCR characteristic. Switched to write-with-response (with fallback).
- GATT reads on the Device Information Service between connect and the notification subscription caused the bed to disconnect. These reads are now deferred until after the protocol handshake.
- The 0.5s post-connect stabilisation delay gave the bed enough idle time to disconnect before the handshake could run. Skipped for Sleep Number and Jensen beds.
-
Fix stale ESPHome proxy connections from re-pairing (#326, Ref #318) — BLE-level pairing was requested on every connection for beds that require bonding. After the first successful bond, re-pairing triggers ESP-IDF auth failure (reason 82) and leaves the proxy connection stuck. Pairing is now only requested on the first connection attempt; subsequent connections reuse the existing bond.
-
Linak: send wake preamble on first command after reconnection — Linak motor controllers enter a low-power state after BLE disconnect. The first GATT write after reconnection was silently ignored by the hardware. Now sends a STOP command as a no-op wake preamble before the real command.
-
Fix NoneType crash during connection retries — If the bed disconnected during post-connect stabilisation, the retry loop could hit
'NoneType' object has no attribute 'is_connected'. Added a connection guard after the delay.