Gaszähler auslesen mit MQTT: BK-G4 in openHAB, ioBroker und Node-RED

Gaszähler BK-G4 per MQTT auslesen: Sensor mit ESP32-C3 am Elster-Gaszähler, für openHAB, ioBroker und Node-RED

Gaszähler auslesen ohne Home Assistant: Unseren Bausatz aus Reedkontakt, Gehäuse und ESP32-C3 gibt es jetzt auch mit fertiger MQTT-Firmware. Damit liest du deinen BK-Gaszähler, zum Beispiel den verbreiteten BK-G4 oder BK-G4 MT, in openHAB, ioBroker, Node-RED oder FHEM aus. Du installierst die Firmware mit einem Klick im Browser und trägst deinen MQTT-Broker auf der Webseite des Geräts ein. Programmieren oder YAML brauchst du nicht.

Was kann die MQTT-Version?

Die MQTT-Version misst genau dasselbe wie unsere ESPHome-Firmware für Home Assistant: Zählerstand, Durchfluss und den Verbrauch von heute, gestern, im Monat und im Jahr. Statt an Home Assistant schickt der ESP32-C3 die Werte an deinen MQTT-Broker, zum Beispiel Mosquitto. Dein Smart-Home-System liest sie dort ab.

Home-Assistant-Version MQTT-Version
Für Home Assistant openHAB, ioBroker, Node-RED, FHEM und alle Systeme mit MQTT
Installation Web-Installer im Browser Web-Installer im Browser
Einrichtung Home Assistant findet das Gerät automatisch Broker auf der Webseite des Geräts eintragen
Einbindung ESPHome-Integration MQTT-Discovery, z. B. im openHAB-Eingang
Schutz verschlüsselte Verbindung zu Home Assistant Passwort für die Webseite, Einstellungen nur kurz nach dem Einstecken
Updates mit einem Klick in Home Assistant mit einem Klick auf der Webseite des Geräts

Die Hardware ist bei beiden Versionen dieselbe. Du entscheidest erst beim Installieren, welche Firmware auf deinen ESP32-C3 kommt, und kannst später jederzeit wechseln.

So liest der ESP32 deinen Gaszähler aus

Ein Magnet in der letzten Zählrolle deines BK-Gaszählers schaltet bei jeder Umdrehung den Reedkontakt. Der ESP32-C3 zählt diese Impulse und rechnet sie in Kubikmeter um. Der Sensor wird nur von außen angebracht, der Gaszähler bleibt unberührt. Er passt an Honeywell/Elster-, Kromschröder- und Pipersberg-Zähler von BK-G1,6 bis BK-G25, also auch an den BK-G4 und BK-G4 MT, sofern die letzte Zählrolle einen Impulsmagneten hat. Du erkennst ihn am Typenschild, z. B. „1 imp ≙ 0,01 m³“.

Gaszähler-Sensor mit MQTT passt an Elster/Honeywell, Kromschröder und Pipersberg BK-G1.6 bis BK-G25

Was du brauchst

  • Unseren Bausatz mit ESP32-C3 für BK-Gaszähler: Gehäuse mit vormontiertem Reedkontakt, Waveshare ESP32-C3 Mini, Befestigungsschraube und Kurzanleitung
  • USB-C-Kabel und USB-Netzteil mit 5 V
  • Lötkolben für zwei Lötstellen
  • Computer mit Google Chrome oder Microsoft Edge
  • WLAN im 2,4-GHz-Band am Gaszähler
  • einen MQTT-Broker mit Benutzername und Passwort, zum Beispiel Mosquitto
Bausatz Gaszähler MQTT Lieferumfang: Gehäuse mit Reedkontakt, ESP32-C3-Zero, Schraube

Schritt für Schritt: Gaszähler BK-G4 per MQTT auslesen

1. Reedkontakt anlöten

Die beiden Adern kommen an GPIO4 und GND des ESP32-C3, die Polung ist egal. Das ist dieselbe Belegung wie bei der Home-Assistant-Version.

ESP32-C3-Zero im Gehäuse, Reedkontakt an GPIO4 und GND

2. MQTT-Firmware per Web-Installer aufspielen

  1. Die BOOT-Taste am ESP32-C3 gedrückt halten und das USB-C-Kabel am Computer einstecken.
  2. Den Web-Installer öffnen: ng3d-druck.github.io/Gas-Connect-DIY
  3. Im Abschnitt „MQTT-Version“ auf MQTT-Version installieren klicken und den Port auswählen. Nach rund einer Minute ist die Installation fertig.
  4. Das Kabel kurz abziehen und ohne BOOT-Taste wieder einstecken.

Lieber ohne Browser? Auf derselben Seite gibt es die Firmware auch zum Herunterladen, zum Beispiel für das Programm ESP-Flasher.

3. WLAN einrichten

Direkt im Web-Installer über Configure Wi-Fi oder über den Hotspot gas-connect-diy-mqtt-xxxxxx des Geräts. Aus Sicherheitsgründen ist das nur in den ersten 15 Minuten nach dem Einstecken möglich. Danach einfach kurz ab- und wieder anstecken.

