Wasseruhr für 20 Euro smart machen

Lesedauer 9 Minuten

Ich wollte gerne unseren Wasserverbrauch überwachen, auch um bei einer Leckage rechtzeitig genug gewarnt zu werden. Aber… unsere Wasseruhr ist strutzedumm! Die hat nicht einmal einen Magnet für ein Reed-Relais oder einen Halter für eine Lichtschranke.

Man kann für hunderte von Euro aber auch smarte Wasseruhren kaufen und hinten die offizielle Wasseruhr für wiederum hunderte von Euro einbauen lassen.

Zum Glück gibt es aber findige Bastler und am Gemeinwohl interessierte Genies (aus meiner Sicht), die da was zusammengecodet haben. Lasst uns also die Wasseruhr smart machen.

Wer hat es erfunden?

Jomjol ist zum Beispiel so ein Typ. Der hat “Digitizer – AI on the edge – An ESP32 all inclusive neural network recognition system for meter digitalization” geschrieben. Das Programm läuft auf einem winzigen ESP32, der eine eingebaute Kamera nebst einem Blitzlicht besitzt und wohl mit seinen paar Megahertz in der Lage ist, künstliche Intelligenz einzusetzen.

Mir ist egal, wie genau er das macht, aber das Ergebnis ist absolut faszinierend! 🙂

“WILLKOMMEN (dramatische Pause) IN DER ZUUUKUNFT!”
Hach! Das wollte ich schon immer mal schreiben!

IMG 20210311 154824 resized
Ein ESP32-CAM mit einem Stromversorgungs- und Programmiermodul. Moment… ist das ein Fussel links oben? Ja, das Ding ist schon echt klein.

Wo den ESP kaufen?

Den ESP habe ich auf Ebay bei janfriedrichelektronikversand(1) bekommen. So sperrig der Ebay-Name ist, so freundlich und zuvorkommend ist aber der gute Mann, der für mich testete, ob der ESP auch mit einem Netzteil läuft. Er übernimmt aber keine Garantie, ob das USB-Board für den Dauerbetrieb ausgelegt ist.

UPDATE 09/21: Ja, läuft absolut rockstable seit über einem halben Jahr mit einem Billignetzteil.

Das Set nennt sich “Starterset HK-ESP32-CAM-MB | ESP32-CAM + OV2640 Kamera + CH340G USB2Serial(1) und kostet mit Versand gerade mal 13 Euro. (Stand 09/21)

Alternative: Zwei der ESP für 23 Euro (Stand 09/21) mit Versand bei Amazon(1). Vielleicht möchtest Du noch eine zweite Wasseruhr für den Garten digital auslesbar machen? Oder einen ganz alten Stromzähler damit upgraden?

Um ehrlich zu sein, habe ich beim Versuch die Linse zu lösen mit dem Skalpell die Leiterbahn der Kamera beschädigt. Gut, dass ich zwei ESP gekauft hatte. Der eine kann mir immer noch als Steuereinheit für die Daikin-Wärmepumpe dienen.

Scharf stellen!

Die Kamera auf dem Board ist aber auf eine größere Entfernung eingestellt, als wir benötigen. Wir müssen also die Verklebung mit einem Skalpell rundum anritzen und die Linse ca 1/4 Umdrehung gegen den Uhrzeigersinn drehen, damit die Kamera aus einer halbwegs akzeptablen Entfernung das Ziffernblatt der Wasseruhr scharf stellen kann.

Zubehör!

Dazu benötigen wir noch ein einfaches USB-Netzteil(1) mit mindestens 500 mA (0,5 A, 2,5 Watt) und eine maximal 16 GB große microSD-Karte (1). Dazu noch ein längeres (je nach Einbauort) Micro-USB-Kabel(1). Am besten gleich als Datenkabel.
Die Gesamtkosten liegen bei ca. 21 Euro.

