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 in einem einstellbaren Zeitintervall ausgelesen wird und die Daten übermittelt werden.

Inhaltsverzeichnis

Voraussetzungen

  • Honeywell / Elster / GwF Gaszähler BK-G2,5, BK-G4, BK-G6, … 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.03:05.01:03.01
    AE.05:05.01:01.01
    AE.05:05.01:02.01
    AE.05:05.01:03.01
    Achtung! Zähler ohne Protokollangabe sind nicht mit dem WiFi ACM-ESP kompatibel. Diese sind mit einer M-Bus-Schnittstelle anstatt einer ACM-Schnittstelle ausgestattet. auch 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, ThinkgSpeak 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. Die mitgelieferte Kunstoffscheibe kommt zwischen den Zähler und das WiFi ACM ESP. 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 je nach Einstellung jede Stunde oder alle 3 Stunden um die Messwerte vom Zähler abzufragen und an die Datensenken zu übertragen.
  • Dauerbetrieb und Zeitintervall: Wird das Modul mit einem Netzteil betrieben kann es mit der Option „no sleep“ im Dauerbetrieb gehalten werden. So bleibt es im WLAN eingebucht und kann jederzeit abgefragt werden. Die Daten können so auch in kleinen Zeitintervallen, z. B. 10 s, ausgelesen und übermittelt werden.
  • Auf Auslieferungszustand zurücksetzen (ab Firmware 1.18): Taster gedrückt halten bis die LED an bleibt. Dadurch werden die WiFi- und Datensenkeneinstellungen gelöscht.
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 standardmäßig home/wifi-acmesp/<MAC>/state und kann umkonfiguriert werden. Der MQTT-Payload besteht aus einem JSON Objekt:

{
  "meter": {
    "address": 0,
    "id": "12345678",
    "manufacturer": "1593",
    "version": 37,
    "medium": 3,
    "access_no": 18,
    "status": "0",
    "signature": "0",
    "values": [
      {
        "vif": 37690,
        "code": 2,
        "scalar": -3,
        "value_raw": 4267073,
        "value_scaled": 4267.073
      }
    ]
  },
  "millis": 9934668,
  "battery_mv": 2800,
  "vol_m3": 4267.073
}

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

ThingSpeak

Übermittelt die Daten über HTTPS an den Dienst ThingSpeak (kostenfreier Account möglich). In Feld 1 wird der Zählerstand, in Feld 2 die Batteriespannung geschrieben. Die Daten können so komfortabel, z. B. mit einem ThingSpeak Widget, auf einem Mobilgerät dargestellt werden.

HTTP

Übermittelt die Daten an einen HTTP(S) Server. Mit der Methode GET werden die Werte id, vol_m3 und battery_mv als URL Parameter an einen HTTP(S) Server übermittelt. Bei der Methode POST werden die selben Parameter in einem JSON Objekt mit einem POST Aufruf gesendet. So lassen sich die Daten z. B. an eine Node-RED Installation oder an einen eigenen Webserver, z. B. mit einem PHP Endpunkt übermitteln. Hier ist ein Beispiel-Flow für einen HTTP Endpunkt in Node-RED:

[{"id":"b3b9fc90.150f28","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"f7bfa558.3ba5b","type":"http response","z":"b3b9fc90.150f28","name":"","statusCode":"200","headers":{},"x":520,"y":100,"wires":[]},{"id":"ee5b8766.97b418","type":"template","z":"b3b9fc90.150f28","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ok","output":"str","x":360,"y":100,"wires":[["f7bfa558.3ba5b"]]},{"id":"3f4aeb69.99d024","type":"http in","z":"b3b9fc90.150f28","name":"","url":"/data","method":"post","upload":false,"swaggerDoc":"","x":190,"y":100,"wires":[["ee5b8766.97b418","b44e7b81.af2f8","5598e866.abb218","fbf52eb5.feaaa"]]},{"id":"b44e7b81.af2f8","type":"ui_text","z":"b3b9fc90.150f28","group":"651f354e.04c97c","order":2,"width":0,"height":0,"name":"","label":"Zählerstand","format":"{{msg.payload.vol_m3}} m³","layout":"row-spread","x":370,"y":200,"wires":[]},{"id":"5598e866.abb218","type":"ui_text","z":"b3b9fc90.150f28","group":"651f354e.04c97c","order":2,"width":0,"height":0,"name":"","label":"Zähler ID","format":"{{msg.payload.id}}","layout":"row-spread","x":360,"y":160,"wires":[]},{"id":"fbf52eb5.feaaa","type":"ui_text","z":"b3b9fc90.150f28","group":"651f354e.04c97c","order":2,"width":0,"height":0,"name":"","label":"Batterie","format":"{{msg.payload.battery_mv}} mV","layout":"row-spread","x":360,"y":240,"wires":[]},{"id":"651f354e.04c97c","type":"ui_group","name":"Gaszähler","tab":"3c9b4e17.5d49ea","order":8,"disp":true,"width":"6","collapse":false},{"id":"3c9b4e17.5d49ea","type":"ui_tab","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]

Die URL für das HTTP Target lautet hier http://<server>/data.

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

Die Einbindung in Home Assistant geht ab Firmwareversion 1.21 automatisch von statten. Das WiFi ACM-ESP schickt dazu einige MQTT discovery Nachrichten so dass in Home Assistant automatisch ein Device mit 3 Entitäten angelegt wird für Zählernummer (meterid), Zählerstand (volume) und Batteriespannung (batterymv). Dazu muss im WiFi ACM-ESP ein MQTT Target angelegt und konfiguriert werden. In Home Assistant muss die MQTT Integration aktiviert werden.

Anschließend in Home Assistant unter Einstellungen -> Dashboards -> Energie
im Abschnitt „Gasverbrauch“ auf „Gasquelle hinzufügen“ klicken und den entsprechenden Sensor auswählen.

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 Firmware 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
1.1821.8.23Improved WiFi scanning
Hint in webUI when in configuration mode
factory reset
1.196.10.23Configurable read interval in „no sleep mode“
support for new VIF
1.2122.11.23Support ThingSpeak as datatarget
Send MQTT autodiscovery with device information for Home Assistant
Captive portal
Support variable length fields in M-bus data
1.224.12.23Calculate flow
Increase buffer for discovery messages
1.2326.2.24Configurable deep sleep time
more memory space for config settings
Merge InfluxDB Cloud / 2 targets
Report last delta volume
1.249.7.24MQTT keep alive in no-battery-mode
1.258.11.24Added HTTP target
Fix multiple targets

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.