Analoge Gas- und Wasserzähler smart machen

Du hast noch analoge Gas- und Wasserzähler und willst sie "smart" machen? Wir machen es zusammen 🔥

Analoge Gas- und Wasserzähler smart machen
Photo by Ihor Saveliev / Unsplash
💶
Der nachfolgende Artikel enthält Ref-Links. Wenn du über diesen Link etwas kauft, bekomme ich eine kleine Provision dafür. Dein Preis ändert sich nicht und hilft mir, diesen Blog weiterhin zu betreiben. Alle entsprechenden Links sind mit dem Emoji links gekennzeichnet.

Warum smart machen?

Es macht sehr großen Sinn die alten analogen Wasser- und Gaszähler smart zu machen. Man kann die Verbräuche fast minutengenau aufzeichnen, sein Konsum verstehen und dadurch sinnvoller optimieren. Gerade in Zeiten der Nachhaltigkeit, der Preise für die Brennstoffe und/oder die generelle Wasserknappheit fordern schon, dass man sich mit der Thematik ganzheitlich auseinandersetzt.

⚠️
Wichtig ist zu beachten, dass diese Variante rechtssicher sein sollte. Bei Varianten mit Induktions-Näherungssensoren und/oder Reed-Kontakten, kann Euch der Versorger schnell unterstellen, dass an der Uhr manipuliert worden ist. Bei der Verwendung einer Kamera zum Auslesen, dürfte das argumentativ recht dünn werden.

Was brauchen wir?

Generell brauchen wir erst einmal nur etwas Soft- und Hardware. Die Kosten liegen so in der Regel (pro Wasser- oder Gaszähler) bei maximal 20-30€, je nach Bezugsquelle der Teile.

Zu aller erst benötigen wir idealerweise einen ESP32 mit Cam. Hierbei handelt es sich um einen Mikrocontroller mit integrierter Kamera.


Dieser kostet zum aktuellen Zeitpunkt des Artikels bei Amazon knappe 22,90€ im 2er-Pack: https://amzn.to/3R0GHHJ💶, eine günstige Micro SD Karte💶(16GB sind hier mehr als ausreichend) und ein Micro USB-Netzteil/Kabel für den Strom.

Danach brauchen wir eine Software, die via KI die analogen Ziffern ablesen kann und diese dann digitalisiert. Hier gibt es das schönes Tool von JomJol, nämlich AI-on-the-edge-device.

Installation - AI on the Edge Device

Die Software nimmt in einem bestimmten Intervall ein Foto des Zählers auf. Eine KI richtet das Bild dann nach gesetzten Marken aus und eine OCR mit KI wertet dann die Zahlen entsprechend aus und digitalisiert diese.

Die Installation

Die Installation gestaltet sich recht einfach über den Webinstaller. Hierfür muss der Mikrocontroller per USB an Euren Rechner angeschlossen sein und es muss der entsprechende UART-Treiber installiert sein. In der Regel nutzen die ESP32 alle die CP210x USB to UART Bridge.

💡
Achtet darauf, dass Ihr ein Daten-USB-Kabel verwendet und kein Ladekabel! Ladekabel besitzen in der Regel keine Datenleitungen und sind daher ungeeignet und bereiten nur sehr viele Schmerzen, in dem der Controller nicht erkannt wird.
AI on the Edge Device - Webinstaller

Alternativ kann man auch den Mikrocontroller manuell flashen.

Einbinden in das eigene WLAN

Nach dem der Mikrocontroller geflashed worden ist, baut er ein eigenen WLAN-Access-Point auf, mit dem Ihr Euch verbinden müsst. Die SSID sollte AI-on-the-Edge heißen. Navigiert dann im Browser Eurer Wahl zu http://192.168.4.1. Hier sollte Euch nun das Basis-Setup von der Firmware begrüßen.

Vorab sollte der aktuelle Release von GitHub gezogen werden, den werden wir hier an der Stelle nun brauchen, damit die Erst-Konfiguration auf der SD-Karte landet. Ihr braucht dafür eine AI-on-the-edge-device__remote-setup__*.zip

Releases · jomjol/AI-on-the-edge-device
Easy to use device for connecting “old” measuring units (water, power, gas, ...) to the digital world - jomjol/AI-on-the-edge-device

Diese Datei wird dann auf der Seite hochgeladen. Er rödelt dann ein wenig und sollte dann die WLAN-Konfigurations-Seite anzeigen. Dort könnt Ihr dann eure WLAN-Daten eingeben.

Nach einem Reboot ist dann der Mikrocontroller soweit ready.

Positionierung auf dem Wasser- oder Gaszähler

Ich selbst besitze als Gaszähler einen Pipersberg G4 RF1 c und als Wasserzähler einen Pipersberg T30. Für beides konnte ich auf Thingiverse entsprechende Gehäuse finden. Solltet Ihr auch diese Uhren verbaut haben, dann kann ich Euch diese Modelle wärmstens empfehlen:

