Was­ser­uhr für 20 Euro smart machen

Lese­dau­er 8 Minu­ten

Ich woll­te ger­ne unse­ren Was­ser­ver­brauch über­wa­chen, auch um bei einer Lecka­ge recht­zei­tig genug gewarnt zu wer­den. Aber… unse­re Was­ser­uhr ist strutz­edumm! Die hat nicht ein­mal einen Magnet für ein Reed-Relais oder einen Hal­ter für eine Licht­schran­ke. Man kann für hun­der­te von Euro aber auch smar­te Was­ser­uh­ren kau­fen und hin­ten die offi­zi­el­le Was­ser­uhr für wie­der­um hun­der­te von Euro ein­bau­en las­sen. Zum Glück gibt es aber fin­di­ge Bast­ler und am Gemein­wohl inter­es­sier­te Genies (aus mei­ner Sicht), die da was zusam­men­ge­codet haben. Lasst uns also die Was­ser­uhr smart machen.

Wer hat es erfunden?

Jom­jol ist zum Bei­spiel so ein Typ. Der hat „Digi­ti­zer – AI on the edge – An ESP32 all inclu­si­ve neural net­work reco­gni­ti­on sys­tem for meter digi­ta­liz­a­ti­on” geschrie­ben. Das Pro­gramm läuft auf einem win­zi­gen ESP32, der eine ein­ge­bau­te Kame­ra besitzt und wohl mit sei­nen paar Mega­hertz in der Lage ist, künst­li­che Intel­li­genz ein­zu­set­zen. Mir ist egal, wie genau er das macht, aber das Ergeb­nis ist abso­lut faszinierend! 🙂
„WILLKOMMEN (dra­ma­ti­sche Pau­se) IN DER ZUUUKUNFT!”
Hach! Das woll­te ich schon immer mal schreiben!


Ein ESP32-CAM mit einem Strom­ver­sor­gungs- und Pro­gram­mier­mo­dul. Moment… ist das ein Fus­sel links oben? Ja, das Ding ist schon echt klein.

Wo den ESP kaufen?

Den ESP habe ich auf Ebay bei jan­fried­ri­ch­elek­tro­nik­ver­sand bekom­men. So sper­rig der Ebay-Name ist, so freund­lich und zuvor­kom­mend ist aber der gute Mann.
Das Set nennt sich „Star­ter­set HK-ESP32-CAM-MB | ESP32-CAM + OV2640 Kame­ra + CH340G USB2Serial” und kos­tet mit Ver­sand gera­de mal 13 Euro.

Scharf stel­len!

Die Kame­ra auf dem Board ist aber auf eine grö­ße­re Ent­fer­nung ein­ge­stellt, als wir benö­ti­gen. Wir müs­sen also die Ver­kle­bung mit einem Skal­pell rund­um anrit­zen und die Lin­se ca 14 Umdre­hung gegen den Uhr­zei­ger­sinn dre­hen, damit die Kame­ra aus einer halb­wegs akzep­ta­blen Ent­fer­nung das Zif­fern­blatt der Was­ser­uhr scharf stel­len kann.

Zube­hör!

Dazu brau­chen wir noch ein ein­fa­ches, klei­nes Micro-USB-Netz­teil mit 500 mA (0,5 A, 2,5 Watt) und eine maxi­mal 16 GB gro­ße microSD-Karte.
Die Gesamt­kos­ten lie­gen bei ca. 21 Euro.

Ach ja… gut wäre ein 3D-Drucker.
Man kann aber auch aus einem pas­sen­den Abwas­ser­rohr (oder einer geroll­ten Pap­pe) und einem Stück Pap­pe für den Deckel ganz ein­fach und schnell eine Hal­te­rung für den Was­ser­zäh­ler bauen.
Ich habe mit PETG die Hal­te­rung gedruckt, die Jom­jol dafür ent­wor­fen hat. Lei­der hat­te ich kein schwar­zes PLA vor­rä­tig – schwarz soll­te es aber schon sein, sonst wer­den die Auf­nah­men überbelichtet.


Naja, ich bin nicht so der PETG-Dru­cker unter dem Herrn. Sieht nicht so geil aus. Aber funzt.
Nach­trag: Jo, habe neu­lich ein Ersatz­teil für mei­nen RC-Car gedruckt und dabei 240 Grad gefah­ren. Das Ergeb­nis war abso­lut super! Sah fast aus wie aus Carbon.


Ja, das sieht an den Rän­dern (Unter­sei­te) der Ein­zel­tei­le noch blö­der aus, aber ich habe das gan­ze Ding ohne Sup­port direkt in die Luft gedruckt.
Aller­dings sind mir gleich bei der Anpro­be auf der Was­ser­uhr eini­ge der „Clip­se” abge­bro­chen. Viel­leicht muss ich hei­ßer drucken?

Aber küm­mern wir uns erst­mal um die Installation!

Naja, das geht schon extrem schnell.
Viel schnel­ler uns ein­fa­cher, als ich es erwar­tet hat­te. Ich habe so einen ESP32 noch nie in der Hand gehabt, geschwei­ge denn mit einer neu­en Firm­ware bedampft.

Die Anlei­tung ist für ein Debi­an-Linux. Ich benut­ze seit 2005 kein Win­dows mehr. Für Win­dows gibt es aber Pro­gram­me mit gra­fi­scher Ober­flä­che, die das Glei­che (nur umständ­li­cher) machen, was ich unter Ubun­tu mit ein paar kopier­ten Befehls­zei­len in weni­gen Sekun­den erle­di­ge. Bevor die Win­dows-Jün­ger ihre Pro­gram­me aus dem Netz gela­den, instal­liert und am Start haben, bin ich schon lan­ge fertig. 😉

Also, für Euch durch­ge­schwitz­te, maus­schub­sen­de, viren­lie­ben­de, Sicher­heit instal­lie­ren­de und opti­mie­rungs­tools­gläu­bi­ge Win­dows-Fan­boys: Ihr braucht das Flash-Down­load-Tool von Expre­sif. Damit die Firm­ware des ESP löschen und mit der firmware.bin aus dem unten ange­ge­be­nen Link neu flashen.

Win­dows 10 hat aber auch die Powers­hell (als Admin star­ten!), die Linux-Kom­pa­ti­bi­li­tät bereit­stellt. Ihr könnt also auch ein­fach „sudo apt-get install” durch „npm install” erset­zen, schät­ze ich mal. Aber kei­ne Ahnung, ob Win­dows pip und esp­tool in den Quel­len hat. Könnt ja einen Kom­men­tar hier drun­ter schrei­ben, ob das klappt.

Aber mal ehr­lich: Mit Win­dows wer­det Ihr in der Smar­thome-Welt nicht weit kom­men. Allei­ne um Tuya-Gerä­te OTA mit Tas­mo­ta zu flas­hen, müsst Ihr ein Linux am Start haben. Da könnt Ihr auch gleich kom­plett zu Ubun­tu wech­seln, habt kei­nen Stress mehr mit dau­ern­den Update-Neu­starts und braucht kei­ne Angst vor Viren und ande­rer Schad­soft­ware zu haben. Die Pro­gram­me (oder ähn­li­che), die Ihr nutzt, gibt es auch für Ubun­tu. Und, hey!, Ihr seid damit auch voll­kom­men legal unter­wegs und braucht kei­ne Pro­gram­me mehr zu klau­en. Super, oder?


Firm­ware laden!

https://​git​hub​.com/​j​o​m​j​o​l​/​A​I​-​o​n​-​t​h​e​-​e​d​g​e​-​d​e​v​ice

Im Down­loads-Ver­zeich­nis entpacken.


Ter­mi­nal öffnen!


Pip installieren!

sudo apt-get install python3-pip

 

ESP-Tool instal­lie­ren!

sudo pip install esptool

ACHTUNG: ESP-Tool NICHT aus den Paket­quel­len der Dis­tri­bu­ti­on installieren!

In das Ver­zeich­nis der gela­de­nen Firm­ware wechseln!

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

 

Den ESP32 via USB an den Rech­ner anschlie­ßen und:

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

 

Du bekommst eine Feh­ler­mel­dung, dass das ESP­tool nicht vor­han­den wäre?
pip show -f esptool

Ist das Ver­zeich­nis esp­tools im eige­nen 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 eigent­lich soll­te das Instal­lie­ren pro­blem­los funk­tio­nie­ren. Nur bei mir halt nicht. 😛