4. Broker auf der Webseite des Geräts eintragen

Öffne http://gas-connect-diy-mqtt-xxxxxx.local oder die IP-Adresse des Geräts aus deinem Router. Im Bereich Setup trägst du ein:

  • MQTT broker, MQTT port, MQTT username und MQTT password deines Brokers
  • ein Web page password mit mindestens 8 Zeichen. Es ist Pflicht und schützt die Webseite vor anderen in deinem Netz.
  • optional einen eigenen Hostname, zum Beispiel gaszaehler

Dann klickst du bei Save and restart auf PRESS. Das Gerät startet neu, und MQTT status zeigt nach wenigen Sekunden Connected. Stimmt etwas nicht, steht dort der Grund, zum Beispiel „Not authorized: check username and password“.

Gaszähler MQTT: Einrichtung auf der Webseite des Geräts mit Broker, Port und MQTT status Connected

Die Webseite des Geräts mit Beispielwerten

Gut zu wissen: Die Einstellungen im Bereich Setup lassen sich nur in den ersten 15 Minuten nach dem Einstecken ändern. So kann niemand aus deinem Netz heimlich den Broker umstellen. Willst du später etwas ändern, steck das Gerät kurz ab und wieder an.

5. Zähler einstellen

Stell Pulse volume laut Typenschild ein, meist 0,01 m³. Dann trägst du unter Set meter reading deinen aktuellen Zählerstand ein, so wie er auf dem Zähler steht. Beides geht jederzeit, auf der Webseite oder per MQTT.

Gaszähler in openHAB einbinden

Das Gerät meldet alle Werte per MQTT-Discovery an. openHAB legt sie damit automatisch an:

  1. Unter Einstellungen → Add-ons das MQTT Binding installieren.
  2. Deinen Broker als Thing MQTT Broker anlegen.
  3. Das Gerät erscheint im Eingang als Gas Connect DIY MQTT. Hinzufügen und die Kanäle mit Items verknüpfen, fertig.
Gaszähler in openHAB per MQTT: Thing mit Zählerstand, Durchfluss und Tagesverbrauch

Beispielansicht: das Gerät als Thing in openHAB

ioBroker, Node-RED und FHEM

Alle anderen Systeme abonnieren einfach die Topics des Geräts, zum Beispiel mit dem ioBroker-Adapter MQTT Broker/Client oder einem MQTT-in-Knoten in Node-RED. Die wichtigsten:

Topic Inhalt
gas-connect-diy-mqtt-xxxxxx/sensor/gas_meter_reading/state Zählerstand in m³
gas-connect-diy-mqtt-xxxxxx/sensor/gas_flow/state Durchfluss in m³/h
gas-connect-diy-mqtt-xxxxxx/sensor/gas_today/state Verbrauch heute in m³
gas-connect-diy-mqtt-xxxxxx/status online oder offline
gas-connect-diy-mqtt-xxxxxx/number/set_meter_reading/command hierhin den Zählerstand schicken, z. B. 1631.29

Die Endung xxxxxx sind die letzten Stellen der MAC-Adresse. Auch wenn du einen eigenen Hostnamen festlegst, behalten die Topics diesen Namen. So bleibt deine Einbindung beim Umbenennen erhalten.

Tipps aus der Praxis

  • MQTT status zeigt „Broker not found“? Trag statt des Namens die IP-Adresse des Brokers ein.
  • Webseite unter .local nicht erreichbar? Nimm die IP-Adresse aus deinem Router.
  • Ein Impuls wird doppelt gezählt? Debounce time erhöhen, z. B. auf 200 ms.
  • Verbrauch um Faktor 10 falsch? Pulse volume mit dem Typenschild vergleichen. BK-G10 bis G25 zählen oft 0,1 m³ pro Impuls.
  • Kubikmeter in kWh: m³ × Brennwert × Zustandszahl von deiner Gasrechnung, typischerweise rund 10 kWh pro m³.

Alle Einstellungen, Meldungen und Topics findest du in der Kurzanleitung zur MQTT-Version. Die Firmware ist quelloffen, den Quellcode gibt es auf GitHub.

Sicherheit geht vor

  • Nur in trockenen Innenräumen verwenden, nicht in explosionsgefährdeten Bereichen.
  • Keine Manipulation am Gaszähler vornehmen: nicht öffnen und keine Plomben beschädigen.
  • Bei Gasgeruch keine elektrischen Geräte bedienen, das Gebäude verlassen und von draußen den Notdienst deines Gasversorgers anrufen.
  • Für die Abrechnung gilt allein die Anzeige des Gaszählers.

Jetzt loslegen

So machst du deinen Gaszähler smart, auch ohne Home Assistant: Mit dem Bausatz und der fertigen MQTT-Firmware ist dein BK-G4 an einem Nachmittag in openHAB, ioBroker oder Node-RED, ganz ohne Programmieren. Im Bausatz steckt alles, was du dafür brauchst. Nur USB-C-Kabel und Netzteil fehlen.

Zum Bausatz mit ESP32-C3   Zum Web-Installer