Ach ja… gut wäre ein 3D-Drucker.
Man kann aber auch aus einem passenden Abwasserrohr (oder einer gerollten Pappe) und einem Stück Pappe für den Deckel ganz einfach und schnell eine Halterung für den Wasserzähler bauen.

Ich habe mit PETG die Halterung gedruckt, die Jomjol dafür entworfen hat. Leider hatte ich kein schwarzes PLA(1) vorrätig – schwarz sollte es aber schon sein, sonst werden die Aufnahmen überbelichtet.

IMG 20210311 181929 resized
Naja, ich bin nicht so der PETG-Drucker unter dem Herrn. Sieht nicht so geil aus. Aber funzt.
Nachtrag: Jo, habe neulich ein Ersatzteil für meinen RC-Car gedruckt und dabei 240 Grad gefahren. Das Ergebnis war absolut super! Sah fast aus wie aus Carbon.

IMG 20210311 181941 resized
Ja, das sieht an den Rändern (Unterseite) der Einzelteile noch blöder aus, aber ich habe das ganze Ding ohne Support direkt in die Luft gedruckt.
Allerdings sind mir gleich bei der Anprobe auf der Wasseruhr einige der “Clipse” abgebrochen. Vielleicht muss ich heißer drucken?

Haftungsausschluss

ACHTUNG! NICHT NACHMACHEN!

  1. Dies ist keine Anleitung!
  2. Der Artikel dient der persönlichen Dokumentation!
  3. Dieser Artikel soll nicht die beiliegenden Anleitungen, Einbauhinweise oder Installationsanleitungen ersetzen!
  4. Dieser Artikel soll einen groben Überblick über die anfallenden Arbeiten ermöglichen.
  5. Der Artikel erhebt keinen Anspruch auf Vollständigkeit oder gar Korrektheit.
  6. Hier beschreibe ich, wie ich diese Arbeiten als Laie erledigt habe – nicht, wie man sie korrekt oder nach handwerklichen Standards, Vorschriften oder Gesetzen erledigt.
  7. Ich lehne jede Verantwortung, Haftung und Gewährleistung ab. Jeder muss selbst wissen, was er macht.
  8. Einige Arbeiten sind durch Fachfremde nicht zulässig, respektive gesetzwidrig und bedürfen teilweise mindestens der Abnahme durch einen ausgebildeten Berechtigten.
  9. Einige Handlungen und Arbeiten sind im öffentlichen Bereich (Straßenverkehr, Stromnetz, Luftraum, Internet, etc.) verboten oder verstoßen gegen Lizenzvereinbarungen, was straf- oder zivilrechtliche Konsequenzen nach sich ziehen kann.
  10. 230 Volt sind tödlich!
  11. Kein Backup? Kein Mitleid!
  12. Meine 3D-Modelle sind nur Machbarkeitsstudien, keine geprüften, funktionsfähigen Bauteile.
  13. Die beschriebenen Tätigkeiten sind in der Folge rein akademischer Natur.
  14. Bedenke, dass durch Deine Arbeiten Dritte an Leib und Leben gefährdet werden können und Du persönlich dafür haftest.

Mit dem Weiterlesen stimmst Du diesem Haftungsausschluss zu.

Aber kümmern wir uns erstmal um die Installation!

Naja, das geht schon extrem schnell.
Viel schneller uns einfacher, als ich es erwartet hatte. Ich habe so einen ESP32 noch nie in der Hand gehabt, geschweige denn mit einer neuen Firmware bedampft.

Die Anleitung ist für ein Debian-Linux. Ich benutze seit 2005 kein Windows mehr. Für Windows gibt es aber Programme mit grafischer Oberfläche, die das Gleiche (nur umständlicher) machen, was ich unter Ubuntu mit ein paar kopierten Befehlszeilen in wenigen Sekunden erledige. Bevor die Windows-Jünger ihre Programme aus dem Netz geladen, installiert und am Start haben, bin ich schon lange fertig. 😉