Eine Micro-SD-Kar­te mit FAT32 formatieren.
Zum Bei­spiel mit Gno­me Disks.

In Down­load­s/AI-on-the-edge-device-mas­ter/sd-car­d/ die Datei wlan.ini anpas­sen und wie­der speichern.
Ein­fach die SSID und das Pass­wort des eige­nen Netz­wer­kes eintragen:

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

Die fol­gen­den Zei­len ändern:

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

Optio­nal:

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

Den Inhalt des Ver­zeich­nis­ses „/​SDCard” auf die lee­re SD-Kar­te kopie­ren und in den ESP32 stecken.
Kur­zer Test auf dem Schreib­tisch: Läuft das Ding? Der ESP32 braucht nur weni­ge Sekun­den, um zu boo­ten und sich am WLAN anzumelden.
Die IP-Adres­se fin­dest Du her­aus, in dem Du nach den Netz­werk­ge­rä­ten in Dei­nem Rou­ter schaust, das Tool „Angry IP Scan” benutzt, oder Du warst so cle­ver (so wie ich 🙂 )und hast dem ESP in der wlan.ini eine fes­te IP vergeben. 😛

Die­se IP im Brow­ser öffnen!
Es soll­te gleich /setup.html geöff­net wer­den (mer­ke Dir die­sen Pfad, falls Du die Instal­la­ti­on spä­ter noch ein­mal ansto­ßen willst)

Gut, mehr kön­nen wir gera­de nicht machen. Ab in den Keller!
Den ESP auf dem Hal­ter befes­ti­gen und bei­des auf die Was­ser­uhr stecken.

Der ESP boo­tet nicht? Du fin­dest ihn nicht im Netzwerk?
Das liest man im Forum häu­fi­ger! Laut dem User pfried soll­te man am bes­ten San­Disk Extre­me SD-Kar­ten benut­zen. Er emp­fiehlt das Tool „San­Disk Res­cue­Pro Delu­xe”. Den Lizenz­schlüs­sel fin­det man aber wohl nur auf den Extreme-Karten-Verpackungen.
Ich hat­te so ein Pro­blem bis­her nicht. Erwähn­te ich, dass ich nur noch mit Ubun­tu unter­wegs bin… nein?
Also, wenn der ESP nicht läuft, dann pro­biert bit­te irgend­wel­che fri­sche par­ti­tio­nie­ren und for­ma­tier­ten ande­ren SD-Kar­ten (bis maxi­mal 16 GB) aus.
In mei­nem ESP steckt eine SD-Kar­te mit 8 GB von Toshi­ba. Ging auf anhieb.

Was ich ver­bockt hat­te, war ein Tipp­feh­ler beim WLAN-Pass­wort. Auch dar­an kann es lie­gen, dass der ESP nicht zu fin­den ist.
Unter Open­WRT kannst Du aber zum Bei­spiel in der Über­sicht alle Gerä­te sehen, die sich mit dem WLAN ver­bin­den woll­ten. Bei der Frit­te musst Du halt das Log durchwühlen.

  • (Wer­bung)

Befes­ti­gung auf dem Wasserzähler

Wasseruhr smart machen
Sitzt und wackelt. Passt eher schlecht.

Ja, Jom­jol rech­ne­te nicht damit, dass ich bau­ern­schlau gleich das Pro­gram­mier­mo­dul auf dem ESP las­se, des­we­gen passt sein Deckel nicht über mei­nen ESP. Aber für drei Euro Auf­preis woll­te ich mir kei­ne USB-Span­nungs­ver­sor­gung zusammenlöten.
Der o.a. Ebay-Händ­ler war auch so freund­lich, die Span­nung zu mes­sen, die das Pro­gram­mier­board aus­gibt. Es sind 5V, was gut ist, denn der ESP läuft mit nur 3,3V nicht zuver­läs­sig. Es mein­te nur noch, dass das Modul nicht dafür gedacht wäre, dau­ernd auf dem ESP zu ste­cken. Naja, es wird nichts warm und das Ding läuft bei mir nun schon über vier Wochen im Dau­er­be­trieb abso­lut zuver­läs­sig. Natür­lich wider­spricht das eigent­lich dem Sinn eines ESPs, wenn sei­ne GPI­Os belegt sind, aber ich brau­che die ja nicht. Das ist ja nur eine bes­se­re Webcam.


Befes­tigt und den ESP mit dem Fei­gen­blatt des Pan­zer­bands vor Kurz­schlüs­sen geschützt.
Im Som­mer wird die Was­ser­uhr schwit­zen und dann fällt ver­mut­lich eh alles ab.

Klar, ich hät­te mir einen Deckel für den ESP ent­wer­fen kön­nen. Mache ich viel­leicht irgend­wann mal, aber nicht jetzt. Pan­zer­band muss reichen.

Auch woll­te die Hal­te­rung nicht so recht auf die Was­ser­uhr pas­sen. Die ist irgend­wie selt­sam geformt, sodass ich wie­der mit Tape alles grob und sehr pro­vi­so­risch befes­tigt habe.
Auch da baue ich mir viel­leicht mal eine pas­sen­de Base. Jom­jol hat das ja alles aus­tausch­bar mit Bajo­nett-Ver­schlüs­sen ver­se­hen, so dass man nicht bei Aus­tausch die gesam­te Hal­te­rung neu dru­cken muss.
Aber ich woll­te schnel­le Ergeb­nis­se sehen! ERGEBNISSE! 😀

Okay, Du hast die Strom­ver­sor­gung am ESP ange­schlos­sen? Super!

Set­up


Begrü­ßung.
Ich habe lei­der kei­nen Screen­shot gemacht, aber in dem ers­ten Dia­log rich­tet man das Bild waa­ge­recht aus. Ist ganz intui­tiv. Erst in gro­ben Schrit­ten, dann fei­ner. Man kann eine Hilfs­li­nie zie­hen und damit zum Bei­spiel die Kan­ten der digi­ta­len Zif­fern in einer Linie ausrichten.

Refe­renz­punk­te setzen.


Wir mar­kie­ren zwei unver­än­der­li­che Mar­ken auf der Was­ser­uhr, damit sich die KI bes­ser ori­en­tie­ren kann.


Hier habe ich die Kubik­me­ter als zwei­ten Refe­renz­punkt ausgewählt.


Wir mar­kie­ren alle digi­ta­len Zah­len von links nach rechts. Dabei wird über jede Zif­fer mit der Maus ein Rah­men gezo­gen. Kinderspiel.
Bit­te auf die Namen ach­ten und dar­auf, dass Du über­flüs­si­ge ROIs löschst. Das pas­siert schnell, wenn man ein wenig rumspielt.
Zum Schluss ein­fach noch ein­mal jeden Bereich ein­zeln auf­ru­fen und prü­fen. Mit Save sichern nicht ver­ges­sen und mit Next weiter.


Das glei­che Spiel mit den ana­lo­gen Zei­gern. Hier aller­dings von rechts nach links, von groß nach klein.


In der config.ini muss noch der MQTT-Ser­ver ange­ge­ben wer­den. mqtt://IP_DEINES_IOBROKERS:1883
Als MQTT-User habe ich hier… naja, Du siehst es ja. 😀 Was solls? In das Netz­werk kommt eh nie­mand rein und ich wer­de auch kei­nen Fern­zu­griff haben wollen.
Update und weiter.


Nun kannst Du das Sys­tem neu star­ten. Das dau­ert fünf Sekun­den oder so.

Inte­gra­ti­on in IOBroker

Im ioBro­ker geht es weiter:
Natür­lich funk­tio­niert das auch so mit allen ande­ren MQTT-fähi­gen (also allen) Smar­tHome-Zen­tra­len wie open­HAB und wie sie alle heißen.


Vor­her hast Du am bes­ten im IOBro­ker den MQTT Server/​Client Adap­ter instal­liert und mit den MQTT-User­na­men aus der config.ini des ESP abgeglichen.
Oder halt auch nach­her. Ist egal. 🙂


Nun erscheint unter Objek­te, mqtt.0 unser Zäh­ler­stand. Ganz automagisch! 🙂


Wir kli­cken wie­der auf das klei­ne Werk­zeug­sym­bol und akti­vie­ren die Auf­zeich­nung durch den History-Adapter.
Das hat­ten wir ja schon mit dem Strom­zäh­ler so gemacht.

Einen klei­nen Wer­muts­trop­fen gibt es aller­dings: Der ESP ist nicht so fix. Er schafft nur rund eine Able­sung alle fünf Minu­ten. Aber egal, das passt schon, sieht nur auf den Dia­gram­men nicht sooo toll aus:


Hier die blau­en ecki­gen Was­ser­ver­bräu­che im Ver­gleich zu den fei­nen Dia­gram­men des Stromverbrauches.

Die­se Lösung ist auch für Wochen­end- und Feri­en­häu­ser inter­es­sant. Aber das schrieb ich auch schon im Arti­kel über den smar­ten Stromzähler.

BTW: Auch die­ses Pro­jekt kann man dazu benut­zen, einen uns­mar­ten Strom­zäh­ler smart zu machen! Dazu muss man natür­lich eine ande­re Hal­te­rung bau­en und ggf. damit leben, dass die Tür des Zäher­kas­tens (der Unter­ver­tei­lung) nicht mehr schließt.

6 Gedanken zu „Was­ser­uhr für 20 Euro smart machen“

  1. Super­an­lei­tung und auch noch nett prä­sen­tiert! Soet­was braucht man für den Anfang.
    KLipp und klar erklärt, was zu tun ist. 

    Antworten
    • Das freut mich sehr. Ich habe Dein Dra­ma mit den SD-Kar­ten auch noch nachgetragen. 🙂
      Das Pro­blem hat­ten ja schon viele. 

      Antworten
  2. Genau so etwas habe ich gesucht. Hört sich super an.
    Da ich lei­der ab und zu das Was­ser­ab­stel­len ver­ges­se und hier im Miets­haus kei­ne Instal­la­ti­ons­än­de­run­gen vor­neh­men will,
    hat­te ich mir gedacht, den Was­ser­zäh­ler in fes­ten Zyklen (15 Min) abzu­le­sen und auszuwerten.
    Danach dann Warn­mel­dung über Ale­xa und Pushover. 

    Antworten
    • Das ist auch ein tol­les Pro­jekt, um jed­we­den uns­mar­ten Zäh­ler able­sen zu kön­nen. Jom­jol arbei­tet auch uner­müd­lich an Verbesserungen.
      Wenn Der klei­ne ESP denn bis in Dei­ne Woh­nung fun­ken kann, wäre das ja super. Da kommt es eben auch sehr vie­le Fak­to­ren an, aber ich drü­cke Dir ganz fest die Daumen!
      Viel­leicht kannst Du aber noch einen güns­ti­gen Open­WRT-Rou­ter mit exter­nen Anten­nen in der Nähe des ESP auf­bau­en? Klar, das hal­biert die Geschwin­dig­keit, aber auf die kommt es hier nicht an. Die LAN-Ports muss Du natür­lich deak­ti­vie­ren – oder Du ver­traust Dei­nen Nach­barn in einem unüb­li­chen Maße. 😀 

      Antworten
  3. Hal­lo Michael,

    tol­le Anlei­tung. Genau das habe ich gesucht. Möcht ich auch ange­hen das Pro­jekt. Hab aber noch eine (viel­leicht dum­me) Fra­ge. Die Hal­te­rung, also ich mei­ne nicht die für für das ESP Modul, son­dern das schwar­ze Rohr hast Du ja auch selbst gedruckt. Das ist doch dann ein kom­plett gekap­sel­tes Gehäu­se. da kommt doch kein Licht durch? Wie kann da die Able­sung durch die Kame­ra funk­tio­nie­ren? Oder bin ich da irgend­wie kom­plett auf dem Holzweg?
    Wel­chen Abstand braucht denn die Kame­ra vom Zäh­ler? Wür­de mir dann auch so ein Teil zeich­nen und drucken
    Vie­len Dank schon mal im voraus 

    Antworten
    • Das Gehäu­se ist doch oben kom­plett ver­linkt, da musst Du nichts zeich­nen. Das Gehäu­se soll­te licht­un­durch­läs­sig sein, da die Kame­ra einen Blitz hat 

      Antworten

Schreibe einen Kommentar

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