WiFi ACM-ESP: Kommunikationsmodul für BK-G..A und BK-G..AT Gaszähler
Das Modul WiFi ACM-ESP ermöglicht es, den Zählerstand von Honeywell / Elster / GWF BK-G Gaszählern mit eingebautem 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. Im Batteriebetrieb bucht sich das WiFi ACM-ESP stündlich in ein vorhandenes WiFi Netz ein, fragt den Zählerstand des Zählers ab und kann die Messwerte an unterschiedliche Datensenken übermitteln. Für den Betrieb ist dank des geringen Strombedarfs kein Netzspannungsanschluss erforderlich. Alternativ kann das Modul mit einem USB-C Netzteil versorgt werden, so dass die Messwerte in Echtzeit abgerufen werden können.
Inhaltsverzeichnis
- Voraussetzungen
- Installation & Einrichtung
- Datensenken
- Anbindung an Home Assistant
- Tagesverbrauch in Node-RED berechnen und anzeigen
- Gateway-Betrieb
- Firmwareupdate
- Haftungsausschluss
Voraussetzungen
- Honeywell / Elster / GwF Gaszähler BK-G2,5A, BK-G4A, BK-G6A … mit Absolut Encoder AE2, AE3 oder AE5 in einer der folgenden Protokollvarianten (auf dem Typenschild des Zählers angegeben, weitere auf Anfrage):
AE.02:02.01:01.01
AE.02:04.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 und ohne die Endung A oder AT 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. Als Alternative bietet sich der Smartnetz Smart Gas Reader mit magnetischer Abtastung der Zählimpulse an. - WiFi ACM-ESP Kommunikationsmodul für Elster Gaszähler
- 2 Mignonzellen (AA) oder USB-C Netzteil
- Geeignete Datensenke, z.B. ein Account bei ACM ESP-Cloud, Emoncms.org, InfluxDB Cloud, ThingSpeak oder ein Raspberry PI z.B. mit MQTT Broker. Im Netzteilbetrieb wird nicht zwingend eine Datensenke benötigt, der Zählerstand kann einfach jederzeit über die Weboberfläche des WiFi ACM-ESP abgefragt werden.
Installation & Einrichtung
Montage
- Die Schnittstelle des Zählers befindet sich hinter einem Kunststoffdeckel, gehalten von einer M3 Schraube. 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 oder USB-C Netzteil anschließen
- 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!
Mit WiFi-Netzwerk verbinden
- Das WiFi ACM-ESP öffnet zur Konfiguration einen WiFi Access Point mit der SSID
WiFi ACM-ESP. Mit einem WiFi-fähigen Gerät, etwa einem Smartphone, Tablet, Notebook etc. mit diesem Access Point Verbindung aufnehmen. Das vorkonfigurierte Passwort lautet12345678. - Mit einem Browser zur Adresse
http://4.3.2.1navigieren. - Bei richtig verbundenem Zähler werden dort bereits Zählernummer und -stand angezeigt.
- 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. Das WiFi ACM-ESP ist nun mit dem Netzwerk verbunden.
- WiFi Verbindung mit dem eigenen Netzwerk wieder aufnehmen und die Konfigurationsoberfläche des WiFi ACM-ESP über dessen IP Adresse öffnen.
Konfiguration
- Im Abschnitt „Data targets“ gewünschte Datensenke(n) hinzufügen, entsprechend konfigurieren und abschließend mit dem Button „save“ die Einstellungen speichern. Details zur Konfiguration der einzelnen Datensenken finden sich im Abschnitt „Datensenken“. 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 in den jeweiligen Konfigurationsabschnitten dargestellt.
- 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.
- Nach Abschluss und Speichern der Konfiguration ganz oben in der blauen Zeile mit dem Button „quit“ den Konfigurationsmodus verlassen. Im Batteriebetrieb ist das Modul nun nicht mehr über WiFi erreichbar, sondern erwacht lediglich je nach Einstellung, z.B. 1x pro Stunde, um die Messwerte vom Zähler abzufragen und an die Datensenken zu übertragen.
Auslieferungszustand
Um das WiFi ACM-ESP auf den Auslieferungszustand zurücksetzen (ab Firmware 1.18) den Taster gedrückt halten (ca. 10 s) bis die LED an bleibt. Dadurch werden alle WiFi- und Datensenkeneinstellungen gelöscht.

Datensenken
ACM-ESP cloud
Meldet an die ACM-ESP cloud, welche speziell für die Erfassung und Visualisierung der Daten des WiFi ACM-ESP entwickelt wurde. Diese Variante bietet sich an, wenn keine weitere Infrastruktur wie MQTT Broker etc. zur Verfügung steht. Die ACM-ESP cloud ist auf Übersichtlichkeit und einfache Einrichtung ausgelegt. Der Service steht für 3 Monate kostenfrei beim Erwerb eines WiFi ACM-ESP zur Verfügung, anschließend für nur 1 € / Monat. In der ACM-ESP cloud wird jeweils zu jeder vollen Stunde, zu jedem vollen Tag, zu jeder vollen Woche und zu jedem vollen Monat der Zählerstand und der Verbrauch zum Anfang des jeweiligen Zeitabschnitts abgelegt. Jeder Zeitbereich in der ACM-ESP cloud wird jeweils mit einem Liniendiagramm, welches die Zählerstände darstellt, und einem Balkendiagramm, welches die Verbrauchswerte darstellt, erfasst.


Einrichtung
- Das WiFi ACM-ESP zunächst wie im Abschnitt „Installation & Einrichtung“ an den Zähler montieren, mit dem WiFi Netzwerk verbinden und über das eigene WiFi-Netzwerk (!) die Konfigurationsoberfläche des WiFi ACM-ESP aufrufen. Die IP Adresse des WiFi ACM-ESP im eigenen Netzwerk wird nach dem Verbindungsaufbau in der Konfigurationsoberfläche angezeigt.
- In der Konfigurationsoberfläche des WiFi ACM-ESP unter Abschnitt „datatargets“ den Eintrag „ACM-ESP cloud“ auswählen und den add Button klicken.
- Den nun sichtbaren Link „Register meter in ACM-ESP cloud“ anklicken.

- Daraufhin öffnet sich das Registrierungsportal der ACM-ESP cloud. Dort eine E-Mail Adresse angeben, an die der APIKEY gesendet wird.
- Die per E-Mail erhaltenen Schritte durchführen. (Bestätigungslink anklicken und APIKEY im WiFi ACM-ESP eintragen und speichern)
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 in 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_ORGundINFLUXDB_BUCKETentsprechend 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.

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 abgelegt. 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:

Die Einbindung in Home Assistant geht ab Firmwareversion 1.21 automatisch vonstatten. Das WiFi ACM-ESP schickt dazu einige MQTT discovery Nachrichten, so dass in Home Assistant automatisch ein Device mit drei 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

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

