Analoge Gas- und Wasserzähler smart machen
Du hast noch analoge Gas- und Wasserzähler und willst sie "smart" machen? Wir machen es zusammen 🔥
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.
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.
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.
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
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:
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.
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:
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: