Nachdem Strom– und Gaszähler smart gemacht und in meine FHEM Instanz übernommen wurden, bleibt es nnur noch mit dem Wasserzähler selbiges zu tun.
Wie bekommt man einen herkömmlichen Wasserzähler, der in der Regel weder über einen Impulsgeber noch über eine sonstige Schnittstelle verfügt, digitalisiert und die Hausaumation integriert? Klaro. Man könnte hinter den eigenlichen Zähler eine elektronische Messeinheit installieren. Aber dieser Aufwand ist mir dann doch zu groß und es muss eine andere Lösung her.
Die Lösung heisst: ESP32 CAM.
Auch wenn der Aufwand zur Installation und Inbetriebnahme sich grundlegend von der einer Gas- oder Stromzählerintegration unterscheidet, habe ich diese Aufwand nicht gescheut und bin es angegangen. Was soll ich sagen – es funktioniert 🙂
Aber der Reihe nach….
Was ist ein ESP32CAM?
Beim ESP32 CAM handelt es sich um ein recht minimalistisches Einplatinenmodul mit OV2640 Kameramodul, welches sich insbesondere durch seinen niedrigen Energiebedarf und seine kompakte bauweise auszeichnet.
Im Grunde spricht von einem kleinen Entwicklungsboard, welches auf ESP32 Chipbasis basiert. Der Clou: das ganze kann zudem kabellos via Bluetooth und WLAN kommunizieren. Für mein Projekt also absolut perfekt.
Das ESP lässt sich mit etwaigen Firmwarelösungen bespielen (flashen),. In unserem Fall kommt hier das projekt „AI on the edge“ zum Einsatz.
Das Modul selbst, inkl. MicroUSB Erweiterungsplatine zum Anschluss an den PC, gibt´s beispielsweise beim „Jeff“ im Doppelpack 😉 für rund 24€.
Die Erweiterungsplatine dient zum einen dem einfachen Anschluss an den PC und zum anderen im Nachgang der Spannungsversorgung via Micro USB Port (5V / 500mA)
AI on the edge ist eine KI basierte (cloud unabhängig!) Datenverarbeitungsarchitektur, die es ermöglicht KI unabhängig von cloudbasierten KI Strukturen anzuwenden. Die Verarbeitung der Informationen erfolgt direkt auf dem Gerät. Also aktuell ein durchaus moderner und zeitgemäßer Ansatz.
Was ist erforderlich?
Da wie eingangs erwähnt keine Schnittstellen am Wasserzähler vorhanden sind und wir keinen mechanischen Eingriff am Geräte selbst vornehmen wollen/dürfen, muss eine optische Erkennung her. Und genau das wird die ESP für uns übernehmen. Die gewonnenen „Bildinformationen“ werden dann direkt auf dem ESP Chip mit einer kleinen KI verarbeitet und die eigentlichen Zahlenwerte extrahiert.
Diese Daten werden dann via MQTT Protokoll an die entsprechende HA Instanz (bei mir FHEM) weitergeleitet.
ESPCAM32 vorbereiten
Als ersten Schritt, muss der ESP vorbereitet und mit der richtigen Firmware geflasht werden. Hier gibt es mehrere Wege.
Zum einen kann man via Console (linuxbasiert) mit dem sog. esptool ans Werk gehen. Alternativ besteht aber auch die Möglichkeit der Nutzung eines Windowstools. Wer es ganz einfach haben möchte, versucht sich am WebInstaller, der inzwischen recht zuverlässig funktioniert.
In allen Fällen ist es erforderlich beim Flashvorgang die GPIO Taste am ESP zu drücken und gedrückt zu halten, damit auf den Bootloader des Chips zugegriffen werden kann.
Ich habe mich am WebInstaller versucht und war von der Einfachheit und Zuverlässigkeit des Flashprozesses begeistert.
Zum Webinstaller geht es hier…
Entscheidet man sich für den klassischen Weg, kann man sich die notwendigen Tools und Firmware Releases bei github herunterladen.
Die im November aktuelle Version ist die 15.3.0.
Neben dem eigentlichen Flashvorgang für den ESP Chip wird noch eine Micro SD Karte benötigt, die die dateibasierten Inhalte beherbergt. Dieses ist neben der WebGUI von AI auch die WLAN Konfigurationsdatei. Beim Webinstaller wird die Dateistruktur gleich mit auf die SD Karte gepackt. Beim klassischen Weg, muss der Inhalt des Ordners sd-card des Downloadpaketes auf die SD Karte kopiert werden. Wichtig ist es darauf zu achten, dass die SD Karte „maximal“ mit dem FAT32 Dateisystem formatiert wurde. Also kein extFAT oder NTFS.
Zudem kann zu Problemen mit zu grossen Speicherkarten kommen. In der Regel reicht aber eine 16 GB Karte vollkommen aus. Auch 8GB wären noch ausreichend.
Das beschreiben der SD Karte erfolgt direkt am bzw. im PC/Client. Ein Zugriff via USB Anbindung des ESP funktioniert nicht.
WLAN Konfiguration
Diese ist denkbar einfach. Im Root der SD Karte befindet sich nach erfolgtem Kopiervorgang, sei es via WebInstaller oder klassischem Flash, eine Datei mit dem Namen WLAN.ini. Hier sind im Parameter ssid die SSID des heimischen WLANs und im Feld Passwort das entsprechende Passwort einzutragen.
Der erste Start
Hat man alles wie beschrieben gemacht, steht der erste Start an. Dafür steckt man den ESP über die Erweiterungsplatine an den PC oder aber ein Netzteil (5V / 500mA) an. Die rote LED fingt lustig an zu blinken (5x). Nun kann man prüfen, ob man das Gerät im WLAN ausfindig machen kann. Hier einfach auf dem Router nachschauen, welche IP Adresse vergeben wurde.
Via Browser kann man nun auf die Weboberfläche von AI on the edge zugreifen.
Der Assistent
Nach dem ersten Start wird man durch einen Einrichtungsassistenten geleitet, welcher durch die entsprechenden Beschreibungen eigentlich alles erklärt. Über den Menüpunkt Settings kommt man aber auch im Nachgang noch an die jeweligen Parameter. Aber dazu später mehr.
Zunächst beschäftigen wir uns mit dem an sich schwierigsten Teil unseres Projektes…
Objektiv einstellen
Das Objektiv weist eine entsprechende Unschärfe auf. Das liegt daran, dass der Hersteller dieses auf unendlich eingestellt und zu allem Überluss die Stellung mit einem Klebepunkt fixiert hat. Nun heisst es erstmal Klebepunkt entfernen und Objektiv nachstellen.
Die Sache geht man am besten mit einem scharfen, spitzen Messer an. Hier ausreichend Zeit nehmen und den Kleber entfernen. Natürlich aufpassen, dass man nicht abrutscht und sich die Platine zerlegt (oder das Objektiv).
Ist dieses geschafft, nimmt man sich 2 Spitzzangen. Mit der einen halten wir den quadratischen Sockel, mit der 2. drehen wir das Objektiv vorsichtig gegen den Uhrzeigersinn. Ggf. muss man die Einstellung später noch einmal wiederholen.
Alles in Allem ist dieses tatsächlich der schwierigste und „frickeligste“ Teil.
Aufbau auf den Wasserzähler
So! Jetzt muss der ganze Spass irgendwie auf den Wasserzähler. Im Internet kann man sich, je nach Zählerdurchmesser, aus dem 3 Drucker generierte Aufbauten bestellen. Diese liegen bei 25 – 30€. Wenn man einen eigenen 3D Drucker hat, sucht man sich im Netz „Baupläne“ und macht es selbst.
Alternativ kann man aber auch seiner Kreativität freien Lauf lassen. So habe ich es gemacht. Auf in den Baumarkt und mal geschaut was da so gibt. Wichtig ist der Durchmesser des Wasserzählers sowie die Aufbauhöhe. Diese sollte gut 12 cm betragen.
Bei mir ist es dann eine Kaffeepadaufbewahrungsdose geworden. 🙂 Das passt perfekt und muss nur am „Boden“ (was zukünftig der obere Teil ist) ausgeschnitten werden, damit der Chip inkl. CAM befestigt werden kann.
Das Ganze Konstrukt setzt man dann auf die Wasseruhr auf, versorgt den Chip mit Spannung und ruft die Weboberfläche erneut auf. Im Einrichtungssetup wie bereits erwähnt, erstellt man im 2. Schritt ein neues Referenzbild. Hier chekt man dann auch die Schärfe und justiert diese ggf. nach.
Am Ende sollte man ein Rerenzbild in ungefährer Güte wie hier erhalten:
Diese Schärfe ist vollkommen ausreichend und der Einrichtungsassistent kann forgesetzt werden.
Zu den farblichen Rahmen:
rot: Zu definierende Referentzpunkt (2 x das Ganze)
blau: Die auszuwertenden Zählerstellen (bis zu 4).
grün: Analogrädchen. An sich zu vernachlässigen
Hat man den Assistenten durchlaufen, war es dass schon fast und man kann den Aufbau abschliessend auf der Uhr fixieren. Das kann via Klebepunkt (Heisskleber) oder Klebeband geschehen. Wichtig: Nicht verwackeln – anonsten sichten (Web) und erneut ausrichten.
Fertige Montage:
Durch die einbeuate LED an der Platine wird die Wasseruhr entsprechend ausgeleuchtet. Störfaktoren von Aussen, wie Streulicht etc., sind ausgeschlossen.
Anbindung an FHEM
Auch dieses ist schnell erledigt. Ausgehend davon, dass FHEM bereits als MQTT Server fungiert und das autocreate aktiviert ist, muss man nur noch in den Settings des ESP die MQTT Serveradresse / IP angeben.
Durch das autocreate wird in der FHEM Instanz kurz drauf ein neues MQTT2Device erstellt. Die Ablesewerte findet man dann in den Readings prev bzw. raw.
Hinweis: Die Nachkommastellen generiert die KI des AI on the Edge ausgehend vom Stand des letzten Rädchens. Diese kann auch schonmal „rucklaufend“ sein. Ist aber bei der erforderlichen Genauigkeit einer solchen „Privatlösung“ zu vernachlässigen.
Nun kann man sich innerhalb der präferierten Hausautomationslösung die tollsten Sachen bauen. Auch die Überwachung eines zu hohen Wasserverbrauchs in kurzer Zeit ist machbar. So liessen sich ggf. auch Wasserleitungsschäden im Haus aufdecken.
Bei Fragen gerne via Mail oder Kommentar fragen.