Kurzfassung: Wochenlange, sporadische Ausfälle meiner Bluetooth-Geräte (SwitchBot-Schloss, Thermometer, Präsenz- und Bettsensoren, LED-Streifen) haben sich als Problem der ESP32-Bluetooth-Proxies herausgestellt — nicht der Geräte selbst. Firmware, Board-Tausch, WLAN-Tuning: alles vergeblich. Gelöst hat es am Ende ein einzelner USB-Bluetooth-Adapter mit externer Antenne (FSC-BP119) direkt am Home-Assistant-Host. Seitdem Ruhe.
Setup
Home Assistant Green
SwitchBot über Bluetooth/Cloud: Lock Pro, 2× Meter (Thermometer), 2× Deckenpräsenzsensoren, Bettsensoren, LED-Streifen
3–4 ESP32-Boards als bluetooth_proxy (ESPHome), verteilt über Bad, Wohnzimmer, Keller, Schlafzimmer
ESPHome-Log voller [Errno 113] Connect call failed, Handshake timed out after 60.0s, EncryptionHelloAPIError und stale advertisement subscriber-Warnungen
Geräte fielen in HA auf unavailable — während das WLAN nachweislich weiterlief (also ein API-/Verbindungsproblem, kein reiner Funkabriss)
Auffällig: mehrere Proxies fielen oft gleichzeitig aus, obwohl sie an verschiedenen Access-Points hingen
Konkrete Folgeschäden: Türschloss meldete veraltete Zustände (Verriegelung wurde fälschlich als erfolgreich gewertet), LED-Streifen ließ sich nicht zuverlässig schalten, Präsenz-/Bettsensoren froren ein
Was alles NICHT geholfen hat
Der Reihe nach ausprobiert und einzeln widerlegt:
Firmware aktualisieren — Versionsrückstand war nicht die Ursache (Fehlertyp passte nicht).
„Ballast" aus der YAML werfen (web_server, captive_portal, web_server_idf) — kein Effekt auf die Ausfälle.
FRITZ!Box Mesh-Steering deaktivieren — beendete das Wandern der Geräte zwischen Knoten, aber nicht die Abrisse.
Feste 2,4-GHz-Kanäle statt Autokanal — keine Besserung.
Proxies per bssid: an einen festen Access-Point binden — hielt teils nicht (Fallback aktivierte sich) und löste die Abrisse ebenfalls nicht.
CPU/RAM/Temperatur des HA-Hosts geprüft (System-Monitor-Integration) — Host war im Leerlauf, Temperatur unkritisch. Kein Lastproblem.
Die entscheidenden Diagnose-Hinweise
FRITZ!Box-Ereignisprotokoll (WLAN-An-/Abmeldungen aktivieren!) zeigte teils echte WLAN-Abmeldungen — aber nicht zu allen HA-Ausfällen. Es gab Ausfälle, bei denen das WLAN stand.
Der SwitchBot-Hub am selben WLAN lief durchgehend stabil, während die ESP32-Proxies fielen. Das lenkte den Verdacht weg vom WLAN hin zu den ESP32-Boards selbst.
Kernverdacht am Ende: WLAN-/BLE-Koexistenz auf dem ESP32. Ein ESP32 teilt sich eine Antenne für WLAN und Bluetooth. Aktive BLE-Verbindungsversuche (Schalten, Verriegeln, Zustand lesen) blockieren kurzzeitig das Funkmodul — genau dann bricht die WLAN-/API-Seite ein. Das erklärt gleichzeitige Ausfälle mehrerer Proxies (HA probiert aktive Verbindungen reihum) und warum es an jedem Standort, mit jeder Firmware, auf altem wie neuem Board auftrat.
Was es gelöst hat: FSC-BP119 am HA-Host
Ein USB-Bluetooth-Adapter mit externer Antenne (FSC-BP119, CSR8510-Chip) per USB-Verlängerung an den Home-Assistant-Host, räumlich abgesetzt von den anderen Funkmodulen (Zigbee/Thread), um gegenseitige Störung zu minimieren.
Wichtige Punkte beim Umstieg:
Adapter im ausgeschalteten Zustand einstecken, damit sich die USB-Port-Zuordnung der anderen Funk-Sticks (Zigbee/Thread) nicht verschiebt.
Erst einstecken und messen, nicht sofort Proxies abbauen. Über die Bluetooth-Diagnosedaten (Diagnosedaten herunterladen auf der Adapter-Geräteseite) sieht man pro Gerät, welcher Scanner es mit welchem RSSI empfängt.
Der neue Adapter war bei nahezu allen Geräten der stärkste Empfänger im ganzen Haus — vom zentral gelegenen Büro aus deckte er alle Etagen ab (RSSI meist deutlich besser als die Proxies).
Proxies einzeln deaktivieren (nicht physisch, sondern die ESPHome-Integrationseinträge), mit Kontrolle nach jedem Schritt. So sieht man sofort, falls ein Gerät doch nur über einen bestimmten Proxy erreichbar war.
Ergebnis
Türschloss verriegelt auf die Sekunde pünktlich und liefert frische Zustandsrückmeldung (Reaktionszeit ~4–5 s statt minutenlanger Cloud-Verzögerung). Die falsch-positiven „verriegelt"-Meldungen sind weg.
LED-Streifen schaltet zuverlässig in beide Richtungen, beim ersten Versuch, mit Bestätigung.
Präsenz- und Bettsensoren melden in Echtzeit, kein Einfrieren mehr.
ESPHome-Fehlerlog still, nachdem die Proxies deaktiviert waren.
Fazit / Empfehlung
ESP32-BLE-Proxies sind bequem und für passives Mitlesen von Advertisements oft ausreichend. Sobald aber aktive BLE-Verbindungen ins Spiel kommen (Schlösser, schaltbare Geräte, Zustandsabfragen), stößt die WLAN-/BLE-Koexistenz des ESP32 an Grenzen — und das äußert sich als scheinbar zufällige Errno 113-/Handshake-/unavailable-Fehler, denen man mit Firmware- und WLAN-Tuning ewig hinterherjagen kann.
Wer dieses Fehlerbild hat und dessen HA-Host zentral genug steht, sollte einen USB-Bluetooth-Adapter mit ordentlicher Antenne direkt am Host ernsthaft in Betracht ziehen, bevor man Wochen in Proxy-Diagnose steckt. In meinem Fall hat ein einziges Teil vier Proxies ersetzt und alle Symptome auf einmal beseitigt.
Wichtige Einschränkung: Reichweite ist der Knackpunkt. Bluetooth verliert an Wänden/Decken mehr als WLAN. Das funktioniert nur, wenn der Host zentral steht und die Antenne die Distanzen packt — vorher per Diagnosedaten messen, nicht raten.
Aber ich muss dagegen halten, ich habe 10 ESP32 BLE-Proxys seit 2 Jahren im Einsatz die auch immer schön geupdatet werden…laufen alle. Mittlerweile können diese sogar verschieden eingestellt werden. Je nach Szenario brauchen diese nämlich andere Timings.
Aber ja, was ein Problem werden kann ist die Co-Existenz mit dem WLAN, was sich aber mit 2-3 Zeilen lösen lässt
Sorgt dafür das Bluetooth erst angeschalten wird wenn WLAN, respektive HA Verbunden ist und gleichermassen das es sich wieder ausschaltet wenn der ESP seine Verbindung verliert. Das verhindert das das WLAN klemmt.
Ich hab halt C3 im Einsatz, weil das umgeflashte Shelly Minis sind (waren billiger, weil Gehäuse und Netzteil schon inkludiert), die haben auch eine abartige Reichweite. Die haben nur einen Kern und sind sogar anfälliger für das BLE/WLAN Co-Existenz Problem…so sagt man zumindest
Scan Window wird errechnet aus dem Interval und dem Duty Cycle, ESP Standard ist 37%, man kann aber bequem bis 80% hochgehen, muss man ein bisschen probieren, ohne WLAN Probleme zu bekommen.
Haha, ertappt – ja, das war mit KI gebaut. Ehrlich gesagt könnte ich das Ganze nie so sortiert mit eigenen Worten runterschreiben, dafür nehm ich die KI gern zu Hilfe. Dass es dabei nach Maschine klingt, ist der Preis, geschenkt.
Aber danke fürs Snippet, das kannte ich so nicht – und das ist genau der Hebel, den ich nie probiert hab. Ich hab mich an power_save_mode, Firmware, Boardtausch und am Mesh abgearbeitet, aber den BLE-Scan einfach abzuschalten wenn HA weg ist, war nirgends auf meinem Schirm. Wenn ich das lese, glaub ich sofort, dass das meine „alle Proxys gleichzeitig weg"-Ausfälle stark entschärft hätte. Also ja, mein Bericht klingt kategorischer gegen ESP-Proxys als er sollte.
Dass ich trotzdem beim USB-Stick gelandet bin, ist weniger technisch als bequem: Ich hatte am Ende vier Proxys übers Haus verteilt, und die einzeln zu pflegen und zu tunen war mir schlicht zu viel Gefummel. Ein Stick am HA, der alles abdeckt – fertig. Bei zehn Stück wie bei dir, die eh laufen, würd ich das auch nicht anfassen, never touch a running system.
Die C3 aus umgeflashten Shelly Minis sind übrigens ein feiner Trick, auf die Reichweite wär ich nie gekommen. Das Duty-Cycle-Tuning probier ich bei Gelegenheit mal an einem der übrig gebliebenen Boards aus, rein aus Neugier.
Das mit der Reichweite hab ich durch Zufall gecheckt, da ich mit den Shellys die BLE Gardena-Ventile am anderen Ende des Gartens aufeinmal managen konnte, das sind 14m bis dahin, durch eine Wand durch. Ich hab auch nur mehrere Proxies da wir Raumerkennung mit Bermuda am Laufen haben.
Mit dem Duty Cycle das ist eine gute Rechnung, man kann wohl bis auf 90% hochgehen ohne das es Auswirkungen auf das Wifi hat, ich bleib aber bei 70%, sicherheitshalber, läuft bis dato stabil
Viele Bermuda Nutzer gehen auf 90% und auf ein grösseres window, damit jeder Ping von den Smartphones getrackt wird und so Lichter schneller reagieren wenn man das Smartphone dazu nutzt. Machen wir nicht. Wir tracken eher sowas wie "Sind beide Handys eine halbe Stunde im Schlafzimmer am Laden und es brennen noch Lichter, dann sind wir wohl eingeschlafen, bzw. morgens wenn wir das Ladegerät abziehen und im Schlafzimmer sind, dann mach die Guten Morgen Schaltung. Von daher nicht so kriegsentscheidend. Ich bin auf kürzere Fenster gegangen um Bewegungsmelder und Präsenzsensoren nicht zu verpassen, weil der Sensor sendet ja nur bei Belegt/Frei und nicht dauernd wie ein Smartphone.