ESP32 Bluetooth Proxy für Home Assistant einrichten
So baust Du mit einem ESP32, ESPHome und WLAN einen einfachen Bluetooth Range Extender für Home Assistant, damit BLE-Sensoren zuverlässiger erreichbar sind.
Wenn Bluetooth-Sensoren in Home Assistant nur manchmal auftauchen, liegt es oft nicht an Home Assistant und auch nicht am Sensor. Häufig steht der Home-Assistant-Server einfach an der falschen Stelle: im Technikschrank, neben dem Router, im Keller oder in einem Mini-PC ohne gute Bluetooth-Antenne. Ein ESP32 Bluetooth Proxy löst genau dieses Problem. Der kleine ESP32 hört in der Nähe Deiner BLE-Geräte mit und leitet die Bluetooth-Daten per WLAN an Home Assistant weiter.
Wichtig ist die Einschränkung gleich am Anfang: Das ist kein klassischer Bluetooth-Repeater für Kopfhörer, Lautsprecher oder Tastaturen. ESPHome nennt die Funktion zwar bluetooth_proxy, unterstützt darüber aber Bluetooth Low Energy, kurz BLE. Genau das nutzen viele Thermometer, Pflanzensensoren, Präsenz-Beacons, SwitchBot-Geräte und BTHome-Sensoren.
Was Du für den ESP32 Bluetooth Proxy brauchst
Für die einfache WLAN-Variante brauchst Du nur wenig Hardware:
- einen normalen ESP32 DevKit oder ESP32-WROOM (Affiliate Link), keinen ESP8266, weil der kein Bluetooth hat
- ein passendes USB-Kabel, bei vielen günstigen Kabeln fehlt die Datenleitung
- einen Computer mit Chrome, Edge oder einem anderen Browser, der Web Serial unterstützt
- Zugriff auf Dein 2,4-GHz-WLAN
- Home Assistant mit installierter ESPHome-Integration
Wenn Du Home Assistant noch gar nicht eingerichtet hast, hilft Dir zuerst die Anleitung Wie kann man Home Assistant auf einem Raspberry Pi installieren?. Für diesen Artikel gehe ich davon aus, dass Home Assistant bereits läuft und Du Dich in der Oberfläche anmelden kannst.
Warum wir den offiziellen ESPHome-Installer nehmen
Du kannst einen Bluetooth Proxy komplett von Hand in ESPHome konfigurieren. Für den ersten ESP32 ist der offizielle Installer aber der sauberere Weg, weil er ein fertiges ESPHome-Projekt für Bluetooth-Proxies flasht und Dich direkt durch die WLAN-Einrichtung führt.
Öffne auf Deinem Computer die offizielle ESPHome-Seite für fertige Projekte:
https://esphome.io/projects/?type=bluetooth
Die ESPHome-Dokumentation zur Komponente findest Du zusätzlich unter Bluetooth Proxy. Dort stehen auch die technischen Grenzen, die für die Praxis wichtig sind: ESPHome arbeitet hier mit BLE-Geräten, aktive Verbindungen sind begrenzt und für Bluetooth-Proxies wird das esp-idf-Framework empfohlen, weil es mit Bluetooth deutlich besser passt als das Arduino-Framework.
ESP32 per USB verbinden und Firmware installieren
Stecke den ESP32 per USB an Deinen Computer. Wenn Dein Board mehrere Tasten hat, musst Du normalerweise nichts drücken. Sollte das Flashen später hängen bleiben, hältst Du beim Start des Flash-Vorgangs kurz die Taste BOOT gedrückt und lässt sie los, sobald der Browser die Verbindung aufgebaut hat.
Gehe nun so vor:
- Öffne die ESPHome-Projektseite für Bluetooth-Proxies.
- Wähle bei einem normalen DevKit den Eintrag für einen generischen ESP32.
- Klicke auf
Connect. - Wähle den seriellen Port Deines ESP32 aus.
- Klicke auf
Install. - Bestätige die Installation der Firmware.
Der Browser löscht jetzt die alte Firmware auf dem ESP32 und schreibt das fertige Bluetooth-Proxy-Projekt auf den Chip. Trenne den ESP32 währenddessen nicht vom USB-Kabel. Der erste Flash-Vorgang dauert ein paar Minuten, weil die komplette Firmware übertragen wird.
WLAN einrichten
Nach der Installation bietet Dir der Installer an, die WLAN-Daten einzutragen. Verbinde den ESP32 mit Deinem normalen 2,4-GHz-WLAN, also mit demselben Netzwerk, in dem Home Assistant erreichbar ist.
Trage dafür ein:
- den Namen Deines WLANs bei
SSID - Dein WLAN-Passwort bei
Password
Speichere die Daten und warte, bis der ESP32 neu gestartet ist. Danach sollte er im Netzwerk auftauchen. Wenn der Installer Dir eine Meldung zeigt, dass das Gerät verbunden ist, kannst Du den ESP32 vom Computer abziehen und an einem USB-Netzteil an der geplanten Stelle einstecken.
ESP32 in Home Assistant hinzufügen
Home Assistant erkennt neue ESPHome-Geräte meistens automatisch. Warte nach dem Neustart des ESP32 ein bis zwei Minuten und öffne dann:
Einstellungen > Geräte & Dienste
Dort sollte eine neue Entdeckung für ESPHome erscheinen. Klicke auf Konfigurieren und bestätige die Aufnahme des Geräts. Falls Home Assistant nach einem Verschlüsselungsschlüssel fragt, prüfe die Ausgabe des Installers oder übernimm das Gerät in ESPHome, damit Du die Konfiguration einsehen kannst.
Wenn keine Entdeckung erscheint, fügst Du den Proxy manuell hinzu:
- Öffne
Einstellungen > Geräte & Dienste. - Klicke auf
Integration hinzufügen. - Suche nach
ESPHome. - Gib den Hostnamen oder die IP-Adresse Deines ESP32 ein.
Sobald die ESPHome-Integration verbunden ist, nutzt Home Assistant den ESP32 automatisch als entfernten Bluetooth-Adapter. In der offiziellen Home-Assistant-Dokumentation zur Bluetooth-Integration heißt dieser Bereich „Remote adapters“. Du musst für den Proxy selbst keine eigene Automatisierung bauen.
Prüfen, ob der Bluetooth Range Extender arbeitet
Der einfachste Test ist ein BLE-Gerät, das vorher schlecht erreichbar war. Lege zum Beispiel ein Bluetooth-Thermometer oder einen Pflanzensensor in die Nähe des ESP32 und warte ein paar Minuten. Viele BLE-Sensoren senden ihre Werte nur in Intervallen, deshalb ist etwas Geduld normal.
Prüfe danach in Home Assistant:
Einstellungen > Geräte & Dienste > Bluetooth
Dort kannst Du unter den Bluetooth-Adaptern sehen, welche Adapter Home Assistant kennt. Wenn Dein ESPHome-Gerät als entfernter Adapter auftaucht, ist der Proxy grundsätzlich verbunden. Neue unterstützte BLE-Geräte erscheinen anschließend wie gewohnt als Entdeckung oder aktualisieren ihre Werte in der passenden Integration.
Falls Du SwitchBot-Sensoren, Xiaomi-BLE-Thermometer oder BTHome-Geräte nutzt, brauchst Du zusätzlich die jeweilige Home-Assistant-Integration für dieses Gerät. Der Proxy liefert nur die Bluetooth-Verbindung. Die eigentliche Interpretation der Daten übernimmt Home Assistant über die passende Integration.
Optional: Die YAML-Konfiguration verstehen
Wenn Du das Gerät später in ESPHome übernimmst oder lieber direkt selbst anlegst, sieht die Grundidee so aus:
esphome:
name: bluetooth-proxy-wohnzimmer
friendly_name: Bluetooth Proxy Wohnzimmer
esp32:
board: esp32dev
framework:
type: esp-idf
wifi:
ssid: "DEIN_WLAN_NAME"
password: "DEIN_WLAN_PASSWORT"
logger:
api:
ota:
platform: esphome
esp32_ble_tracker:
bluetooth_proxy:
active: trueErsetze DEIN_WLAN_NAME durch den Namen Deines WLANs und DEIN_WLAN_PASSWORT durch Dein WLAN-Passwort. Der Block esp32_ble_tracker aktiviert das BLE-Scannen auf dem ESP32. Der Block bluetooth_proxy leitet die gefundenen BLE-Daten über die native ESPHome-API an Home Assistant weiter. active: true ist heute der übliche Modus, weil damit auch aktive BLE-Verbindungen möglich sind, soweit Gerät und Integration das unterstützen.
Wenn Du einen bestehenden ESP32 von Arduino auf esp-idf umstellst, flashe ihn beim ersten Mal wieder per USB. Der Grund ist die geänderte Partitionierung. Ein normales OTA-Update ändert diese Partitionstabelle nicht zuverlässig genug für so einen Framework-Wechsel.
Den richtigen Standort finden
Der Standort entscheidet mehr über den Erfolg als die Firmware. Stelle den ESP32 nicht direkt neben Deinen Router, Switch, Mini-PC oder ein Metallregal. Bluetooth und WLAN teilen sich beim ESP32 Funkressourcen, und zusätzliche Störungen machen ausgerechnet die schwachen BLE-Signale schlechter.
Gute Plätze sind:
- in der Nähe der Sensoren, die bisher ausfallen
- möglichst frei im Raum
- nicht direkt hinter einem Fernseher oder NAS
- nicht im geschlossenen Technikschrank
- bei mehreren Etagen lieber ein Proxy pro Etage statt ein Proxy im Keller
Die ESPHome-Dokumentation empfiehlt für bessere Bluetooth-Performance Ethernet-Boards, weil WLAN und Bluetooth dann weniger stark auf demselben Funkteil konkurrieren. Für diese Anleitung bleiben wir bewusst bei WLAN, weil ein normaler ESP32 damit sehr günstig und schnell einsatzbereit ist. Wenn Du später mehrere kritische Sensoren oder viele aktive BLE-Verbindungen hast, kann ein ESP32 mit Ethernet trotzdem die bessere Dauerlösung sein.
Typische Fehler und die schnelle Lösung
Wenn der ESP32 nach dem Flashen nicht im WLAN auftaucht, prüfe zuerst, ob Du wirklich ein 2,4-GHz-WLAN eingetragen hast. Viele ESP32-Boards können kein 5-GHz-WLAN. Achte außerdem auf Sonderzeichen im WLAN-Namen und darauf, dass Dein Gastnetzwerk lokale Geräte nicht voneinander isoliert.
Wenn Home Assistant den ESP32 sieht, aber keine Bluetooth-Geräte besser werden, stecke den ESP32 testweise näher an den Sensor. Ein Bluetooth Proxy vergrößert nicht magisch die Reichweite jedes einzelnen Sensors, sondern verlegt den Bluetooth-Empfänger an eine bessere Stelle.
Wenn das Gerät unter Last instabil wird, entferne zusätzliche ESPHome-Komponenten, die Du für diesen Proxy nicht brauchst. Besonders einen Webserver auf dem ESP32 solltest Du bei einem reinen Bluetooth Proxy nicht aktivieren, weil Bluetooth bereits viel Speicher benötigt.
Fazit
Mit einem ESP32, ESPHome und WLAN baust Du in wenigen Minuten einen einfachen Bluetooth Range Extender für Home Assistant. Der wichtigste Punkt ist die richtige Erwartung: Der ESP32 ist kein Audio-Repeater und kein universeller Bluetooth-Verstärker, sondern ein BLE-Proxy für Home Assistant. Genau dafür ist er aber sehr praktisch. Du steckst ihn näher an Deine Sensoren, Home Assistant bindet ihn als entfernten Bluetooth-Adapter ein, und viele bisher wackelige BLE-Geräte werden deutlich zuverlässiger.
Weiterlesen .
Raspberry Pi & LinuxAnleitung: SwitchBot Meter Pro CO2 Monitor mit Home Assistant verbinden
In diesem Blogpost lernst Du, wie Du den SwitchBot Meter Pro (CO2 Monitor) auspackst, anschließt, einrichtest und mit der SwitchBot-App sowie Home Assistant verbindest. Wir zeigen Dir, wie Du die Luftqualität misst, den Namen des Geräts festlegst, wichtige Kalibrierungen…
Sonoya Redaktion
Raspberry Pi & LinuxDyson PC1 mit Home Assistant automatisch steuern
Mit ha-dyson via HACS lässt sich der Dyson Purifier Cool PC1 vollständig in Home Assistant einbinden. Diese Anleitung zeigt, wie Du ihn sowohl nach Raumtemperatur als auch nach PM2.5-Feinstaub (Pollen) automatisch steuerst — mit einer kombinierten Automation, die immer die höhere Anforderung gewinnen lässt…
Sonoya Redaktion
Raspberry Pi & LinuxXiaomi Miflora & Home Assistant: Pflanzen per n8n webhook in Telegram überwachen
Viele smarte Gärtnerinnen und Gärtner kennen das Problem: Die Pflanzen sehen plötzlich schlapp aus, obwohl im Smart Home schon massenhaft Daten anfallen. Xiaomi Miflora Pflanzensensoren messen Feuchtigkeit, Leitfähigkeit (Dünger), Temperatur und Helligkeit – aber die Werte…
Sonoya Redaktion
Raspberry Pi & LinuxRaspberry Pi 5 von NVMe-SSD booten statt microSD-Karte
Wer seinen Raspberry Pi 5 ernsthaft nutzt, stößt an die Grenzen der microSD-Karte: Sie ist langsam und fällt nach vielen Schreibzugriffen gern aus. Eine NVMe-SSD am offiziellen M.2 HAT+ löst beide Probleme. Hier richten wir Schritt für Schritt ein, dass Dein Pi 5 direkt von der SSD startet…
Sonoya Redaktion
Raspberry Pi & LinuxMac-Anleitung: SSH-Timeouts zu einem Ubuntu Server verhindern
Wenn Du regelmäßig per SSH auf einen Ubuntu 22.04-Server zugreifst, kennst Du vielleicht das Problem: Lange inaktive Verbindungen brechen irgendwann ab, und all Deine laufenden Prozesse gehen verloren. Das ist nicht nur nervig, sondern kann auch viel Zeit und Arbeit kosten. Zum…
Sonoya Redaktion
Raspberry Pi & LinuxNordVPN auf einem Ubuntu 22.04 Droplet bei Digital Ocean für Python Skripte installieren und konfigurieren
In diesem Blogpost zeigen wir Dir, wie Du NordVPN auf einem Ubuntu 22.04 Droplet bei Digital Ocean installierst und so konfigurierst, dass Python-Skripte, die auf diesem Droplet ausgeführt werden, so aussehen, als kämen sie von einem NordVPN-Server. Wir stellen sicher, dass die…
Sonoya Redaktion