BK-G4 Gaszähler mit ESPHome und Home Assistant auslesen

Mit dem Reedkontakt für BK-G4 Gaszähler mit ESP32-C3 Gehäuse von NG3D-Druck lässt sich der Gasverbrauch präzise, dauerhaft und vollautomatisch in Home Assistant erfassen. Der Sensor wird außen am Gaszähler montiert und benötigt keinen Eingriff in den Gaszähler.

Der Reedkontakt erfasst die Impulse des mechanischen BK-G4 Gaszählers, zählt und speichert den Zählerstand dauerhaft und wandelt die Impulse mithilfe von ESPHome in exakte Verbrauchswerte in Kubikmetern (m³) um. Der integrierte ESP32-C3 überträgt den aktuellen Zählerstand alle 60 Sekunden per WLAN direkt an Home Assistant.

Jeder erkannte Impuls wird zusätzlich durch ein kurzes grünes Blinken der integrierten LED signalisiert. Der Gaszähler steht damit als Sensor für Energie-Dashboard, Statistiken und Automationen in Home Assistant zur Verfügung – zuverlässig, transparent und optimal in dein Smart-Home integriert.

 

Voraussetzungen

Für diese Anleitung werden folgende Komponenten benötigt:

Schritt 1: Reedkontakt an ESP32-C3 anschließen

Der Reedkontakt wird in ESPHome als binärer Sensor betrieben und erfasst die Impulse des Bk-G4 Gaszählers. Dafür sind nur zwei Anschlüsse notwendig.

Anschlussbelegung zwischen Reedkontakt  und ESP32-C3

Ein Kontakt des Reedkontakts → GND
Zweiter Kontakt → GPIO 4

ℹ️ Der interne Pull-up-Widerstand des ESP32 wird genutzt, daher ist kein externer Widerstand erforderlich.

Schritt 2: ESPHome-Gerät für den Gaszähler anlegen

  • Öffne Home Assistant
  • Wechsle zu ESPHome Device Builder
  • Halte die BOOT-Taste am ESP32-C3 gedrückt, während du den ESP32-C3 per USB mit dem PC verbindest 
  • Klicke auf NEW DEVICE
  • Wähle New Device Setup
  • Vergib einen Namen, z. B. BK_G4_Gaszaehler, weiter mit Next
  • Klicke auf Connect
  • Wähle den passenden USB-Port (COM)
⚠️ Hinweis zu Treiberproblemen
Wird der ESP32-C3 nicht erkannt oder kein COM-Port angezeigt, fehlen meist die USB-Treiber. Diese können hier geladen werden: Waveshare ESP32-C3 Treiber . Nach der Installation den ESP32-C3 erneut anschließen.

 


Die Installation dauert ca. 2–3 Minuten.

Nach Abschluss kann die Meldung
„Configuration created but unable to detect the device on the network“
erscheinen – diese kann mit CLOSE geschlossen werden.

Drücke anschließend einmal die RESET-Taste am ESP32-C3.

Jetzt sollte das Gerät im ESPHome Builder als online angezeigt werden.

Schritt 3: ESPHome-Konfiguration für den Gaszähler anpassen

  • Klicke im ESPHome Builder auf der Gerätekarte auf Edit
  • Füge den erforderlichen Codeblock unter captive_portal: ein (Beispiel)


globals:
  - id: pulses_sum
    type: int
    restore_value: yes
    initial_value: '123456'           ### Gaszählerstand eingeben

# Onboard WS2812 LED (GPIO10) 
light:
  - platform: esp32_rmt_led_strip
    id: onboard_led
    internal: true
    pin: GPIO10
    num_leds: 1
    rgb_order: RGB   
    chipset: WS2812


script:
  - id: blink_green
    mode: restart
    then:
      - light.turn_on:
          id: onboard_led
          red: 0%
          green: 100%
          blue: 0%
          transition_length: 0s
      - delay: 500ms
      - light.turn_off:
          id: onboard_led
          transition_length: 0s

# Reedkontakt 
binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: GPIO4
      mode: INPUT_PULLUP 
      inverted: true
    name: "Live-Impuls"
    filters:
      - delayed_on: 20ms
      - delayed_off: 20ms
    on_press:
      then:
        - lambda: id(pulses_sum) += 1;
        - script.execute: blink_green

# Gaszählerstand als Sensor
sensor:
  - platform: template
    name: "Gaszaehler"
   update_interval: 60s
    device_class: gas
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2              ### ggf. Nachkommastellen anpassen
    lambda: |-                        ### ggf. Umrechnungsfaktor anpassen
      return id(pulses_sum) * 0.01;   
  • Trage deinen aktuellen Gaszählerstand ein 
    initial_value:"163129"
    • Ohne letzte Ziffer
    • Ohne Komma
  • entsprechend deinem Gaszähler (Impulswert pro m³) passe  den Umrechnungsfaktor an
    return id(pulses_sum) * 0.01

    Reedkontakt mit ESP32-C3 Gehäuse. Kompaktes auslesen von BK-G4 Gaszählern

     

    • Klicke oben rechts auf INSTALL
    • Wähle Wirelessly, um die Konfiguration kabellos zu übertragen
    • Nach Abschluss des Vorgangs ist die Software kompiliert und erfolgreich auf dem ESP32-C3 installiert.
      Der ESP32-C3 startet anschließend automatisch neu und verbindet sich mit dem WLAN.

    Schritt 4: Gaszähler in Home Assistant integrieren

    Damit der Gaszähler in Home Assistant verfügbar ist, muss das ESPHome-Gerät einmalig eingebunden werden.

    • Öffne den ESPHome Builder in Home Assistant
    • Klicke auf der Gerätekarte des Gaszählers auf das Drei-Punkte-Menü
    • Wähle Show API Key und kopiere den angezeigten API-Key
      • Der API-Key wird für die Verbindung zwischen ESPHome und Home Assistant benötigt
    • Wechsle in Home Assistant zu:
      Einstellungen → Geräte & Dienste → ESPHome
    • Das Gerät sollte dort automatisch als entdeckt angezeigt werden

    • Klicke auf Hinzufügen und bestätige den Vorgang
    • Gib den API-Key ein, falls du dazu aufgefordert wirst
    • Nach erfolgreicher Einrichtung ist der Gaszähler-Sensor in Home Assistant verfügbar und kann verwendet werden