Gateway-Betrieb
Mit der Option „Gatewaymode“ (nur im Dauerbetrieb mit Netzgerät möglich) wird die serielle ACM Schnittstelle zum Zähler über einen TCP Server auf Port 4455 transparent zur Verfügung gestellt. So kann mit dem Zähler direkt mit einer geeigneten Software kommuniziert werden. Im Gateway-Betrieb sendet das WiFi ACM-ESP keine eigenen Requests zum Zähler so dass alle Datensenken und die Anzeige im webUI deaktiviert sind.
libmbus
Die quelloffene in C geschriebene Bibliothek libmbus enthält zusätzlich einige Tools mit denen mit dem WiFi ACM-ESP kommuniziert werden kann.
~/libmbus/bin$ ./mbus-tcp-request-data 10.0.1.50 4455 254
<SlaveInformation>
<Id>12345678</Id>
<Manufacturer>ELS</Manufacturer>
<Version>129</Version>
<ProductName></ProductName>
<Medium>Gas</Medium>
<AccessNumber>97</AccessNumber>
<Status>00</Status>
<Signature>0000</Signature>
</SlaveInformation>
<DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Volume (m m^3)</Unit>
<Value>6273734</Value>
<Timestamp>2025-11-02T23:16:49Z</Timestamp>
</DataRecord>
pyMeterBus
Mit der Pythonimplementierung pyMeterBus kann ebenfalls der Zähler direkt ausgelesen werden:
~/pyMeterBus$ python3 -m tools.mbus-serial-request-data socket://10.0.1.50:4455
{
"body": {
"header": {
"access_no": 98,
"identification": "0x38, 0x94, 0x12, 0x73",
"manufacturer": "ELS",
"medium": "0x3",
"sign": "0x0, 0x0",
"status": "0x0",
"type": "0x72",
"version": "0x81"
},
"records": [
{
"function": "FunctionType.INSTANTANEOUS_VALUE",
"storage_number": 0,
"type": "VIFUnit.VOLUME",
"unit": "MeasureUnit.M3",
"value": 6273.73400000000037834979593753814697265625
}
]
},
"head": {
"a": "0x0",
"c": "0x8",
"crc": "0x10",
"length": "0x15",
"start": "0x68",
"stop": "0x16"
}
}
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. Ab Version 1.33 kann sich die Firmware des WiFi ACM-ESP selber direkt über den Server aktualisieren, dazu einfach im Konfigurationsmodus auf der Weboberfläche den install Button klicken.
| 1.15 | 13.2.23 | Send MQTT Autodiscovery messages for Home Assistant |
| 1.16 | 13.3.23 | Configurable MQTT topic „no sleep“ option for power supply |
| 1.17 | 8.5.23 | Fix protocolparser for some meters Formating of volume in webUI |
| 1.18 | 21.8.23 | Improved WiFi scanning Hint in webUI when in configuration mode factory reset |
| 1.19 | 6.10.23 | Configurable read interval in „no sleep mode“ support for new VIF |
| 1.21 | 22.11.23 | Support ThingSpeak as datatarget Send MQTT autodiscovery with device information for Home Assistant Captive portal Support variable length fields in M-bus data |
| 1.22 | 4.12.23 | Calculate flow Increase buffer for discovery messages |
| 1.23 | 26.2.24 | Configurable deep sleep time more memory space for config settings Merge InfluxDB Cloud / 2 targets Report last delta volume |
| 1.24 | 9.7.24 | MQTT keep alive in no-battery-mode |
| 1.25 | 8.11.24 | Added HTTP target Fix multiple targets |
| 1.26 | 10.1.25 | add flow sensor for home assistant remove battery sensor on power supply mode |
| 1.29 | 29.4.25 | fix number of decimal places in HTTP target |
| 1.30 | 26.5.25 | Redesign webUI New datatarget ACM-ESP cloud |
| 1.31 | 3.6.25 | Add log section in webUI Minor design improvents in webUI |
| 1.32 | 16.6.25 | Synchronize sleep time with ACMESP cloud MQTT: configurable retain |
| 1.33 | 23.6.25 | quit config button in webUI WiFi scan only on config mode ACMESP cloud sleep sync window ->1 % fix sleep settings in wenUI on reload HTTP server update |
| 1.34 | 30.6.25 | Improve ACMESP sync & webUI reboot behavior |
| 1.36 | 21.10.25 | Option for disabling webUI Configurable hostname Add RSSI sensor for home assistant Authentification for webUI |
| 1.37 | 5.11.2025 | Add MAC & HW version to MQTT device info Gatewaymode |
Die aktuelle Firmware kann unter https://acmesp.seegel-systeme.de/update/ heruntergeladen werden.
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 geschehen auf eigene Verantwortung.

