Wasserzähler mit ESP32 und Home Assistant digitalisieren
Vor einiger Zeit habe ich gezeigt, wie man einen Stromzähler auslesen und in Home Assistant integrieren kann. Dieser verwendet die SML und macht es uns dadurch sehr einfach, den Zählerstand in Home Assistant zu übertragen. Der Gaszähler konnte mit einem ESP32 und einem Reed-Schalter digitalisiert werden. Das war etwas komplizierter, aber auch das haben wir gemeinsam geschafft. Nun ist der Wasserzähler an der Reihe:
In diesem Beitrag zeige ich dir Schritt für Schritt, wie du deinen Wasserverbrauch mit Home Assistant digitalisieren und automatisiert erfassen kannst. So hast du jederzeit den Überblick über deinen täglichen Wasserverbrauch, erkennst Lecks frühzeitig und kannst deinen Ressourcenverbrauch nachhaltig optimieren. Auch für diesen Zweck verwenden wir ein neues Tool. Es nennt sich AI on the Edge und ist – meiner Meinung nach – das mächtigste Tool in dieser Reihe. Es verwendet die ESP32-Cam und digitalisiert den Wasserzähler über Bilderkennung.

Schritt 0: Die Einkaufsliste. Als Hardware benötigen wir den ESP32 mit Kamera. Diese gibt es oft als Paket zusammen und nennt sich dann ESP32-CAM. Mit ca. 10 Euro ist man am Start. Dann braucht ma neine Micro-SD-Karte mit max. 8 GB Speicher. Notfalls geht auch größer, man muss sie dann aber ggf. schrumpfen (siehe Schritt 2). Weiterhin benötigt man ein 5V-Netzteil, das vom Handy tut es hierbei auch schon.
Schritt 1: ESP32-CAM flashen. Das geht am über die Webconsole sehr einfach und schnell. Dazu den ESP mit USB-Kabel mit dem PC verbinden, mit Google Chrome oder Edge auf den Webseite der Konsole gehen und die Anweisung dort befolgen. Das ist gleich zu Beginn der kritische Punkt, da hier einiges nicht klappen kann.
Stolperstein 1: falscher COM-Port. Ich habe die Liste der verfügbaren COM-Ports beobachtet, während ich den ESP eingesteckt habe. COM11 kam neu hinzu –> das ist der richtige.
Stolperstein 2: Installation klappt nicht. Mögliche Ursachen, die bei mir auftragen: Falsches USB-Kabel. Ich hatte zuerst ein günstiges, das aber nur die Spannungsversorgung überträgt. Man braucht auch eines, das Daten Übertragen kann. Weitere Ursache für die nicht-funktionierende Installation: Der ESP ist schreibgeschützt. Entweder es gibt einen Button, den man während der Installation gedrückt halten muss, oder man muss GPIO 0 auf low ziehen. Glücklicherweise liegen GPIO 0 und GND direkt nebeneinander, sodass man einen Draht sehr einfach dagegen halten kann.
Schritt 2: Die SD-Karte vorbereiten. Dazu benötigt man eine SD-Karte mit max. 8 GB. Hatte ich nicht, darum habe ich – schweren Herzens – eine 64 GB Karte geopfert, und „geschrumpft“. Das geht unter Windows mit diskpart, bei Reddit gibt es eine gute Anleitung dafür. Auf die SD-Karte schiebt man nun die Daten aus Github und trägt in die wifi.ini seine Netzwerk-Zugangsdaten ein.
Schritt 3: Setup der Software. Was haben wir bisher? Firmware ist drauf, SD-Karte ist fertig und WLAN ist eingestellt. Wir können nun also auf die Weboberfläche zugreifen. Los gehts! Gib die IP-Adresse des Gerätes im Browser ein. (Schaut im Zweifel bei eurem Router nach, welche IP der ESP hat).

Ein Setup begrüßt euch. Die Beschreibungen sind sehr ausführlich dort, darum beschränke ich mich auf ein paar Stichpunkte:
- Anpassen von Fokus und Reflektionen. Hier sieht man live das Bild aus der Kamera. Stellt die Helligkeit des Lichts so ein, dass man alle Zahlen gut lesen kann. Den Fokus der Kamera kann man anpassen, muss vorher aber evtl. ein Stück Kleber von der Linse entfernen. Das geht leicht mit einem Teppichmesser. Anschließend kann man die Linse rein- oder rausschrauben und somit den Fuks anpassen.
- Aufnahme eines Referenzfotos. Dieses Foto werden wir in den folgenden Schritten in seine Einzelteile zerlegen und die Software anlernen. Hier stellt sich heraus, ob das Bild geeignet ist. Dreht das Bild möglichst genau in die Horizontale, damit man alle Zahlen gut nebeneinander lesen kann. Das erleichtert später die Erkennung der Ziffern.
- Definition von zwei Ausrichtungspunkten. Sie definieren sozusagen das Koordinatensystem.
- ROI für Ziffern. Regions of Interest, so heißen die Bereiche, die später ausgelesen werden. Hier müssen also die Ziffern ausgewählt werden. Macht das sorgfältig!
- ROI für analoge Zeiger. Wasseruhren haben häufig Analogzeiger. Falls man sie nicht hat, kann man diesen Schritt überspringen.
- Zusätzliche Parameter, diese können später auch noch eingestellt werden.
- Abschluss der Einrichtung. Dieser Schritt beendet das Setup und speichert die Werte.

Schritt 4: Überprüfen der Einstellung. Nach dem Reboot landet man automatisch auf der Überblickseite des Controllers. Dort sieht man sowohl ein Foto des Zählers, als auch die digitalisierten Werte daraus. Überprüft, ob die Werte stimmen. Bei mir wurde beispielsweise eine 9 als 4 erkannt. Anpassen der Helligkeit hat das Problem behoben. Eine kleine Reflektion auf der Schreibe war die Ursache.
Schritt 5: Einbindung in Home Assistant. Falls noch nicht geschehen, sollte man in der Konfiguration das MQTT-Protokoll aktivieren. Dort findet sich auch die Funktion „Homeassistant Discovery“. Tragt also die Zugangsdaten zum MQTT-Broker ein. Wählt außerdem aus, dass es sich um ein Watermeter handelt, mit einer Einheit die von Home Assistant unterstützt wird. Startet den ESP neu, ihr werdet dazu aufgefordert.

In Home Assistant wird die Wasseruhr nun unter „Einstellungen“, „Geräte & Dienste“ und „MQTT“ aufgelistet. Seht mal nach, ob die Werte korrekt ankommen. Falls ja, defenieren wir es noch als „Wasserzähler“: „Einstellungen„, „Dashboards„, „Energie„. Dort fügt man einen neuen Wasserzähler hinzu und wählt „value“ vom „watermeter„.

The post Wasserzähler mit ESP32 und Home Assistant digitalisieren first appeared on bejonet - Linux | Smart Home | Technik.




























































