WiFi ACM-ESP: Kommunikationsmodul für Elster BK-GxA Gaszähler

Das Modul WiFi ACM-ESP ermöglicht es, den Zählerstand von Honeywell / Elster / GWF BK-G Gaszählern mit montiertem Absolute Encoder auszulesen. Dieser Absolut Encoder des Zählers tastet die einzelnen Stellen des Zählwerks optoelektronisch ab und bietet eine elektronische Schnittstelle, über die der absolute Zählerwert abgefragt werden kann. Im Gegensatz zu einfachen optischen oder magnetischen Impulszählern steht dabei immer der im Zählerfenster ablesbare Messwert zur Verfügung, so dass kein manuelles Nachtragen oder Korrigieren nötig ist. Das WiFi ACM-ESP bucht sich stündlich in ein vorhandenes WiFi Netz ein, fragt den Zählerstand des Zählers ab und kann die Messwerte an unterschiedliche Datensenken weitergeben. Für den Betrieb ist dank des geringen Strombedarfs kein Netzspannungsanschluss erforderlich. Für den Betrieb an einem Netzteil bleibt das Modul mit der Einstellung „no sleep“ aktiv so dass der Zähler alle 15 s ausgelesen wird und die Daten übermittelt werden.

Voraussetzungen

  • Honeywell / Elster /GwF Gaszähler BK-G2,5A, BK-G2,5AT, BK-G4A, BK-G4AT, BK-G6A, BK-G6AT, … mit Absolut Encoder AE2, AE3 oder AE5 in einer der folgenden Protokollvarianten (auf dem Ziffernblatt des Zählers angegeben, weitere auf Anfrage):
    AE.02:02.01:01.01
    AE.03:05.01:01.01
    AE.03:05.01:02.01
    AE.05:05.01:01.01
    Achtung! Die Zähler BK-G4, BK-G6, …, (ohne Endung A oder AT) sind nicht mit dem WiFi ACM-ESP Modul kompatibel, diese sind nicht mit der ACM Schnittstelle ausgestattet, auch nicht wenn ein gleich aussehender Anschluss vorhanden ist.
  • WiFi ACM-ESP Kommunikationsmodul für Elster Gaszähler
  • 2 Mignonzellen (AA)
  • Geeignete Datensenke, z. B. ein Account bei Emoncms.org, InfluxDB Cloud, oder ein Raspberry PI mit installiertem MQTT Broker

Installation & Einrichtung

  • Blinddeckel des Zählers abschrauben, Kommunikationsmodul auf Absolut Encoder aufstecken und mit M3 Schraube fixieren. Achtung, Schraube nicht zu fest anziehen!
  • Modul mit 2 AA Batterien bestücken
  • Taste „RST/CONFIG“ lange drücken, bis die blaue LED 2x blinkt. Das Modul befindet sich nun im Konfigurationsmodus. Im Konfigurationsmodus bleibt das Modul daueraktiv und im WiFi eingebucht, so dass dessen Webinterface zur Konfiguration erreichbar ist. Achtung, dieser Modus ist nur zu Konfigurations- und Testzwecken geeignet, da die Batterien so schnell verbraucht werden!
  • Das WiFi ACM-ESP spannt einen WiFi Access Point mit der SSID „WiFi ACM-ESP“ auf. Mit einem WiFi-fähigen Gerät, etwa einem Smartphone, Tablet, Notebook etc. mit diesem Access Point Verbindung aufnehmen. Das vorkonfigurierte Passwort lautet „12345678“.
  • Mit einem Browser zur Adresse http://4.3.2.1 navigieren.
  • Unter dem Bereich „WiFi“ auf den Button „scan“ klicken. Nach einem kurzen Moment werden alle erreichbaren Access Points aufgelistet. Gewünschten Accesspoint auswählen, Passwort angeben und den Button „save“ klicken. Bei korrekten Zugangsdaten ändert sich der Verbindungszustand auf „connected“ und die IP Adresse des Moduls wird angezeigt.
  • Im Abschnitt „Data targets“ gewünschte Datensenke(n) hinzufügen, konfigurieren und abschließend mit dem Button „save“ die Einstellungen speichern. Durch das Speichern wird automatisch eine Datenübermittlung angestoßen, insofern ein Messwert vom Zähler abgefragt werden konnte. Die Ergebnisse der Datenübermittlungen werden unter den jeweiligen Konfigurationsabschnitten dargestellt.
  • Nach Abschluss und Speichern der Konfiguration ganz unten mit dem Button „reboot“ das Modul neu starten. Das Modul ist nun nicht mehr über WiFi zur Konfiguration erreichbar, sondern erwacht lediglich ca. 1x pro Stunde kurz um die Messwerte vom Zähler abzufragen und an die Datensenken zu übertragen.
Konfigurationsoberfläche des WiFi ACM-ESP mit erfolgreicher Kommunikation zum Zähler und verbundenem WiFi

Datensenken

MQTT

Meldet an einen MQTT-Broker, über den z. B. Home Assistant mit den Messwerten versorgt werden kann. Das MQTT-Topic lautet home/acm-esp/<meter ID>. Der MQTT-Payload besteht aus einem JSON Objekt:

{
  "id": "12345678",
  "manufacturer": 5523,
  "version": 129,
  "medium": 3,
  "access_no": 1,
  "status": "0",
  "signature": "0",
  "values": [
    {
      "vif": 19,
      "code": 2,
      "scalar": -3,
      "value_raw": 12905630,
      "value_scaled": 12905.63
    }
  ],
  "bat": 754,
  "millis": 3277
}

Der Wert „values“ kann seiner Struktur variieren, manche Zähler liefern zwei Elemente im Array wobei im ersten Element die Zählernummer angegeben wird.

InfluxDB / InfluxDB2

InfluxDB Cloud

Der Dienst InfluxDB Cloud von influxdata erlaubt es die Messwerte in dessen Cloud abzuspeichern und mit konfigurierbaren Dashboards darzustellen.

Einrichtung

  • Account bei InfluxDB Cloud erstellen und bei InfluxDB Cloud 2.0 einloggen
  • Im Menü unter „Load Data“ den Punkt „Sources“ wählen und unter Abschnitt „Client Libraries“ den Punkt „Arduino“ wählen. In der erscheinenden Installationskette den Punkt „Initialize Client“ aufrufen. Rechts unter „Select or create a bucket“ einen Bucket erstellen oder einen bestehenden auswählen.
  • Darunter im Abschnitt „Configure an InfluxDB profile“ aus dem Quellcode die Strings INFLUXDB_URL, INFLUXDB_TOKEN, INFLUXDB_ORG und INFLUXDB_BUCKET entsprechend im WiFi ACM-ESP unter url, token, org und bucket übertragen.
  • In der Installationskette den letzten Punkt „finish“ anklicken.

Emoncms

Übermittelt die Daten über HTTP(S) an eine Emoncms-Instanz (Cloud oder selfhosted). Siehe Open Energy Monitor und Emoncms.org.

Konfigurationsoberfläche des WiFi ACM-ESP Abschnitt Data targets, hier mit konfiguriertem InfluxDB Cloud Account und Datenübermittlung an einen MQTT Broker

Anbindung an Home Assistant

Die Messwerte des WiFi ACM-ESP können von einer Home Assistant Instanz über MQTT abgegriffen werden, so dass der Gasverbrauch auf dessen Energie-Dashboard übersichtlich visualisiert werden kann:

Visualisierung auf dem Energie Dashboard von Home Assistant

Für die Einbindung muss zunächst in der Konfiguration von Home Assistant (configuration.yaml) ein Sensor für den Zählerwert angelegt werden. Anstelle von xxxxxxxx ist die ID des Zählers anzugeben.

mqtt:
  sensor:
    - unique_id: 'gas_xxxxxxxx'
      name: 'Gaszähler'
      state_topic: 'home/acm-esp/xxxxxxxx'
      json_attributes_topic: 'home/acm-esp/xxxxxxxx'
      value_template: '{{ value_json["vol_m3"] }}'
      unit_of_measurement: m³
      device_class: gas
      state_class: total_increasing
      last_reset_value_template: '1970-01-01T00:00:00+00:00'
      last_reset_topic: 'DummyResetTopic'

Nach einem Neustart des Home Assistant unter Einstellungen -> Dashboards -> Energie
im Abschnitt „Gasverbrauch“ auf „Gasquelle hinzufügen“ klicken und den oben angelegten Sensor auswählen.

Ab Firmware 1.15 wird im Konfigurationsmodus automatisch eine MQTT Autodiscovery-Nachricht an den MQTT Broker geschickt insofern ein MQTT Target im WiFi ACM-ESP eingetragen ist. Der Sensor muss so nicht mehr händisch wie oben in die Konfiguration von Homeassistant eingetragen werden sondern taucht automatisch in der Übersicht auf. Das Topic der Discovery-Nachricht lautet homeassistant/sensor/acmesp/xxxxxxxx/config, der Inhalt:

{
  "name": "ACM-ESP-xxxxxxxx",
  "device_class": "gas",
  "unit_of_measurement": "m³",
  "state_class": "total_increasing",
  "state_topic": "home/acm-esp/xxxxxxxx",
  "json_attributes_topic": "home/acm-esp/xxxxxxxx",
  "unique_id": "acm-esp-xxxxxxxx",
  "value_template": "{{ value_json['vol_m3'] }}",
  "expire_after": 3900
}

Tagesverbrauch in Node-RED berechnen und anzeigen

Anzeige des aktuellen Tagesverbrauchs im Node-RED Dashboard

Dieser Node-RED Flow berechnet aus den MQTT Daten des WiFi ACM-ESP den aufgelaufenen Verbrauch und die Kosten des aktuellen Tags.

Node-RED Flow für Verbrauch und Kosten des aktuellen Tags

Firmwareupdate

Die Software kann über die Weboberfläche des WiFi ESP-ACMs aktualisiert werden. Dazu das Modul in den Konfigurationsmodus bringen (Taste Rst/Config lange drücken bis die LED 2x blinkt), mit einem Browser die Weboberfläche öffnen und unter dem Abschnitt Firmwareupdate die Software hochladen. Nach dem Updatevorgang startet das WiFi ACM-ESP neu und muss ggf. über die Taste erneut in den Konfigurationsmodus gesetzt werden.

1.1513.2.23Send MQTT Autodiscovery messages for Home Assistant
1.1613.3.23Configurable MQTT topic
„no sleep“ option for power supply
1.178.5.23Fix protocolparser for some meters
Formating of volume in webUI

Haftungsausschluss

Für jegliche Schäden an Personen, Geräten oder Gegenständen, die durch Installation und Betrieb dieses Moduls entstehen, übernehmen wir keinerlei Haftung. Die Installation und der Betrieb des WiFi ACM-ESP Moduls geschieht auf eigene Verantwortung.