Also, für Euch durchgeschwitzte, mausschubsende, virenliebende, Sicherheit installierende und optimierungstoolsgläubige Windows-Fanboys: Ihr benötigt das Flash-Download-Tool von Expresif. Damit die Firmware des ESP löschen und mit der firmware.bin aus dem unten angegebenen Link neu flashen.

Windows 10 hat aber auch die Powershell (als Admin starten!), die Linux-Kompatibilität bereitstellt. Ihr könnt also auch einfach “sudo apt-get install” durch “npm install” ersetzen, schätze ich mal. Aber keine Ahnung, ob Windows pip und esptool in den Quellen hat. Könnt ja einen Kommentar hier drunter schreiben, ob das klappt.

Aber mal ehrlich: Mit Windows werdet Ihr in der Smarthome-Welt nicht weit kommen. Allein um Tuya-Geräte OTA mit Tasmota zu flashen, müsst Ihr ein Linux am Start haben. Da könnt Ihr auch gleich komplett zu Ubuntu wechseln, habt keinen Stress mehr mit dauernden Update-Neustarts und braucht keine Angst vor Viren und anderer Schadsoftware zu haben.

Die Programme (oder ähnliche), die Ihr nutzt, gibt es auch für Ubuntu. Und, hey!, Ihr seid damit auch vollkommen legal unterwegs und braucht keine Programme mehr zu klauen. Super, oder?


Firmware laden!

https://github.com/jomjol/AI-on-the-edge-device

Im Downloads-Verzeichnis entpacken.


Terminal öffnen!


Pip installieren!

sudo apt-get install python3-pip

 

ESP-Tool installieren!

sudo pip install esptool

ACHTUNG: ESP-Tool NICHT aus den Paketquellen der Distribution installieren!

In das Verzeichnis der geladenen Firmware wechseln!

cd ~/Downloads/AI-on-the-edge-device-master/firmware/

 

Den ESP32 via USB an den Rechner anschließen und:

esptool erase_flash
esptool write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin

 

Du bekommst eine Fehlermeldung, dass das ESPtool nicht vorhanden wäre?
pip show -f esptool

Ist das Verzeichnis esptools im eigenen Home?

sudo cp -r $HOME/esptool $HOME/.local/bin/

Geht immer noch nicht? Dann machen wir es so:

sudo ~/.local/bin/esptool/esptool.py -p /dev/ttyUSB0 erase_flash
sudo ~/.local/bin/esptool/esptool.py write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin

Aber eigentlich sollte das Installieren problemlos funktionieren. Nur bei mir halt nicht. 😛



Eine Micro-SD-Karte mit FAT32 formatieren.
Zum Beispiel mit Gnome Disks.

In Downloads/AI-on-the-edge-device-master/sd-card/ die Datei wlan.ini anpassen und wieder speichern.
Einfach die SSID und das Passwort des eigenen Netzwerkes eintragen:

nano ~/Downloads/AI-on-the-edge-device-master/sd-card/wlan.ini

Die folgenden Zeilen ändern:

ssid = "DEINE-SSID"
password = "DEIN-PASSWORD"

Optional:

hostname = "wasseruhr"
ip = "XXX.XXX.XXX.XXX"
gateway = "XXX.XXX.XXX.XXX"
netmask = "255.255.255.0"

Den Inhalt des Verzeichnisses “/SDCard” auf die leere SD-Karte kopieren und in den ESP32 stecken.
Kurzer Test auf dem Schreibtisch: Läuft das Ding? Der ESP32 braucht nur wenige Sekunden, um zu booten und sich am WLAN anzumelden.

Die IP-Adresse findest Du heraus, in dem Du nach den Netzwerkgeräten in Deinem Router schaust, das Tool “Angry IP Scan” benutzt, oder Du warst so clever (so wie ich 🙂 )und hast dem ESP in der wlan.ini eine feste IP vergeben. 😛

Diese IP im Browser öffnen!
Es sollte gleich /setup.html geöffnet werden (merke Dir diesen Pfad, falls Du die Installation später noch einmal anstoßen willst)