Ich habe kürzlich auf Firmware 1.36 aktualisiert, nun hats dort neu die Option „WebUI only in config mode“. Ich nutze das Modul mit einem USB-C Power Supply, gibt es irgendwelche Nachteile wenn ich ihn konstant im Config Mode nutze? Aktuell muss ich jedesmal, wenn ich ein Update machen möchte, das Gehäuse aufschrauben und in den Config Mode wechseln… daher überleg ich die Option zu aktivieren.
Ich kann leider meinen Kommentar nicht mehr löschen, daher antworte ich mir hier selber. Ich habe den Menüpunkt vermutlich falsch verstanden, er soll wohl eher heissen dass das WebGUI nur im Config Mode verfügbar ist und nicht dass das WebGUI immer im Config Mode ist…
Hallo,
von einem dauerhaften Betrieb im Configmode rate ich aus Sicherheitsgründen ab, da dort der Accesspoint dauerhaft aktiv ist. Alternativ könnte man in den Deckel ein kleines Loch bohren so dass der Knopf mit einer Nadel o. Ä. zu erreichen ist.
Ich habe vor einiger Zeit mir einen WiFi ACM ESP hier gekauft. Ich betreibe ihn mit einem „LED Trafo Batteriadapater“. Habe den Auslesekopf also im „no sleep“ mode. Aktuelle Firmware 1.24.
Leider kommt es abundzu mal vor, dass sich dieser aufhängt, weshalb ich dachte es wäre auch mal an der Zeit die Firmware zu aktualisieren. Ich musse nun jedoch feststellen, dass dies nicht geht.
Wenn ich mich einfach auf dem Webinterface einlogge, gibt es dafür keine Option. Wenn ich den Config-Button „lange“ drücke, dann schaltet sich das Gerät entweder aus, oder es tut sich nichts an der Weboberfläche. Das „zweimal blinken“ passiert bei mir auch nicht (es sei denn, wir sprechen hier von einem sehr sehr schwachen blinken.
Wie schaffe ich es nun die Firmware zu installieren?
Versuchen sie mal den Updatevorgang mit Batterien durchzuführen. Manche Netzteile liefern nicht stabil genug Strom, im Configmode ist mehr Strom nötig weil dann der Access Point aktiv ist.
Danke für die schnelle Antwort. Mit Batterien hat es tatsächlich direkt funktioniert. Wie viel Spannung muss das Netzteil denn mindestens zur Verfügung stellen, damit der „Sensor“ sauber betrieben werden kann, ohne, dass zwischendrin Abstürze stattfinden?
Das lässt sich leider nur anhand der Spannung nicht festmachen; das Netzteil sollte 3 V liefern und muss ausreichend Strom zur Verfügung ( > 500 mA) stellen und die Spannung muss bei Lastwechsel ausreichend stabil bleiben. Bei mir funktioniert es z. B. mit diesem Netzteil gut:
https://www.reichelt.de/de/de/shop/produkt/universal-schaltnetzteil_3_-_12_v_12_w_1000_ma-365987
Hallo, ich habe ein Problem mit meinem Modul ACM-ESP. Betreibe ich das Modul in der Konfiguration „no sleep“ läuft alles super. Die Werte kommen korrekt im eingestellten 60 Sekunden-Takt bei meinem MQTT-Broker an. Stelle ich aber die Konfiguration auf Sleep time 1h, werden nach dem Reboot keine Zähler-Werte mehr übertragen. Ich habe mehrere Stunden gewartet. Erst eine Änderung der Konfiguration zurück auf „no sleep“ bringt wieder Werte. Ich betreibe das Modul mit einem Netzteil.
Hallo,
die reine USB-Variante unterstützt den Sleepmodus hardwaremäßig nicht, heißt der Haken „no sleep“ muss aktiviert bleiben. Wenn das Modul nur jede Stunde melden soll stellen sie die Sleeptime einfach auf 3600 s.
Schöne Grüße
S. Seegel
Ist es möglich, die Home Assistant Autodiscovery Botschaft mit persist flag zu senden.
Ich habe das jetzt manuell gesetzt, weil ansonsten, nach einem Home Assistant Neustart die Sensoren weg sind.
Die Autodiscovery Botschaft wird ja nur einmal nach dem Einrichten als MQTT geschicht.
Hallo, ich denke es geht um das „retain“ Flag. Selbiges ist allerdings bereits gesetzt. Wenn ich das Topic mit einem MQTT Client abonniere:
mosquitto_sub -h koepi.fritz.box -v -t homeassistant/sensor/wifiacmesp_xxxxxx/#
werden sofort die 3 retained Autodiscoverynachrichten ausgegeben:
homeassistant/sensor/wifiacmesp_xxxxxx/volume/config {…}
homeassistant/sensor/wifiacmesp_xxxxxx/flow/config {…}
homeassistant/sensor/wifiacmesp_xxxxxx/meterId/config {…}
Danke für die schnelle Antwort, ich vermute dann liegt mein Problem wo anders.
Nach etwa 18-30 Stunden kommen keine Nachrichten mehr in MQTT an, aber auch das Homeassistant Topic ist dann weg, so dass ich nur wieder Daten abrufen kann, indem ich das ACM neu konfigueriere.
Ich glaube aber jetzt, dass sind zwei voneinander unabhängige Probleme.
Kommunikationsmodul dieses Wochenende initial in Betrieb genommen, hat alles wie am Schnürchen geklappt. Vorbehaltlos zu empfehlen, da kommt Freude auf!
Habe das neue Modul mit Firmware 1.28 problemlos Einrichten können.
Leider klappt die MQTT Übertragung zu iobroker nicht richtig.
Verbindung zum iobroker wird aufgebaut und die MQTT Nachrichten werden Empfangen. Die Dekodierung klappt aber nicht.
iobroker MQTT Protokoll sagt folgendes:stateChange mqtt.1.Gaszaehler.state: {„val“:“{\“millis\“:8884542,\“battery_mv\“:2931,\“meterId\“:\“43777xxx\“,\“vol_m3\“:241.019,\“flowAvg\“:0,\“flowInst\“:0,\“flowStatus\“:false,\“errorFlags\“:0,\“bootCount\“:74,\“mbusReqCount\“:11348,\“mbusRepCount\“:11334,\“wifiConCount\“:74,\“wifiDisCount\“:25}“,“ack“:true,“ts“:174457303xxx,“q“:0,“from“:“system.adapter.mqtt.1″,“user“:“system.user.admin“,“lc“:1744573xxx}
Andere Geräte von mir verwendete MQTT Geräte melden den JSON Baum one die Escapes: \“, also nur “ für die Text Delimiter. Das sieht dann so aus:
stateChange mqtt.0.sensors.Garden.temperature_F: {„val“:62.2,“ack“:true,“ts“:1744573756203,“q“:0,“from“:“system.adapter.mqtt.0″,“user“:“system.user.admin“,“lc“:1744573756203}
Gibt es eine Möglichkeit die \ zu entfernen?
Hallo,
ich kann die zusätzlichen Zeichen „\“ hier nicht beobachten. Sind die auch sichtbar wenn Sie die Nachrichten mit dem MQTT Tool ansehen (mosquitto_sub, MQTT Explorer, etc.):
pi@karopi:~ $ mosquitto_sub -h 192.168.178.78 -t „home/wifi-acmesp/#“
2
{„millis“:375880,“battery_mv“:2473,“meterId“:“32017598″,“vol_m3″:17446.05,“flowAvg“:0,“flowInst“:0,“flowStatus“:false,“errorFlags“:0,“bootCount“:1,“mbusReqCount“:37,“mbusRepCount“:37,“wifiConCount“:1,“wifiDisCount“:0}
Hallo Stefan, danke erstmal für das Modul. Geht super. Habe es über meine IP am laufen. ThinkSpeak läuft auch. Da ist die optisch Darstellen einfach nur billig. Nur ich bekomme es einfach nicht hin mit influx DB oder EmonCMS es einzurichten. Möchte es graphisch darstellen. Am besten auch auf dem Handy mit App. Kannst mir da bitte weiterhelfen ? Deine Beschreibung in der Anzeige ist für mich ein rotes Tuch 🙂
Wo genau hakt es denn?
Hallo Stefan, habe mir ein Zigbee Lan Gateway geholt und wollte dort den Gaszähler visualisieren usw… weiss aber nicht so richtig wo ich anfangen soll. Kannst mir da bitte weiterhelfen ?
Das Zigbee Lan Gateway kenne ich leider nicht, da werde ich nicht helfen können.
Was für ein Gateway empfielst da ? Was zusammen mit dem WiFi ACM-ESP arbeitet ?
Möchte die Daten am PC und per App auslesen und archivieren. Quasi den Verbrauch über Monate bzw. Jahre beobachten.
Bald wird die ACM-ESP cloud released, vielleicht ist das passend für Dich?
https://www.seegel-systeme.de/2022/12/21/wlan-acm-esp-kommunikationsmodul-fuer-elster-gaszaehler/#acmespcloud
Ich hab das neue USB-C Modul über Umwege geliefert bekommen (wohne in der Schweiz). Erste Amtshandlung war ein Loch im Gehäuse zu bohren für das Netzteil. Funktioniert alles perfekt. Ich nutze MQTT und empfange die Meldungen zwecks Auswertung auf dem Smart Home Hub Homey. Kann das Produkt nur weiterempfehlen bis jetzt.
Eine kleine Frage, was bedeutet der Wert „flowInst“?
Vielen Dank für die nette Nachricht! flowInst ist der berechnete Volumenstrom mit Hilfe der letzten beiden Messwerte. Dabei wird die Differenz aus den letzten beiden Zählerständen durch die Zeitdifferenz geteilt.
Hallo Stefan,
mein WiFi ACM-ESP meldet sich leider schon seit mehreren Monaten nicht mehr. Ich dachte zuerst, dass die Batterien leer sind. Diese habe ich nun getauscht und einen Reset durchgeführt., um nochmal alles neu zu konfigurieren. Den Access Point vom ESP32 sehe ich und ich kann diesem auch beitreten. Wenn ich aber die Weboberfläche laden möchte, passiert entweder fast gar nichts oder wenn sich die Seite mal aufbaut, kann ich weder ein Firmware Update auswählen, noch MQTT hinzufügen oder Wifi Netzwerke suchen. Die Batterien, die ich verwende sind neu. In den meisten Fällen, baut sich die Weboberfläche aber gar nicht auf. Hast du irgendeine Idee, was ich hier noch ausprobieren kann? Den Chip auslöten würde ich vorab ausschliessen, da fehlt mir das notwendige Feingefühl und vor allem das Werkzeug für.
Weihnachtliche Grüsse,
Alex
Hallo nochmal,
nach stundenlangem rumgebastel habe ich nun wieder alles am laufen. Anscheinend hat bei mir Chrome Probleme bei der Darstellung der Webseite. Mit Firefox konnte ich alles wie gewünscht in Betrieb nehmen.
Falls noch jemand über so ein Problem stolpert, könnte das eventuell ein Lösungsansatz sein
Ich habe einen Zähler vom Typ BK-G4 AT
mit deinem Zähler mit der Firmwareversion 1.25. In der MQTT-Message die im Homeassistant ankommt bekomme ich immer nur zwei Nachkommastellen (im Raw-Value ist die dritte Nachkommastellen immer eine Null. Liefert mein Zähler nur zwei Nachkommastellen?
meter:
address: 0
id: ‚37305xxx‘
manufacturer: ELS
version: 129
medium: 3
access_no: 1
status: ‚0‘
signature: ‚0‘
values:
– vif: 19
code: 2
scalar: -3
value_raw: 10899060
value_scaled: 10899.06
millis: 4399
battery_mv: 3225
vol_m3: 10899.06
Hallo Wolfgang,
ja, manche Zähler erfassen die letzte Stelle nicht so dass dort immer 0 geliefert wird.
Hallo Herr Seegel,
vielen Dank für das gut durchdachte und klar dokumentierte Produkt! Hat auf Anhieb funktioniert und bin schon fleißig dabei es weiterzuempfehlen!
Ich stelle die Frage mit begrenzter Hoffnung: Nach der Einbindung funktioniert der Upload zur Datenbank zwar wunderbar. Allerdings ist die WLAN Verbindung schlecht; sie schwankt zwischen phasenweise gut (Upload stündlich ok) und phasenweise schlecht (nur ein Upload / Tag). Da wir in einem Mehrfamilienhaus wohnen und das WLAN eines Nachbarn genutzt wird kann ich hier nur begrenzt eingreifen. Gibt es einen Weg, den ESP bzw. das Modul um ein externe Antenne zu erweitern? Löterfahrung wäre vorhanden…
Beste Grüße aus Dresden
Robert
Hallo Robert,
das könnte im Prinzip gehen wenn Du den ESP12 auf dem Gerät ablötest und durch einen ESP07s tauscht. Dieser hat einen Anschluss für eine externe Antenne. Zusätzlich brauchst Du dann noch einen entsprechenden Programmer den Du an den Programmieranschluss lötest. Das ganze habe ich aber selber nicht getestet. Vielleicht ist ein WiFi Repeater der einfachere Weg?
Schöne Grüße
Stefan
Vielen Dank für das tolle Produkt. 🙂
Ich konnte es mit Firmware 1.24 (Firmware-Update von 1.23 ging problemlos) an einem GWF gebrandeten Honeywell – vormals Elster – Zähler Modell BK-G4 A (Variante BGZcoder MP) und der Protokollvariante AE.05:05.01:03.01 (im Blogpost ist diese noch nicht explizit als kompatibel aufgeführt) in Betrieb nehmen.
Der Anschluss hatte zu Beginn einen Wackelkontakt (das Gerät hing auch etwas sehr schief auf dem Zähler) mit vielen „pending/timeout“, was ich jedoch mit 3 zusätzlichen Nylon-Unterlegscheiben (zwischen Rückseite des Plastik-Kästchens und dem Zähler) ausgleichen konnte.
Ist die Firmware (und allenfalls sogar das Schema?) irgendwo im Quelltext verfügbar, z.B. auf Github, so dass ich das selber erweitern könnte?
Was ich softwaremässig z.B. noch gut fände, wäre ein „Log“ (Anzahl Einträge konfigurierbar + Log via Webinterface löschbar) auf dem Gerät mit den in der Vergangenheit ausgelesenen Zählerständen plus Timestamp. Falls genügend Rechenleistung vorhanden ist(?), könnte man das sogar rudimentär im Webinterface als Grafik aufbereiten.
Auch wären weitere Datensenken noch praktisch, z.B. eine simple HTTP-GET-Datensenke (GET-Request mit konfigurierbaren Platzhaltern für die Werte in der URL) oder eine File-Datensenke (jeder Zählerstand appended einfach eine weitere Zeile in einem File auf einem Samba-Share oder einem (S)FTP-Server oder in einem Google Docs Sheet, so dass man nicht nur auf die bereits vorhandenen Datensenken – die alle irgendwelche aufwändigeren Server-Installationen bedingen – beschränkt wäre.
Hardwaremässig wäre eine erwerbbare „Always Online“-Variante mit DC-Jack oder sogar Ethernet+PoE natürlich auch noch sehr praktisch. Allenfalls könnte man ja einfach ein zweites/anderes/optionales Gehäuse mit DC-Jack und zwei Krokoklemmen anbieten?
Anyway, bitte das alles wirklich nur als konstruktive Anregungen verstehen und nicht als Kritik. 🙂 Und deswegen sage ich abschliessend auch nochmals: Danke für das tolle Produkt! 🙂
Hallo,
vielen Dank für Ihr Feedback! Die Protokollvariante habe ich im Blogpost eingetragen. Eine HTTP GET Datensenke ließe sich recht einfach einbauen, ich werde das in der nächsten Firmware berücksichtigen. Über eine Hardwareversion mit Netzteilanschluss habe ich auch schonmal nachgedacht, werde ich vielleicht mal in einer neuen Auflage umsetzen.
Schöne Grüße
Stefan Seegel
Hallo Herr Seegel,
Vielen dank für die schnelle Lieferung.
Leider wird mir auf der WEB-Seite kein Messwert angezeigt. Der Status springt zwischen pending & timeout hin und her. Die Gerate ID wird nicht erkannt, auch nicht nach 15 Minuten warten bei aktiven „no Sleep“ Funktion.
Die Werkseinstellungsprozedur habe ich zwei mal durchgeführt und auch ein Firmwareupdate auf 1.23 (war schon 1.23) führte nicht zum gewünschten Erfolg. Die Kontakte am Gaszähler sind nicht verbogen habe auch kurz die Heizung eingeschaltet (die derzeit auch ist) um den Gaszähler an der dritten Stelle hinterm Komma zu kurz zu bewegen.
Meine Gaszähler Typ ist ein BK-G4 AT (2018) die AE lautet 03:05:01:01:01
Das Einbinden in mein WLAN-Netz und an den MQTT Server hat funktioniert aber ohne Werte..
Was kann ich noch prüfen bzw. tun um Werte zu erhalten
VG aus dem Schwarzwald
Hallo,
ich werde mal ein Ersatzmodul rausschicken, wenn es damit auch nicht geht scheint der Zähler ein Problem zu haben.
Schöne Grüße aus Fürth
S. Seegel
Hallo, ich habe das Modul heute erhalten, soeben mit einigen Anfangsschwierigkeiten zumindest im Netzwerk zu laufen gebracht, die neueste Firmware installiert, eine InfluxDB eingebunden, ABER ich erhalte keine Werte vom Zähler und habe anscheinend das gleiche Problem wie mein Vorgänger.
Gibt es denn eine einfache Option zu prüfen, ob am Zähleranschluss überhaupt Daten geliefert werden? Oder ob das Modul einen Wackelkontakt hat, wie bei einem der anderen Kunden?
Spannungsmessgerät wäre vorhanden.
Derzeit läuft das Modul mit „always on“ aber da dürften die Batterien schnell leer sein.
Alternativ müsste man eine 3V Quelle an den Anschlüssen anlöten, korrekt?
Vielleicht wäre hier als weitere Alternative zu den vorgeschlagenen DC-Jack und Ethernet auch eine Mini-USB Stromversorgung eine einfache Option?
Ich kann ihnen auch gerne ein Bild vom Zähler senden. Wurde von den Stadtwerken Zirndorf verbaut und hat laut Aufdruck ebenfalls die Protokollversion AE 03:05.01:01.01 Sollte also eigentlich passen.
Ersatzmodul ist unterwegs!
Hallo, ich habe noch eine Frage. Ich habe folgende Stromversorgung besorgt:
https://www.amazon.de/dp/B0CH82YNK2?ref=ppx_yo2ov_dt_b_fed_asin_title
Aber damit funktioniert das Modul leider nicht. Es wird mit 3.2-3.3V gespeist und mit max. 1A – haben sie einen konkreten Vorschlag, mit welcher Alternative das Modul betrieben werden kann?
Das Ersatzmodul werde ich erst am Wochenende am Zähler testen können und melde mich dann wieder.
Hallo,
viele Netzteile sind leider nicht geeignet weil die Spannung nicht stabil genug ist. Bei mir verwende ich das Meanwell MW3R15GS eingestellt auf 3 V und mit Krokoklemmen an die Batterieklemmen gehängt.
Und ließe sich das Modul auch mit 3.4V oder 5V vom USB Port betreiben? Oder ist dann die Spannung bereits zu hoch? Meine anderen ESP Bausteine haben fast alle einen Mini-USB an Board, aber ich möchte die Schaltung auch nicht mit einer Überspannung kaputt machen. Ich suche erstmal weiter nach einer stabilen 3V Quelle.
Das Modul darf mit max. 3,3 V versorgt werden. ESP Bausteine mit USB Anschluss haben einen Spannungsregler integriert welcher von 5 V auf 3,3 V herunterregelt.
Sorry wenn ich hier mit vielen Fragen nerven sollte. Kann es sein, dass sich das Modul aufhängt, wenn die Webseite im normalen Betrieb in zu kurzer Zeit mehrfach aufgerufen wird? Das ist mir jetzt bereits 3x passiert. Ich habe inzwischen ein Netzteil mit stabilen 3V gefunden – das Modul scheint dann auch mal ne Stunde durchzulaufen, aber wenn ich die Webseite 2-3x zu schnell aufrufe hängt sich das ganze Teil auf und muss von Hand am Modul durchgestartet werden 🙁
Normalerweise geht das problemlos. Tritt das auch mit Batterien im No Sleep Modus auf? Auch mit dem Ersatzmodul? Wird inzwischen der Zählerstand angezeigt?
Also, Daten zum Zähler habe ich inzwischen hinbekommen – es scheint wirklich ein Wackelkontakt zu sein. Den Absturz der Webansicht über Batterie konnte ich noch nicht wirklich nachstellen, weil das Modul auch mit Batterie nicht stabil läuft. Im Always-On Modus sind Batterien nach nem halben Tag leer und im normalen Modus bei Einstellung 1h übermittelt das Modul manchmal alle 30min, manchmal stündlich, aber hängt sich ebenfalls nach ca. einem halben Tag auf. Irgendwie ist da der Wurm drin.
In einer Woche (9.12.) bekomme ich 2 weitere Netzteile, von denen es dann hoffentlich mit einem zumindest mal stabil läuft. Da der PC unterm Dach steht und das Modul im Keller ist es leider etwas aufwendig mit den verschiedenen Optionen.
Also, letzter Stand – mit dem Ersatzmodul und einem extra gekauften stabilen Netzteil bekomme ich nun regelmäßig Daten an die InfluxDB übermittelt. Soweit so gut. Die Webseite ist jedoch weiterhin nach 2-3 Aufrufen nicht mehr erreichbar und ich müsste das Modul jedes mal neu durchstarten, wenn ich die Daten überprüfen will bzw. auch, wenn ich eine neue Datensenke, wie zB MQTT hinterlegen möchte.
Ich habe parallel nun ein HomeAssistent auf nem alten RP3b+ aufgebaut, aber das MQTT läuft noch nicht, allerdings muss ich aktuell noch für jede Anpassung zum Testen erneut in den Keller und das Modul in den Config-Modus versetzen… Irgendwas läuft da noch immer nicht ganz rund 🙁
Aber zumindest auslesen und nach Influx schicken geht schon mal einigermaßen, aber optimal ists so noch nicht. VG
Hallo Herr Seegel,
ich habe mit HA und MQTT nun auch das Problem das nach Update von 1.19 auf 1.23 mir nur noch die Spannung angezeigt wird. Ganz selten alle paar Minuten kommt auch mal das Volumen. Ich glaube das Problem hatten andere auch schon. Ich konnte jedoch in den Kommentaren keine richtige Lösung ableiten. Können sie mir da bitte noch mal weiterhelfen? Das Gerät habe ich an einem Netzteil hängen. Anbei noch der Status.
{
„resetInfo“: „Software/System restart“,
„vol_m3“: 4840.017,
„decPlaces“: 3,
„flowAvg“: 0,
„flowInst“: 0,
„flowStatus“: false,
„millis“: 42129629,
„battery_mv“: 2660,
„configMode“: false,
„freeHeap“: 19112,
„dateTime“: „24.06.24 07:16:02“,
„firmware“: „1.23“,
„WiFi“: {
„status“: 3,
„mode“: 1,
„ipsta“: „192.168.22.146“,
„mac“: „34:94:54:9A:E5:C3“,
„hostname“: „wifiacmesp“,
„sta_ssid“: „Home“
},
„mbus“: {
„status“: 2,
„rxbuf“: „6815156808007289137140931525030f0000000c13170084046416“
},
„meter“: {
„address“: 0,
„id“: „40711389“,
„manufacturer“: „ELS“,
„version“: 37,
„medium“: 3,
„access_no“: 15,
„status“: „0“,
„signature“: „0“,
„values“: [
{
„vif“: 19,
„code“: 2,
„scalar“: -3,
„value_raw“: 4840017,
„value_scaled“: 4840.017
}
]
},
„results“: [
„ok“
]
}
Hallo,
der Status sieht soweit gut aus. Am besten mal mit einem MQTT client schauen ob die Nachrichten dort ankommen.
Hallo ich habe jetzt mal die Nachrichten mit einem MQTT Client mitgeschnitten. Der Grund bei mir wo der Sensor als inaktiv gekennzeichnet wird sind Status topics (home/wifi-acmesp/9AE5C3/status) die zwischen den state topics (home/wifi-acmesp/9AE5C3/state) ankommen.
Nach einer richtigen state Meldung wo der Gaszählerwert angezeigt wird kommt 22s später eine status Meldung 0 und eine mit 1. Hier springt der Sensor auf inaktiv. 24s später dann die gleiche Meldung noch einmal und dann 13s später eine mit status 2 und 1s dahinter dann wieder der state topic wo der Sensor wieder aktiv wird. Das wiederholt sich so dann im Minutentakt da das Read Intervall bei mir auf 60s steht.
No sleep ist bei mir aktiviert da ich ein Netzteil angeschlossen habe.
Die ankommenden Nachrichten sehen wie folgt aus
Received 16:24:12
QoS: 0
Payload: 0
Received 16:24:12
QoS: 0
Payload: 1
Received 16:24:36
QoS: 0
Payload: 0
Received 16:24:36
QoS: 0
Payload: 1
Received 16:24:49
QoS: 0
Payload: 2
Received 16:24:50
QoS: 0
Payload: meter:
address: 0
id: ‚40711389‘
manufacturer: ELS
version: 37
medium: 3
access_no: 104
status: ‚0‘
signature: ‚0‘
values:
– vif: 19
code: 2
scalar: -3
value_raw: 4840017
value_scaled: 4840.017
millis: 20044834
battery_mv: 2656
vol_m3: 4840.017
flowAvg: 0
flowInst: 0
flowStatus: false
Received 16:25:12
QoS: 0
Payload: 0
Received 16:25:12
QoS: 0
Payload: 1
Received 16:25:36
QoS: 0
Payload: 0
Received 16:25:36
QoS: 0
Payload: 1
Received 16:25:49
QoS: 0
Payload: 2
Es sieht für mich also dann so aus das die Status Meldungen HA mitteilen das der Sensor inaktiv ist.
Ich hatte im HA auch schon mal alle Sensoren und MQTT gelöscht und wieder neu installiert um hier einen Fehler auszuschließen. Hatte aber auch nichts geändert.
Vielen Dank und Grüße
Jens
Hallo Jens,
Danke für die detaillierten Infos! Das sieht so aus als ob der MQTT Broker die Verbindung zu macht wenn eine Zeit lang keine Daten gesendet werden. Ich schau mal ob ich in die Firmware einen „Keep-Alive“ einbauen kann so dass die Verbindung zum Broker trotzdem erhalten bleibt. Das Reduzieren des Sendeintervals auf z. B. 10 s sollte ebenfalls funktionieren.
Gruß
Stefan
Firmware v1.24 steht ab sofort zur Verfügung
Danke Stefan für die V1.24 Damit funktioniert es wieder dauerhaft.
Hallo Hr. Segel,
ich habe meinen ACM-ESP von 1.12 auf die 1.21 hochgerüstet da ich die Auto Discovery für HomeAssistant nutzen will. Mein HA erkennt aber trotzdem den sensor nicht per Autodiscovery. Die MQTT Message die ich mitlesen kann scheint keine Auto Discovery konforme zu sein. (ich habe auch die 1.23 probier und auch mal mein MQTT im ACM rausgelöscht und neu angelegt)
{„meter“:{„address“:0,“id“:“37305735″,“manufacturer“:“ELS“,“version“:129,“medium“:3,“access_no“:1,“status“:“0″,“signature“:“0″,“values“:[{„vif“:19,“code“:2,“scalar“:-3,“value_raw“:5445860,“value_scaled“:5445.86}]},“millis“:4418,“battery_mv“:2901,“vol_m3″:5445.86}
Können Sie mir einen Tipp geben woran das liegen könnte?
Vielen Dank im Voraus.
Hallo Herr Burgstahler,
die MQTT Pakete aus Ihrer Nachricht sind keine Discovery-Pakete, sondern nur die Zählerdaten. Die Discovery-Pakete werden an die Topics homeassistant/sensor/wifiacmesp_…./… gesendet. Tauchen dort Nachrichten auf? Wenn ja sicherstellen dass Autodiscovery im HA aktiviert ist und das Autodiscovery Topic im HA stimmt.
Hallo!
Funktioniert das Modul auch an einem BK-G6 MT?
Danke und Grüße
Arne
Hallo,
steht eine Protokollnummer (AE…) auf dem Zähler?
Hallo Herr Seegei,
erstmal danke für Ihre Arbeit und den schnellen Versand. Bis ich auf diese Lösung gestoßen bin, hat es einige Zeit gedauert. Für mich genau das Richtige, ohne große Bastelei mit Reedkontakt etc.
Ich hatte eine Problem mit der MQTT-Anbindung im Home-Assistant. Bei der Erstinstallation kamen nur die Sensoren der Batteriespannung und der Geräte ID an. Nach einem Firmware-Update auf 1.22 ist nun auch der Sensor für den Volumenszähler in HO ersichtlich.
Ein alternativer USB-Anschluss auf der Platine für ein Netzgerät wäre noch sinnvoll.
Viele Grüße
Jürgen Vogl
Guten Abend,
Ich habe den gleichen Effekt.
Wie macht man ein Firmwareupdate – auf 1.22?
Viele Grüße, Stefan Müller-Pfeiffer
https://www.seegel-systeme.de/2022/12/21/wlan-acm-esp-kommunikationsmodul-fuer-elster-gaszaehler/#firmwareupdate
Danke! Aufmerksames Lesen hätte geholfen ….
Problem 2: Einbindung in HA
Lt ihrer Beschreibung meldet sich ELSTER ACM-ESP mit 3 MQTT-Enitäten selbsttätig an.
Ihrer Beschreibung ist sehr knapp -> Fragen:
– muss in der ELSTER ACM-ESP das MQTT Protokoll aktiviert werden?
– müssen auf HA Seite irgendwelche Schritte getan werden um die Anmeldung der 3 Entitäten zu „empfangen“
PS: Mein Problem 1: besteht weiter – ich senden Screenshots per Email
Danke für die Anregung, ich habe das in der Beschreibung ergänzt. Für den Home Assistant Betrieb muss ein MQTT Target angelegt werden, und in Home Assistant die MQTT Integration aktiviert sein.
Wenn sie Daten in eine InfluxDB 2 Datenbank schreiben möchten verwenden sie das Target „InfluxDB Cloud“.
Hallo
Danke für die schnelle Antwort. Ich habe z.Z. versucht ihre Anleitung nachzuvollziehen:
– INFLUXDB auf https://eu-central-1-1.aws.cloud2.influxdata.com
– MQTT auf Mosquitto auf lokalem RPI4
Jetzt 3 Päarchen AA später geht die Konfigurationseite nach dem Drücken des RESET nicht mehr auf – meist gar nicht (Browser Timeout) wenige Male als Seite ohne Inhalt (z.B. Zählerstand). Dies geschieht obwohl die LED blau blinkt. Ist das Produkt jetzt defekt?
Gerne würde ich mit Ihnen kurz sprechen. Wann kann ich Sie anrufen?
Hallo, am besten Schritt für Schritt vorgehen um herauszufinden wo es klemmt:
1. Gerät auf Werkseinstellungen zurücksetzen (Taste > 15 s gedrückt halten)
2. WLAN wie im Blogbeitrag beschrieben konfigurieren, Option „no sleep“ zunächst aktivieren und speichern
3. Einige Zeit laufen lassen ob der Betrieb soweit stabil ist und die Messwerte im Webinterface angezeigt werden
4. MQTT Target anlegen, konfigurieren und speichern
5. Einige Zeit laufen lassen ob der Betrieb soweit stabil ist und die Messwerte im Webinterface angezeigt werden und im MQTT Broker ankommen
6. InfluxDB Target anlegen und wieder prüfen
Factury reset hat funktioniert.
MQTT Server läuft auf einem RPI4. MQTT Explorer sieht empfangene Daten – nur die Anzahl.
Fragen:
– Unter welchem TOPIC überträgt der acm-esp?
– werden im ConfigMode auch Daten übertragen und in welchem Zeitabstand?
Das Standardtopic lautet home/wifi-acmesp/MAC/state, siehe Blogartikel, und kann umkonfiguriert werden. Daten werden auch im Configmodus übertragen mit dem Interval welches unter „Interval“ eingestellt ist (sichtbar wenn no-sleep aktiviert wird), standardmäßig 10 s.
Sorry eine FW ist V1.22
Hallo Hr Seegel
ACM-ESP läuft FW V1.20. Die Daten möchte ich in eine INFLUXDB übermitteln.
Mein Problem: unabh. von der Schnittstellenauswahl zeigt die Webseite immer IP, Port, Database, user, password! Was mache ich falsch?
Ich kann das Problem nicht nachstellen; welcher Browser wird verwendet? Was passiert wenn sie die Parameter (IP, Port, …) eintragen und speichern?
Hallo Herr Seegel
Seit dem update von 1.19 auf 1.21 habe ich die gleichen Probleme wie Florian Es werden nur Spannung und Meter ID in Home Assistant MQTT angezeigt.
Bei ip/status kommt folgendes:
{„resetInfo“:“Software/System restart“,“vol_m3″:5701.565,“decPlaces“:3,“millis“:417035,“battery_mv“:2454,“configMode“:false,“freeHeap“:11440,“dateTime“:“02.12.23 18:37:1701″,“firmware“:“1.21″,“WiFi“:{„status“:3,“mode“:1,“ipsta“:“192.168.1.138″,“mac“:“34:94:54:9A:CD:91″,“hostname“:“ESP-9ACD91″,“sta_ssid“:“******“},“mbus“:{„status“:2,“rxbuf“:“681b1b6808037209900500e61e3c03040000000c78099005000c13651570059216″},“meter“:{„address“:3,“id“:“00059009″,“manufacturer“:“GWF“,“version“:60,“medium“:3,“access_no“:4,“status“:“0″,“signature“:“0″,“values“:[{„vif“:120,“code“:31,“scalar“:0,“value_raw“:59009,“value_scaled“:59009},{„vif“:19,“code“:2,“scalar“:-3,“value_raw“:5701565,“value_scaled“:5701.565}]},“results“:[„ok“]}
Ein downgrade auf 1.19 ist komischerweise nicht möglich bzw. funktioniert nicht.
Haben Sie ein Lösung. Herzlichen Dank
Vielen Dnak für den tollen und raschen Support!!!
Jetzt funktioniert alles wie es soll..
Eine Frage noch:
Wenn ich im No Sleep Modus 15min Intervall eingebe schläft er dann dazwischen wie im normalen modus oder ist er stendig „wach“ und saugt die Batterie leer?
Danke!
Hallo,
in der Einstellung „no sleep“ bleibt das Modul immer aktiv und ist nur für Netzteilbetrieb geeignet.
Schöne Grüße
Stefan Seegel
Hallo Herr Seegel,
ich bin super begeistert von ihrem Modul und es funktionierte auch sofort an meinem Gas-Zähler. Ich binde es bei mir im Homeassistant über MQTT ein, das funktionierte mit der FW 1.20 auch, nachdem es aber ein Discovery mit der 1.21 gab, habe ich das Update eingespielt. Nun hat es den Anschein, daß in der „config message“ das Value_Template der Volume Message einen leeren Inhalt hat („val_tpl“: null) im Gegensatz zur Battery oder auch ID ;essage. Wird das vom Modul evtl leer/falsch versendet oder liegt der Fehler doch auf meiner Seite?
Vielen Dank
Grüße aus Fürth
Axel
Hallo Axel,
da war offenbar zu wenig Speicher für die (großen) Discoverynachrichten reserviert, habe Dir eine Mail geschrieben.
Gruß
Stefan Seegel
Guten Abend,
habe lange probiert die Daten über den Mosquitto broaker in mein Home Assistant zu bekommen. Leider ohne Erfolg. Vielleicht weil ich über einen WLAN repeater gehen muss?
Was muss ich denn in der config eingeben beim MQTT? Axel, vielleicht ein Tip für mich?
Kann ich auch über die Nabu casa cloud drauf?
Ich bin für jede Hilfe dankbar!
Beste Grüße
Florian
Antworten
Hallo,
bei den MQTT Einstellungen muss der Hostname oder die IP Adresse des MQTT Brokers eingetragen werden, je nachdem wie der MQTT Broker konfiguriert ist noch Port, Benutzername und Passwort. Im Status (http://ip-wifiacmesp/status) wird dann unter Results das Übermittlungsergebnis angezeigt. Ein WLAN Repeater sollte kein Problem sein. Mit Nabu Casa Cloud habe ich leider keine Erfahrung.
Schöne Grüße
Stefan Seegel
Danke werde ich am abend probieren.
was ist TLS?
Tunnel Layer Security = Verschlüsselung
Hallo Herr Seegel,
anscheinend komm ich bis zu meinem Home Assistant aber im Protokoll vom MQTT broaker steht immer folgendes:
2023-11-29 19:48:40: New connection from 192.168.8.74:58941 on port 1883.
2023-11-29 19:48:40: New client connected from 192.168.8.74:58941 as WiFi-ESP-ACM-EF61FF (p2, c1, k15, u’mqtt_user‘).
2023-11-29 19:49:16: Client WiFi-ESP-ACM-EF61FF has exceeded timeout, disconnecting.
2023-11-29 19:49:16: New connection from 192.168.8.74:61412 on port 1883.
2023-11-29 19:49:16: New client connected from 192.168.8.74:61412 as WiFi-ESP-ACM-EF61FF (p2, c1, k15, u’mqtt_user‘).
2023-11-29 19:49:46: Client WiFi-ESP-ACM-EF61FF has exceeded timeout, disconnecting.
2023-11-29 19:49:46: New connection from 192.168.8.74:51544 on port 1883.
2023-11-29 19:49:46: New client connected from 192.168.8.74:51544 as WiFi-ESP-ACM-EF61FF (p2, c1, k15, u’mqtt_user‘).
2023-11-29 19:50:10: Client WiFi-ESP-ACM-EF61FF has exceeded timeout, disconnecting.
was mache ich falsch?
Bitte um Hilfe!
Danke!!
Guten Abend nochmal.
Ich habe es jetzt geschafft. Allerding bekomme ich leider nur die Spannung und die Meter ID. im Home Assistant angezeigt.
Können sie mir die Ausgabe von http://ip/status schicken?
Vielen Dank für den spannenden Beitrag. Bei mir ist ein Zähler mit „AE.03:05.01:03.01“ verbaut. Ist dieser ebenfalls mit dem von Ihnen angebotenen Modul kompatibel? Vielen Dan und Grüsse, Simon
Hallo Simon,
dieses Protokoll habe ich noch nicht gesehen, aber ich denke es wird funktionieren. Wenn nicht kannst Du das Modul einfach zurückschicken.
Gruß
Stefan
hi Stefan,
Danke für die schnelle Nachlieferung. Ich kann bestätigen, dass auch mein Zählermodell mit „AE.03:05.01:03.01“ ohne Probleme und auf Anhieb funktioniert. Nach kurzem Ringen mit MQTT in HA, läuft nun alles 🙂
Besten Dank und Grüsse,
Simon
Vielen Dank für die Rückmeldung!
Ich hab das Modul jetzt eingerichtet und in mein WLAN eingebunden. Die Zählernummer wird korrekt ausgelesen aber der Zählerstand selbst wird nicht übertragen. Haben Sie eine Idee wo der Fehler liegen könnte?
Es handelt sich um einen Honeywell BK-G4 A (2019) mit AE.05:05.01:01.01
Können Sie mir die Ausgabe von http://IP-ADR/status zukommen lassen?
{„resetInfo“:“Software/System restart“,“millis“:29473305,“battery_mv“:3122,“configMode“:false,“freeHeap“:17936,“firmware“:“1.18″,“WiFi“:{„status“:3,“mode“:1,“ipsta“:“192.168.2.76″,“mac“:“AC:0B:FB:EE:A4:1B“,“hostname“:“ESP-EEA41B“,“sta_ssid“:“******“},“mbus“:{„status“:2,“rxbuf“:“******“},“meter“:{„address“:0,“id“:“******“,“manufacturer“:5523,“version“:129,“medium“:3,“access_no“:166,“status“:“0″,“signature“:“0″,“values“:[],“decode_err“:4},“results“:[]}
Ups das war etwas zu viel des guten. Bitte einmal die Zählernummer oder den Kommentar löschen. Ich kann den Kommentar leider nicht bearbeiten.
Ok, ihr Zähler liefert einen Datenblock den der Parser noch nicht unterstützt hatte, sollte nun funktionieren. Einstellbars Interval für noSleep Mode ist nun auch drin, siehe Version 1.19
Perfekt! Läuft wie geschmiert!
Vielen vielen Dank für die schnelle Hilfe!
Gibt es die Möglichkeit das Modul auch über ein Netzteil mit Strom zu versorgen? Beispielsweise mit einem alten Nokia Ladekabel.
Ja, mit einem stabilen Netzgerät max. 3,3 V an die Batterieklemmen angeklemmt sollte das kein Problem sein.
Hallo Herr Seegel, ich habe Ihr Modul heute erhalten – danke für den schnellen Versand! Nun eine Frage zur Versorgung über ein Netzgerät: 3,3 V Steckernetzteile sind recht selten. Ich vermute, dass ein herkömmliches 5 V Netzteil das Modul zerstören würde?
Daher überlege ich, ein 5 V Netzteil mit 3 oder 3,3 V Linearregler zu verwenden (z.B. aus der LM 317 Serie). Wie hoch ist die Stromaufnahme des Moduls im Modus „no sleep“? Dies wäre wichtig zur Ermittlung der Verlustleistung für den Spannungsregler.
Kann ich das Modul für Test- und Konfigurationszwecke in Betrieb nehmen, wenn es nicht am Gaszähler angeschlossen ist?
Das Netzteil darf max. 3,3 V haben. Als Linearregler sollte etwa ein AMS1117-3.3 geeignet sein. Das Modul zieht durchschnittlich ca. 100 mA, Spitzenströme bis zu 500 mA. Sie können das Modul auch ohne angeschlossenen Zähler betreiben.
Herzlichen Dank für die schnelle Antwort!
Guten Tag
Heute hat es funktioniert, konnte config ändern. Bitte meine vorherigen 2 posts löschen. Danke
Bei mir funktioniert die WLAN-Verbindung nur kurzzeitig ca. 30min). Danach ist nichts mehr zu erreichen. Nur lange RST drücken und mit Scan das WLAN verbinden hilft dann wieder (für 30 min)…
Ich habe allerdings auf „no sleep“ gestellt (wegen einrichten in HomeAssistant.
(Meinen) Fehler gefunden! Ganz schlechte Idee im Batteriebetrieb den „no sleep“ Modus zu wählen. Das Modul (ohne Zähler) zieht 80mA. Hat man dann nicht die frischesten und besten Batterien, dann gibt´s schnell Probleme mit der WLAN-Verbindung weil die Batteriespannung zu schnell sinkt. Mein Modul sendet nun im „sleep“ Modus stündlich den Zählerstand genau so wie er soll. Zusätzlich lasse ich mir den Batteriestand im Home Assistant anzeigen (leider nicht im Autodiscover). Zusätzlich lasse ich mir eine Nachricht auf´s Handy schicken bei kritischem Batteriestand. Ich bin nun zufrieden!
PS: Danke an Herrn Seegel für das freundliche und sehr hilfsbereite Telefonat!
Prima, MQTT Autodiscovery für den Batteriestand werde ich in das nächste Release noch einbauen.
Hallo Herr Seegel,
viele. Dank für ihre Arbeit und dieses super Modul für verflixten Gaszähler.
Ich wäre dankbar für die Möglichkeit das Updateintervall selbst zu setzen. Aus feingranulareren Daten ließen sich noch mehr Infos ableiten.
Ich würde das Modul dann an einem Netzteil betreiben.
VG aus Dresden
Ab Firmware 1.16 steht ein „no sleep“-Modus zur Verfügung so dass das Modul alle 15 s den Zähler ausliest.
Grüße, S. Seegel
Herzlichen Dank!!!!
Hallo Herr Seegel,
Ich möchte die InfluxDB Cloud verwenden.
Gibt es irgendwo nähere Infos über die Einstellungen für InfluxDB? Was genau muss in die Felder rein?
Hallo Herr Friedemann,
ich werde den Blogartikel noch um ein paar Konfigurationsbeispiele erweitern. Verwenden Sie eine InfluxDB1 oder InfluxDB2 Datenbank?
Schöne Grüße aus Fürth
S Seegel
Hallo Herr Seegel,
Danke für das Update. Leider schreibt der ACM-ESP „invalid Parameter“ aus. API Token habe ich bei Influx angelegt und kopiert, ebenso die ORG ID. Der Bucket Name ist ja auch klar. Ich habe keine weitere Datensenke angegeben. Leider wird nicht markiert welcher Parameter invalid ist. Bei Influx kommen keine Daten an.
Neueingabe der URL hat die Fehlermeldung von invalid Parameter zu Connection failed geändert
Ein letztes Update: Die Daten kommen jetzt an. Alles OK