Heizungssteuerung auf ein neues Level
Die Bosch Custom Component ist tot – wie EMS-ESP meine Gasheizung zukunftssicher in Home Assistant gebracht hat.
Der Auslöser: Python 3.12 hat meine Heizung abgeschaltet
Ich habe meine Bosch-Gasheizung jahrelang über die Community-Integration home-assistant-bosch-custom-component in Home Assistant eingebunden. Das KM100-Gateway wurde über das Netzwerk ausgelesen, Vorlauftemperatur, Kesselstatus, Warmwasser – alles da. Bis Home Assistant 2024.2 kam.
Mit dem Update auf Python 3.12 war Schluss. Die zugrundeliegende Bibliothek wurde nicht angepasst, die Integration verweigerte den Dienst. Kein Fix in Sicht, kein aktiver Maintainer mehr. Wer kennt's nicht.
EMS-ESP – eine Open-Source-Firmware für ESP32-Boards, die sich direkt in den EMS-Bus der Heizung einklinkt. Die Daten kommen per MQTT in Home Assistant, unabhängig von Python-Versionen oder Cloud-Gateways.
Warum EMS-ESP statt reparierter Custom Component?
Man hätte natürlich auch warten können, bis jemand die Bosch-Bibliothek auf Python 3.12 portiert. Aber:
- EMS-ESP greift direkt auf den EMS-Bus zu – kein Cloud-Gateway (KM100) mehr nötig, keine Abhängigkeit von Bosch-Servern.
- MQTT ist bombensicher. Solange der Broker läuft, kommen die Daten. Keine Python-Bibliothek, die bei Updates brechen kann.
- Volle Kontrolle. Ich kann nicht nur auslesen, sondern auch Heizkurven, Zieltemperaturen und Betriebsmodi direkt setzen.
Hardware und Anschluss
Benötigt wird ein EMS-ESP-kompatibles Board – ich nutze das von bbqkees-electronics, das speziell für den EMS-Bus entwickelt wurde. Es wird über das mitgelieferte Kabel einfach in die Service-Buchse der Heizung gesteckt. Strom kommt direkt über den Bus, kein zusätzliches Netzteil nötig.
EMS-ESP unterstützt Bosch, Buderus, Nefit, Junkers und einige weitere Marken – aber nicht jedes Modell. Die offizielle Geräteliste vorher prüfen. Bei meiner Bosch-Gasheizung lief es out-of-the-box.
Einrichtung und Konfiguration
Nach dem Einstecken öffnet das Board einen eigenen WLAN-Access-Point. Dort verbindet man sich, trägt die WLAN-Zugangsdaten ein, und erreicht danach das Web-Interface über die reguläre IP-Adresse im Heimnetz.
Die wichtigste Einstellung: MQTT-Broker konfigurieren. IP-Adresse und Zugangsdaten des Mosquitto-Brokers eintragen (der läuft bei den meisten als Add-on direkt in Home Assistant). Sobald das gespeichert ist, beginnt EMS-ESP sofort, Daten zu senden.
Integration in Home Assistant
Dank MQTT Auto-Discovery tauchen die Entitäten automatisch in Home Assistant auf – ohne manuelles YAML, ohne Custom Component. Vorlauftemperatur, Kesseltemperatur, Warmwasser-Status, Brennerstarts, Heizkurve, Zieltemperatur – alles da, alles steuerbar.
Der Unterschied zur alten Bosch-Integration ist spürbar: Die Werte kommen schneller (direkter Bus-Zugriff statt Netzwerk-Polling), und ich kann Betriebsmodi und Temperaturen nicht nur auslesen, sondern auch setzen.
Was ich weggelassen habe
Dieser Artikel ist ein Erfahrungsbericht, kein vollständiges Tutorial. Folgendes fehlt bewusst:
- Firmware-Flashing. Die Boards von bbqkees kommen fertig geflasht. Wer einen nackten ESP32 nutzen will, muss EMS-ESP selbst flashen – das ist ein eigenes Thema.
- Home Assistant Automationen. Was man mit den Daten macht (Nachtabsenkung, Frostschutz-Logik, Benachrichtigungen) ist ein Folgeartikel.
- Parallelbetrieb mit KM100. Beide können gleichzeitig am Bus hängen – habe ich nicht getestet, weil ich das KM100 direkt ausgebaut habe.
Fazit
Der Umstieg von der Bosch Custom Component auf EMS-ESP war einer dieser Fälle, wo ein erzwungener Wechsel am Ende die bessere Lösung gebracht hat. Direkter Bus-Zugriff statt Cloud-Gateway, MQTT statt fragiler Python-Abhängigkeiten, volle Steuerungsmöglichkeit statt nur Auslesen. Und das Beste: Das Setup ist seit über einem Jahr untouched stabil – kein einziges Home-Assistant-Update hat irgendwas kaputt gemacht.