Gut, mehr können wir gerade nicht machen. Ab in den Keller!
Den ESP auf dem Halter befestigen und beides auf die Wasseruhr stecken.

Der ESP bootet nicht? Du findest ihn nicht im Netzwerk?
Das liest man im Forum häufiger! Laut dem User pfried sollte man am besten SanDisk Extreme SD-Karten benutzen. Er empfiehlt das Tool “SanDisk RescuePro Deluxe”. Den Lizenzschlüssel findet man aber wohl nur auf den Extreme-Karten-Verpackungen.
Ich hatte so ein Problem bisher nicht. Erwähnte ich, dass ich nur noch mit Ubuntu unterwegs bin… nein?
Also, wenn der ESP nicht läuft, dann probiert bitte irgendwelche frische partitionieren und formatierten anderen SD-Karten (bis maximal 16 GB) aus.
In meinem ESP steckt eine SD-Karte mit 8 GB von Toshiba. Ging auf anhieb.

Was ich verbockt hatte, war ein Tippfehler beim WLAN-Passwort. Auch daran kann es liegen, dass der ESP nicht zu finden ist.
Unter OpenWRT kannst Du aber zum Beispiel in der Übersicht alle Geräte sehen, die sich mit dem WLAN verbinden wollten. Bei der Fritte musst Du nun mal das Log durchwühlen.

Befestigung auf dem Wasserzähler

Wasseruhr smart machen
Sitzt und wackelt. Passt eher schlecht.

Ja, Jomjol rechnete nicht damit, dass ich bauernschlau gleich das Programmiermodul auf dem ESP lasse, deswegen passt sein Deckel nicht über meinen ESP. Aber für drei Euro Aufpreis wollte ich mir keine USB-Spannungsversorgung zusammenlöten.
Der o.a. Ebay-Händler war auch so freundlich, die Spannung zu messen, die das Programmierboard ausgibt. Es sind 5V, was gut ist, denn der ESP läuft mit nur 3,3V nicht zuverlässig. Es meinte nur noch, dass das Modul nicht dafür gedacht wäre, dauernd auf dem ESP zu stecken. Naja, es wird nichts warm und das Ding läuft bei mir nun schon über vier Wochen im Dauerbetrieb absolut zuverlässig. Natürlich widerspricht das eigentlich dem Sinn eines ESPs, wenn seine GPIOs belegt sind, aber ich brauche die ja nicht. Das ist nur eine bessere Webcam.

IMG 20210311 190456 resized e1615498964234
Befestigt und den ESP mit dem Feigenblatt des Panzerbands vor Kurzschlüssen geschützt.
Im Sommer wird die Wasseruhr schwitzen und dann fällt vermutlich eh alles ab.

Klar, ich hätte mir einen Deckel für den ESP entwerfen können. Mache ich vielleicht irgendwann mal, aber nicht jetzt. Panzerband muss reichen.

Auch wollte die Halterung nicht so recht auf die Wasseruhr passen. Die ist mehr oder weniger seltsam geformt, sodass ich wieder mit Tape alles grob und sehr provisorisch befestigt habe.

Auch da baue ich mir vielleicht mal eine passende Base. Jomjol hat das ja alles austauschbar mit Bajonett-Verschlüssen versehen, sodass man nicht bei Austausch die gesamte Halterung neu drucken muss.
Aber ich wollte schnelle Ergebnisse sehen! ERGEBNISSE! 😀

Okay, Du hast die Stromversorgung am ESP angeschlossen? Super!

Setup

wasseruhr 01 resized
Begrüßung.
Ich habe leider keinen Screenshot gemacht, aber in dem ersten Dialog richtet man das Bild waagerecht aus. Ist ganz intuitiv. Erst in groben Schritten, dann feiner. Man kann eine Hilfslinie ziehen und damit insbesondere die Kanten der digitalen Ziffern in einer Linie ausrichten.

Referenzpunkte setzen.

wasseruhr 03 resized
Wir markieren zwei unveränderliche Marken auf der Wasseruhr, damit sich die KI besser orientieren kann.

wasseruhr 04 resized
Hier habe ich die Kubikmeter als zweiten Referenzpunkt ausgewählt.

wasseruhr 05 resized
Wir markieren alle digitalen Zahlen von links nach rechts. Dabei wird über jede Ziffer mit der Maus ein Rahmen gezogen. Kinderspiel.

Bitte auf die Namen achten und darauf, dass Du überflüssige ROIs löschst. Das passiert schnell, wenn man ein wenig rumspielt.
Zum Schluss einfach noch einmal jeden Bereich einzeln aufrufen und prüfen. Mit Save sichern nicht vergessen und mit Next weiter.

wasseruhr 06 resized
Das gleiche Spiel mit den analogen Zeigern. Hier allerdings von rechts nach links, von groß nach klein.

wasseruhr 07 resized
In der config.ini muss noch der MQTT-Server angegeben werden. mqtt://IP_DEINES_IOBROKERS:1883

Als MQTT-User habe ich hier… naja, Du siehst es ja. 😀 Was solls? In das Netzwerk kommt eh niemand rein und ich werde auch keinen Fernzugriff haben wollen.

Update und weiter.

 

wasseruhr 08 resized
Nun kannst Du das System neu starten. Das dauert fünf Sekunden oder so.

Integration in IOBroker

Im ioBroker geht es weiter:
Natürlich funktioniert das auch so mit allen anderen MQTT-fähigen (also allen) SmartHome-Zentralen wie openHAB und wie sie alle heißen.

wasser iob 3 resized
Vorher hast Du am besten im IOBroker den MQTT Server/Client Adapter installiert und mit den MQTT-Usernamen aus der config.ini des ESP abgeglichen.

Oder halt auch nachher. Ist egal. 🙂

Wasser iob 1 resized
Nun erscheint unter Objekte, mqtt.0 unser Zählerstand. Ganz automagisch! 🙂

wasser iob history resized
Wir klicken wieder auf das kleine Werkzeugsymbol und aktivieren die Aufzeichnung durch den History-Adapter.
Das hatten wir ja schon mit dem Stromzähler so gemacht.

Einen kleinen Wermutstropfen gibt es allerdings: Der ESP ist nicht so fix. Er schafft nur rund eine Ablesung alle fünf Minuten. Aber egal, das passt schon, sieht nur auf den Diagrammen nicht sooo toll aus:

Strom und Wasser resized
Hier die blauen eckigen Wasserverbräuche im Vergleich zu den feinen Diagrammen des Stromverbrauches.

Diese Lösung ist auch für Wochenend- und Ferienhäuser interessant. Aber das schrieb ich auch schon im Artikel über den smarten Stromzähler.

BTW: Auch dieses Projekt kann man dazu benutzen, einen unsmarten Stromzähler smart zu machen! Dazu muss man natürlich eine andere Halterung bauen und ggf. damit leben, dass die Tür des Zäherkastens (der Unterverteilung) nicht mehr schließt.

Hinweise
  1. Werbung[][][][][][][]

15 Gedanken zu „Wasseruhr für 20 Euro smart machen“

  1. Superanleitung und auch noch nett präsentiert! Soetwas braucht man für den Anfang.
    KLipp und klar erklärt, was zu tun ist.

    Antworten
  2. Genau so etwas habe ich gesucht. Hört sich super an.
    Da ich leider ab und zu das Wasserabstellen vergesse und hier im Mietshaus keine Installationsänderungen vornehmen will,
    hatte ich mir gedacht, den Wasserzähler in festen Zyklen (15 Min) abzulesen und auszuwerten.
    Danach dann Warnmeldung über Alexa und Pushover.

    Antworten
    • Das ist auch ein tolles Projekt, um jedweden unsmarten Zähler ablesen zu können. Jomjol arbeitet auch unermüdlich an Verbesserungen.
      Wenn Der kleine ESP denn bis in Deine Wohnung funken kann, wäre das ja super. Da kommt es eben auch sehr viele Faktoren an, aber ich drücke Dir ganz fest die Daumen!
      Vielleicht kannst Du aber noch einen günstigen OpenWRT-Router mit externen Antennen in der Nähe des ESP aufbauen? Klar, das halbiert die Geschwindigkeit, aber auf die kommt es hier nicht an. Die LAN-Ports muss Du natürlich deaktivieren – oder Du vertraust Deinen Nachbarn in einem unüblichen Maße. 😀

      Antworten
  3. Hallo Michael,

    tolle Anleitung. Genau das habe ich gesucht. Möcht ich auch angehen das Projekt. Hab aber noch eine (vielleicht dumme) Frage. Die Halterung, also ich meine nicht die für für das ESP Modul, sondern das schwarze Rohr hast Du ja auch selbst gedruckt. Das ist doch dann ein komplett gekapseltes Gehäuse. da kommt doch kein Licht durch? Wie kann da die Ablesung durch die Kamera funktionieren? Oder bin ich da irgendwie komplett auf dem Holzweg?
    Welchen Abstand braucht denn die Kamera vom Zähler? Würde mir dann auch so ein Teil zeichnen und drucken
    Vielen Dank schon mal im voraus

    Antworten
    • Das Gehäuse ist doch oben komplett verlinkt, da musst Du nichts zeichnen. Das Gehäuse sollte lichtundurchlässig sein, da die Kamera einen Blitz hat

      Antworten
  4. Danke für die Super detaillierte Anleitung! Muss das Gehäuse so hoch sein bzw. die Kamera so weit weg vom Zählwerk sein? Meine Wasseruhr ist ziemlich verwinkelt verbaut und einen so hohen Turm würde ich wahrscheinlich nicht unterbekommen.

    Grüße,
    Martin

    Antworten
    • Du müsstest die Linse weiter herausdrehen, dann sollte es auch mit einem kurzen Turm klappen. Aber ohne Gewähr. 🙂 Vielleicht musst Du auch noch den Blitz irgendwie abdunkeln.

      Antworten
  5. Ich versuche mich auch gerade an dem Ding.
    Scheitere aber schon daran, den EPS32 in den Bootloader Mode zu setzen.
    Hat da jemand einen Tipp. Ich hab den ESP32 von der oben genannten Ebay Seite bestellt.
    Muss ich da irgendwas “kurzschliessen”?

    Danke

    Antworten
      • Hallo Hessi,
        ich habe auch ein Problem: Ich versuche meinen Raspberry zum Flashen der Firmware zu missbrauchen. Nach dem Ausführen des FIrmware-Flashens blinkt das ESP32_CAM-MB ganz wild rot. Nach dem Neustart des ESP-Moduls mit der SD-Karte habe ich nix am Blinken. Leider ist der ESP dann aber auch nicht im WLAN zu finden.

        Antworten
  6. Hallo Michael,
    der neue ESP32-CAM-MB (jetzt mit Micro USB Motherboard, daher MB?) ließ sich jetzt flashen. Aber booten tut das Ding nicht, jedenfalls taucht’s nicht im WLAN auf. Weder mit einer 16 GB Sandisk Karte, noch mit 1 (!) GB Karte (aus meinem alten Garmin GPS).
    Vielleicht liegt es auch an der Fritte, die macht WPA2+WPA3.
    Habs aber auch an einer Fritte probiert, die nur WPA2 macht.
    Werd also mal eine andere SD Karte bestellen.
    Gut, dass ich (noch) nicht in einen 3D Drucker investiert habe 🙂
    Grüße, Gerd

    Antworten
    • Das ist bestimmt die Fritte. Damit liefen bei mir auch einige Smart Home-Devices und IIRC ein alter FireStick nicht. Von den alten Spielkonsolen ganz abgesehen.
      Schalte WPA3 ab und teste es doch einfach.

      Antworten

Schreibe einen Kommentar

Ich bin mit der Datenschutzerklärung und der Speicherung meiner eingegebenen Daten einverstanden.