NEWS
Wasserzähler - Selfmade
-
Hallo zusammen,
ich habe meine Urlaub für ein paar Updates verwendet:
- Erste lauffähige Version des all-in-one ESP32 Systems (AI-on-the-edge):
https://github.com/jomjol/AI-on-the-edge-device/wiki
https://github.com/jomjol/AI-on-the-edge-device
Wesentlicher Vorteil ist neben dem Entfall dess Docker-Containers vor allem die vollständige Integration der web-basierten Konfiguration. Ihr könnt jetzt alles direkt auf dem ESP32 machen (Referenzbild erzeugen, Alignment definieren, ROIs festlegen, ... Config.INI bearbeiten, ...). Das funktioniert besser wie auf meinem Server und macht diesen längerfristig überflüssig.
- Update der Tflite-Files für die analogen und die digitalen neuronalen Netze (Version 6.3.0):
https://github.com/jomjol/neural-network-analog-needle-readout
https://github.com/jomjol/neural-network-digital-counter-readout
Ich habe alle von euch gesendeten Bilder verarbeitet und bei den analogen Bildern nochmals einige der Labeling verbessert. Es gibt jetzt auch Versionen mit deutlich kleineren Netzwerken, die quasi genauso gute Erkennungsergebnisse erzielen, aber natürlich deutlich schneller sind (insbesondere für die ESP32-Variante )
Die digitalen Ziffern habe ich alle nochmals sortiert und vor allem ein klares Kriterium für "gute" Ziffern und schlechte Ziffern ("NaN") definiert. Das wird nicht für jeden passen, den einige von euch gemeldete vermeindlich falsch erkannten Bilder fallen definitiv in die Kategorie "NaN". Ein eindeutiges Kriterium ist aber notwendig. Details findet ihr in GithubHoffe, die neuen Versionen helfen euch weiter und laufen auch bei euch. Bei mir ist die V3 (AI-on-the-edge) seit 4 Wochen im Dauereinsatz und läuft soweit ganz gut. Ich bin für jedes Feedback und auch Bug-Reporting oder Verbesserungsvorschläge dankbar.
Beste Grüße,
jomjol - Erste lauffähige Version des all-in-one ESP32 Systems (AI-on-the-edge):
-
@jomjol Vielen Dank für den Update und deine super Arbeit! Am liebsten würde ich gleich loslegen, aber mir fehlt noch das oberste Teil des "Turmes" Die anderen 3 Teile habe ich bereits gedruckt. Du hast ja da schon was...ist ja egal wenn es noch nicht 100% perfekt ist. Kannst du das auch noch hochladen?
Nochmals vielen Dank für alles!
Michael -
Hi @michaeljoos,
ich habe das Design auch in Thingiverse veröffentlicht:
https://www.thingiverse.com/thing:4573481
Bis eben war noch ein falsches STL drin, jetzt sollte es aber passen. Hoffe, dass enthält, was du braucht.
Gruß,
jomjol -
@jomjol Yep, vielen Dank. Hab das Teil heute gedruckt
Jetzt stehe ich aber gerade vor einem anderen Problem. Ich habe den ESP32 geflasht, das hat soweit geklappt mit dem Tool. Eine microSD ist ebenfalls drin mit diesem Inhalt: https://github.com/jomjol/AI-on-the-edge-device/tree/master/sd-card
Die wlan.ini ist ebenfalls angepasst und beim Aufstarten klappt die WLAN-Anmeldung auch (ich kann den ESP32 anpingen).--> Aber irgendwie hänge ich in einem Boot-Loop. Nach ca. 30s beginnt alles wieder von vorne mit der WLAN-Anmeldung und die Webpages kann ich gar nie aufrufen. Das Log-File sieht so aus:
Hast du eine Ahnung? Ich habe momentan nur eine 32GB-SD zur Hand und hab gelesen, dass offiziell nur 4GB unterstützt werden. Was hast du für eine Karte drin?
Gruss
Michael -
@michaeljoos Hatte das Problem auch grad, bin aber beim "Console-Log" vom ESP32 (einfach das USB-Seriell-Interface dran lassen und mit 115kBit Terminal lesen) draufgekommen das er ein Problem mit dem "PreValueUse" hat - hab es auf False gesetzt ( /config/config.ini ) und seitdem läuft es.
Bin gerade beim Konfigurieren auf meinen Wasserzähler. Hab übrigens auch eine 32GB-SD drin ohne Probleme derzeit.[PostProcessing]
;PreValueUse = True ; das geht damit nicht ?!?!?
PreValueUse = False@jomjol Danke für das aktualisierte stl-File, dachte zuerst ich hab bei meinem Slicer & 3D-Drucker das falsche File geladen gehabt.
-
@Vorlon1975 sagte in Wasserzähler - Selfmade:
@michaeljoos Hatte das Problem auch grad, bin aber beim "Console-Log" vom ESP32 (einfach das USB-Seriell-Interface dran lassen und mit 115kBit Terminal lesen) draufgekommen das er ein Problem mit dem "PreValueUse" hat - hab es auf False gesetzt ( /config/config.ini ) und seitdem läuft es.
Bin gerade beim Konfigurieren auf meinen Wasserzähler. Hab übrigens auch eine 32GB-SD drin ohne Probleme derzeit.[PostProcessing]
;PreValueUse = True ; das geht damit nicht ?!?!?
PreValueUse = False@jomjol Danke für das aktualisierte stl-File, dachte zuerst ich hab bei meinem Slicer & 3D-Drucker das falsche File geladen gehabt.
Danke für eure Hinweise - könnte sein, dass er eine preValue.ini braucht. Ich prüfe das mal und sage euch Bescheid - der Hinweis mit PreValueUse=False deutet ziemlich darauf hin.
-
@jomjol sagte in Wasserzähler - Selfmade:
@Vorlon1975 sagte in Wasserzähler - Selfmade:
@michaeljoos Hatte das Problem auch grad, bin aber beim "Console-Log" vom ESP32 (einfach das USB-Seriell-Interface dran lassen und mit 115kBit Terminal lesen) draufgekommen das er ein Problem mit dem "PreValueUse" hat - hab es auf False gesetzt ( /config/config.ini ) und seitdem läuft es.
Bin gerade beim Konfigurieren auf meinen Wasserzähler. Hab übrigens auch eine 32GB-SD drin ohne Probleme derzeit.[PostProcessing]
;PreValueUse = True ; das geht damit nicht ?!?!?
PreValueUse = False@jomjol Danke für das aktualisierte stl-File, dachte zuerst ich hab bei meinem Slicer & 3D-Drucker das falsche File geladen gehabt.
Danke für eure Hinweise - könnte sein, dass er eine preValue.ini braucht. Ich prüfe das mal und sage euch Bescheid - der Hinweis mit PreValueUse=False deutet ziemlich darauf hin.
Fehler gefunden: den Fall, dass es keine prevalue.ini gibt hatte ich zwar abgefangen, ABER die prevalue.ini im /config Verzeichnis hatte noch das alte Format und da ist er beim Parsen abgestürzt.
Korrektur: einfach Anfangs keine prevalue.ini im /config Verzeichnis. Die Datei wird im korrekten Format nach dem ersten korrekten Durchlauf (alle Ziffern erkannt) angelegt und dann verwendet. Dann funktioniert auch der Paramter PreValueUse=True von Anfang an.
Master-Version auf Github ist korrigiert. -
So, mein "AI-on-the-edge" läuft und liefert Daten in mein openHAB
Hier mal meine ersten Erfahrungen und Feedback:
- Alles innerhalb einer Web-Oberfläche zu machen inklusive Konfiguration ist super!!
- Momentan gibt es tatsächlich Probleme mit Chrome & Edge. Mit Firefox klappt alles. Das würde ich eventuell irgendwo in der WIKI ergänzen (falls ich es nicht übersehen habe...)
- Bei der Konfiguration der analogen ROIs und"save all to config.ini" hat es mir in der ini-Datei die digitalen ROIs überschrieben anstatt die analogen Werte zu setzen. Ich habe es dann manuell und direkt in der config.ini geändert
- Zu Beginn war mir nicht ganz klar, ob diese URLs immer noch dieselbe Funktion haben wie in der Docker-Version?
--> http://ip-address/wasserzaehler.html
--> http://ip-address/wasserzaehler.html?usePreValue
(beides liefert jetzt denselben Wert, für die Verwendung in openHAB verwende ich nach wie vor "usePreValue"
Noch ein Feature-Request : Ist es möglich, im File-Server eine Funktion einzubauen, um einen ganzen Ordner zu leeren oder zumindest mehrere/alle Files zu selektieren und dann zu löschen? Ich denke da vor allem an die vielen Log-Files welche sich schnell ansammeln.
Ansonsten top!
Gruss
Michael -
Habe ESP geflasht und SD karte beschrieben. Aber wie ist den der Netzwerkname ???? weiß im Moment nicht die IP um auf die Weboberfläche zu kommen !
-
@B3ta na die IP musst du doch im router finden können...
-
Alles ok. Hab es hat irgendwie nur lange gedauert bis es erreichbar war.
-
@michaeljoos sagte in Wasserzähler - Selfmade:
So, mein "AI-on-the-edge" läuft und liefert Daten in mein openHAB
Hier mal meine ersten Erfahrungen und Feedback:
- Alles innerhalb einer Web-Oberfläche zu machen inklusive Konfiguration ist super!!
- Momentan gibt es tatsächlich Probleme mit Chrome & Edge. Mit Firefox klappt alles. Das würde ich eventuell irgendwo in der WIKI ergänzen (falls ich es nicht übersehen habe...)
Danke für den Hinweise - mache heute Abend ein Update in der Doku.
Was ist denn die Fehlermeldung in Chrome?- Bei der Konfiguration der analogen ROIs und"save all to config.ini" hat es mir in der ini-Datei die digitalen ROIs überschrieben anstatt die analogen Werte zu setzen. Ich habe es dann manuell und direkt in der config.ini geändert
Quick-Fix habe ich hochgeladen (v1.0.2) - Testen kann ich erst heute Abend
- Zu Beginn war mir nicht ganz klar, ob diese URLs immer noch dieselbe Funktion haben wie in der Docker-Version?
--> http://ip-address/wasserzaehler.html
--> http://ip-address/wasserzaehler.html?usePreValue
(beides liefert jetzt denselben Wert, für die Verwendung in openHAB verwende ich nach wie vor "usePreValue"
Noch ein Feature-Request : Ist es möglich, im File-Server eine Funktion einzubauen, um einen ganzen Ordner zu leeren oder zumindest mehrere/alle Files zu selektieren und dann zu löschen? Ich denke da vor allem an die vielen Log-Files welche sich schnell ansammeln.
Guter Punkt - kannst du vielleicht in Github einen Feature Request stellen? Dann geht das nicht verloren.
Ansonsten top!
Gruss
Michael -
@jomjol sagte in Wasserzähler - Selfmade:
@michaeljoos sagte in Wasserzähler - Selfmade:
So, mein "AI-on-the-edge" läuft und liefert Daten in mein openHAB
Hier mal meine ersten Erfahrungen und Feedback:
- Alles innerhalb einer Web-Oberfläche zu machen inklusive Konfiguration ist super!!
- Momentan gibt es tatsächlich Probleme mit Chrome & Edge. Mit Firefox klappt alles. Das würde ich eventuell irgendwo in der WIKI ergänzen (falls ich es nicht übersehen habe...)
Danke für den Hinweise - mache heute Abend ein Update in der Doku.
Was ist denn die Fehlermeldung in Chrome?- Bei der Konfiguration der analogen ROIs und"save all to config.ini" hat es mir in der ini-Datei die digitalen ROIs überschrieben anstatt die analogen Werte zu setzen. Ich habe es dann manuell und direkt in der config.ini geändert
Quick-Fix habe ich hochgeladen (v1.0.2) - Testen kann ich erst heute Abend
- Zu Beginn war mir nicht ganz klar, ob diese URLs immer noch dieselbe Funktion haben wie in der Docker-Version?
--> http://ip-address/wasserzaehler.html
--> http://ip-address/wasserzaehler.html?usePreValue
(beides liefert jetzt denselben Wert, für die Verwendung in openHAB verwende ich nach wie vor "usePreValue"
Noch ein Feature-Request : Ist es möglich, im File-Server eine Funktion einzubauen, um einen ganzen Ordner zu leeren oder zumindest mehrere/alle Files zu selektieren und dann zu löschen? Ich denke da vor allem an die vielen Log-Files welche sich schnell ansammeln.
Guter Punkt - kannst du vielleicht in Github einen Feature Request stellen? Dann geht das nicht verloren.
Ist jetzt in Version 1.0.2 implementiert - muss noch etwas getest werden, daher zunächst bitte mit Vorsicht zu geniesen (Achtung: du muss auch die Dateien in /html updaten).
Ansonsten top!
Gruss
Michael -
@jomjol Super konntest du das so schnell implementieren:
1.1.0 (2020-09-06)
Implementation of "delete complete directory" Attention: beside the firmware.bin, also the content of /html needs to be updated!Ich werde heute Abend mal testen. Ist das schon die aktuelle firmware.bin auf Github oder noch 1.0.2?
Gruss
Michael -
@michaeljoos Hallo Michael auf github ist jetzt die Version 1.1.1. - habe noch das Update für das /html Verzeichnis verbessert (siehe OTA-Update)
-
@michaeljoos Hallo Michael habe gerade noch ein Update für eine verbessereten Chrome Support hochgeladen (v1.2.2). Bei mir geht es jetzt komplett auch in Chrome - aber irgendwie hatte ich auch andere Fehlermeldung wie du.
Kannst du ja gerne mal testen und Feedback geben - Chrome sollte funktionieren, damit es bei den meisten läuft.
Gruß,
jomjol -
@jomjol ist die neue Version evtl. ein neuen Thread wert? Dieser hier ist doch extrem gewachsen.
-
@watcherkb @jomjol Der Meinung bin ich auch! Eine Zusammenfassung und den alten Thread mit einem Verweis am Ende und ganz am Anfang versehen. Mit der Doku kann ich jetzt auch beginnen, zuerst aber muss ich einmal mit der neuen SW zurechtkommen. Aber es heißt ja, never change a running system ....
-
@pfried sagte in Wasserzähler - Selfmade:
@watcherkb @jomjol Der Meinung bin ich auch! Eine Zusammenfassung und den alten Thread mit einem Verweis am Ende und ganz am Anfang versehen. Mit der Doku kann ich jetzt auch beginnen, zuerst aber muss ich einmal mit der neuen SW zurechtkommen. Aber es heißt ja, never change a running system ....
Eure Idee für einen neuen Thread für die neue Version finde ich gut, da sich hier nur noch wenige zurecht finden werden.
-
Hallo zusammen,
dieser Thread ist inzwischen sehr umfangreich und unübersichtlich geworden. Da es seit kurzem eine neue Version gibt, möchte ich die Gelegenheit nutzen, diese in einem neuen Thread zu diskutieren.
Zusammenfassung dieses Threads, bzw. der Version 1:
- System zur Erfassung von Wasserzähler mit 2 Komponenten
Hardware zur Bilderkennung - Software (Docker-Container) zur Bilderverarbeitung Datenbereitstellung
- Hardware und Software sind open source und in Thingiverse & Github verfügbar (siehe Beitrag #1)
- Schwierigkeiten:
- 2 Systeme, die miteinander Kommunizieren müssen
- Textbasierte Konfiguration über ini-Files
Verbesserung in der Version 2:
- all-in-one Device für Bildaufnahme, Erkennung und Datenbereitstelling
- Integrierte graphische Benutzeroberfläche für Administration und Konfiguration
- Flexible Programmierung ermöglicht auch den Einsatz für andere Anwendungen Allgemein: Neuronale Netze für Bildverarbeitung auf Low-Cost Devices --> daher auch der Name: AI-on-the-edge
Alle Themen rund um die neue Version sollen ab jetzt im folgenden neuen Thread diskutiert werden - dort findet ihr auch im ersten Beitrag die Links zur neuen Version (Hard- und Software)
https://forum.iobroker.net/topic/36622/wasserzähler-version-2-all-in-device
Selbsterständlich könnt ihr euch auch mit Fragen zu Version 1 weiterhin gerne an mich wenden.
Weiterhin viel Spass mit eurem Wasserzähler und beste Grüße,
jomjol - System zur Erfassung von Wasserzähler mit 2 Komponenten