ESP32-CAM-MB for Pipersberg G4 RF1 c by BerHerJohLin
Gehäuse für ein ESP32-CAM-MB um den Zählerstand eines Pipersberg G4 RF1 c Gaszählers abzulesen und per MQTT zu senden Software: https://github.com/jomjol/AI-on-the-edge-device Die Einzelteile werden mit 3mm Schrauben verschraubt, Länge 20 bis 25mm. Das Gehäuse hält per Magnet am Zähler, dazu wurden…
Water meter adapter (AI-on-the-edge) by klein0r
This is an alternative mounting solution for the “AI-on-the-edge” project. https://www.youtube.com/watch?v=mDIJEyElkAU

Ob die bei Euch passen, müsst Ihr leider testen.

Einrichtung der Firmware und Konfiguration der Kamera

Nach dem Reboot und der Einbindung in Euer WLAN, solltet Ihr die IP des Controllers herausfinden und diese im Browser öffnen. Es erscheint dann ein Einrichtungsdialog, in dem Ihr die Kamera konfigurieren müsst und ein paar Referenzbilder für die KI erzeugen müsst.

💡
Das Gerät sollte nun so auf dem Wasser- und Gaszähler positioniert sein, dass die Kamera freien Blick drauf hat.

Hierbei geht Ihr wie folgt vor (in meinem Beispiel zeige ich Euch das anhand meines Wasserzählers):

Referenz-Bild erzeugen
Achtet hier ganz speziell auf eine gute, aber nicht zu krasse, Beleuchtung. Sollte es störende Reflektionen geben, müsst Ihr ggf. mit Polfilter-Folien arbeiten. Bei meinem Wasserzähler gab es auch starke Reflektionen, trotz nachgedunkeltem Bild und verminderter Blitzstärke, aber diese störte dort eher weniger.

Ausrichtungs-Marken erstellen
Hierbei handelt es sich um signifikante Punkte im Bild, damit die KI weiß, wie das ausgenommene Bild ausgerichtet werden muss. Ab besten nehmt Ihr dazu zwei gegenüberliegende Punkte.

Erstellung der digitalen ROIs (Region of interest)
Die ROIs sind prinzipiell Eure Zahlen auf dem Zähler. Diese müssen für die KI entsprechend markiert und eingerahmt werden. Hierbei ist es wichtig, dass Ihr diese gut positioniert, um gute Ergebnisse zu erzielen. Anfänglich wird man hier etwas spielen und testen müssen.

Erstellung der ROIs für analoge Zähler
Manche Zählerarten besitzen zu den normalen Zählern auch noch runde kleinere Uhren, die in dem Falle auch analog abgelesen werden können. Dies ist z.B. eher bei Wasserzählern der Fall. Wie viele Ihr davon als ROIs abbilden wollt, hängt davon ab, wie gut sie zu erkennen sind und wie genau Eure Ablesung sein soll. In meinem Falle bin ich damit zufrieden, wenn der Zähler auf 10l genau abliest.

Danach ist die Erst-Konfig abgeschlossen und der Mikrocontroller sollte sich neu starten. Danach ist die komplette Einrichtung auch schon abgeschlossen und er fängt jetzt an im Intervall den Zähler zu fotografieren und zu digitalisieren.

Die ersten Messungen treffen ein

Wenn alles geklappt hat, dann sollten nun auch die ersten Messungen eintreffen. Die Werte der Ablesung kann man auf der Startseite sehen:

Das ist aber eigentlich nur die halbe Wahrheit. Jetzt haben wir die Daten zwar digitalisiert, aber schlauer wäre es doch, wenn wir Sie an ein weiteres System senden könnten. Dafür bietet die Software Schnittstellen in diverse Systeme an. Hierzu zählen MQTT (benötigt einen Broker) oder InfluxDB 1/2. Ich habe mich für MQTT entschieden, weil es hier auch eine Home Assistant Discovery gibt. Habt Ihr Euren MQTT-Broker in Home Assistant eingebunden, dann wird das Gerät automatisch erkannt und Entitäten dafür erzeugt.

Dazu könnt Ihr einfach in der Configuration Eure MQTT-Daten eintragen:

Passt entsprechend zu dem abzulesenden Zählertyp unbedingt den Typen an, sonst werden die Entitäten mit den falschen Einheiten erzeugt und ggf. falsch umgerechnet.

Wenn die Verbindung zum MQTT-Broker klappt, solltet Ihr Euren digitalisierten Zähler nun im Home Assistant sehen:

Idealerweise bindet Ihr den/die Zähler auch direkt in das Energiedashboard von Home Assistant ein und habt dann so eine sehr gute Nachvollziehbarkeit Eurer Konsumgewohnheiten:

Fazit

Mit den oben genannten Schritten, habt Ihr nun erfolgreich Eure analogen Steinzeit-Zähler digitalisiert und könnt nun schöne Auswertungen in Home Assistant oder Grafana (etc.) fahren und Eurer Konsumverhalten verstehen und anpassen.

Prinzipiell funktioniert auch so das Ablesen eines Stromzählers. Sofern es sich bei Eurem Stromzähler bereits um eine moderne Messeinrichtung handelt, würde ich eher empfehlen, einen Infrarotkopf zum Auslesen zu verwenden. Das ist genauer und kann ggf. auch die Einspeisung einer Solaranlage auslesen.

Hierzu werde ich in Zukunft noch einen Artikel verfassen. Meldet Euch doch einfach unverbindlich an, dann bleibt Ihr auch auf dem Laufenden: