NEWS
Wasserzähler - Version 2 - all-in-device
-
@aandekant sagte in Wasserzähler - Version 2 - all-in-device:
Entschuldigen Sie mein schlechtes Deutsch. Ich komme aus Belgien.
We can discuss in Englisch - no problem
Ich habe einen alten Stromzähler mit einem zusätzlichen Glasfenster davor. (7-8cm vor dem Zähler) Ich habe die Standardmethode versucht, diesen Zähler mit einem optischen Sensor auf der rotierenden Scheibe abzulesen, aber mit der Doppelreflexion ist das sehr schwierig.
Dann habe ich Ihre wunderbare Lösung gefunden. Ich konnte die Software (Docker-Version) vor einigen Wochen ausführen. Aber ich habe abgebrochen, als die Ausgabebilder sehr verzerrt waren. Wahrscheinlich stimmt etwas mit meine Ausrichtungsreferenzen nicht.
(älteres Bild, es funktioniert besser, wenn die Kamera auf das erste Glas aufgesetzt wird)
Bevor ich mehr Zeit darauf verwende: Halten Sie es für möglich, dass Ihre Lösung etwas von diesem Bild lesen könnte? Ein Problem, das ich sehe, ist, dass der Text weiß auf schwarz und nicht schwarz auf weiß ist?
This picture should be totally fine for the image recognition. The newest version of the neural network files have been also trained for white numbers on black background. Even if it does not work perfect on the first test - it is rather uncomplicated to incorporate your digits in the training as well, as soon, as you can send me 2-3 pictures of each digit (0..9)
Wenn ich die Kamera höher stelle, fällt die Reflexion der LED in die Ziffern. Bei dem rgb-Streifen hatte ich das Problem, dass die erste LED grün blieb. ähnlich wie bei https://arduino.stackexchange.com/questions/32017/esp8266-nodemcu-first-ws2812-led-lights-up-green. Das Bild war aber besser.
So I would recommend to go on!
-
@jomjol ich glaube ich habe noch etwas Probleme mit der WLAN Verbindung, dass muss ich noch beheben und genau da sind wir beim Punkt, vllt kannst du mir helfen.
Ich hatte deine "alte" Version auf einem ESP32 mit eingelöteter Brücke um die externe Antenne zu nutzen, genau den wollte ich heute flashen mit der V2, aber da tut sich nix.
Laut flashtool läd er alles hoch (vorher auch schon etliche Male gelöscht), stecke ich dann die SD Karte ein und gebe ihm Spannungsversorgung, tut sich nichts. Kein LED blinken und im WLAN sehe ich ihn auch nicht. Auf dem zweiten ESP32 keine Probleme, aber der nutzt nur die interne Antenne.
Hast du vllt ne Idee?EDIT: Habe jetzt auch die SD Karte neu beschrieben auf dem zweiten ESP32, jetzt sehe ich wieder dein default RAW Bild, aber ich bekomme mein Wasserzähler Bild nicht hin
-
Hi @coyote,
ich habe gerade eine neue Version in den Rolling Branch hochgeladen (/html updaten!). Dort hast du jetzt einen Button, mit dem das "raw.jpg" neu aufgenommen wird:Gruß,
jomjol -
@coyote sagte in Wasserzähler - Version 2 - all-in-device:
@michaeljoos sieht schick aus die Oberfläche
Hast du gerade ne Idee, da du ja schon am rumprobieren bist, warum ich kein Ref Bild erstellen kann?Finde das Layout auch richtig schick und mit den ausklappenden Menues auch platzsparender. Habe es gleich in die neue Rolling übernommen.
@michaeljoos: vielen Dank!
-
@jomjol Your reply gave me courage to try it again. More succes this time with your new tool:
I did it quick and dirty, I will tweak the digits some more tomorrow. If needed I will provide you additional pictures for the digits.
Thank you very much, this new "all in device" is really great!
-
Hi @aandekant,
great result - two hints:- You can remove the section [Analog] in the config, then you will not have fake values like this two in your image above - just be carefull, not to try to configue the analog ROIs in the web page
- I assume, that a dedicated training will help, the "8" with the notch on the upper left is not directly trained and obviously there is a problem with the "7".
Once you have your system running, collect the images in the log file and send them to me.
Best regards,
jomjol -
@jomjol Hi jomjol, ich möchte nun auch "umsteigen" und die neue Entwicklung von Dir installieren. Dazu habe ich eine Frage: Ich möchte "nahtlos" vom alten System in das Neue umsteigen, also die config.ini gleich lassen und damit auch die Referenzbilder beibehalten, da es derzeit absolut stabil läuft...... Kann man das einfach bewerkstelligen und die Config.ini mit den Referenzbildern auf die SD-Card übertragen, Ausnahme ist das WiFi Setup, das ist ja jetzt ein extra ini File. Kann man mittels OTA die neue SW auf den ESP32 übertragen? Wenn ja. wie?
Vielen Dank für all Deine Mühe und das Du uns "mitnimmst". Ich habe schon extrem viel dazu gelernt.....
Liebe Grüße Paul -
@pfried Hallo Paul,
ein Copy-and-Paste funktioniert nicht, da die Config.ini einen leicht anderen Syntax hat (musste den Parser aus Speicherplatzgründen selbst schreiben). Aber du kannst die Referenzbilder und ROIs 1:1 übernehmen. Du musst nur die Koordinaten in das neue Format einfügen.
Am besten vergleichst du mal die beiden Config.ini, dann sieht du gleich, was du machen musst. Beim ersten Flashen funktioniert die OTA nicht, da ich hier eine andere Partitionierung benötige. Dazu musst du einmalig den Speicher löschen und dann mit folgender Anleitung flashen: https://github.com/jomjol/AI-on-the-edge-device/wiki/Installation
Danach geht dann aber OTA auch für die Firmware und die html-Seiten.Du kannst dich gerne melden, wenn du noch fragen hast oder wir können auch mal wieder eine Skype Session machen.
Gruß,
jomjol -
@jomjol Na dann werde ich es angehen.... Ich werde jeden Schritt dokumentieren, sodass Du dann eine Umstiegsanleitung für das Wiki hast. In welchem Format möchtest Du das haben? MS Word?
-
@pfried sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol Na dann werde ich es angehen.... Ich werde jeden Schritt dokumentieren, sodass Du dann eine Umstiegsanleitung für das Wiki hast. In welchem Format möchtest Du das haben? MS Word?
Idealerweise Markdown (*.md), denn das ist der Wiki-Syntax. Wenn das neu für dich ist, ist Word auch okay. Ich kann das dann umformatieren.
Vielen Dank für deine Unterstützung.
-
Leider gibt es mit der selbst compilierten Version Probleme beim Erstellen einer neuen Konfiguration.
Jeweils nach einem Neustart wird ein Bild gemacht und auf der Hauptseite angezeigt.
(Das Bild ist übrigens um 180° gegenüber dem Bild gedreht, das man bei /capture_with_flashlight erhält)Da die Geometrie der Auswahlen nicht stimmt, habe ich versucht eine neue Konfiguration zu erstellen.
Auf der Seite Config watermeter findet sich im Fenster Config.ini
undefined.
Ich habe versucht nach Anleitung 2a Create Reference Image
ein neues reference image zu erstellen.
Ein Klick auf Show actual Reference bleibt ohne Auswirkung, es wird nichts angezeigt.Schaut man mit dem Fileserver in das Verzeichnis img_tmp
findet man raw.jpg(das Bild 180° gedreht) , rot.jpg ( das Bild wie auf der Startseite ohne die Markierungen) , rot_roi.jpg ( mit zwei roten Rechtecken), alg.jpg (wie rot.jpg) , alg_roi.jpg (wie Startseite) und weitere .bmp und jpg.Im Verzeichnis config findet man reference.jpg, das ist das Bild aus Deiner Doku und config.ini
[MakeImage] ;LogImageLocation = /log/source WaitBeforeTakingPicture=5 ImageQuality = 5 ImageSize = VGA [Alignment] InitalRotate=180 /config/ref0.jpg 119, 273 /config/ref1.jpg 456, 138 SearchFieldX = 20 SearchFieldY = 20 ...
Warum ist das Bild gedreht wenn der Editor von Config.ini wie beschrieben "undefined" zeigt?
Irgend eine Referenz scheint da schief zu gehen.Beim Erstellen der SD Karte habe ich die Inhalte von sd-card in das root-Verzeichnis der Karte kopiert, da ist die Anleitung etwas unklar.
Irgend eine Idee ?
Hike
-
Hi @hike,
Diagnose ist etwas schwierig - das in config.ini "undefiniert" steht deutet eher darauf hin, dass die Darstellung im Browser einen Fehler hat.
Die tatsache, dass das Bild um 180° gedreht ist, würde ich mit der gezeigten config.ini erwartetn, denn dort steht "InitialRotate=180". Das bedeutet, dass "raw.jpg" erstmal um 180° gedreht wird, bevor die Referenzerkennung startet.
Ich würde dir momentan fast empfehlen, die kompilierte Version zu testn (firmware.bin und /html). Ich habe seit gestern das Repository "Rolling" angelegt, dort sind die aktuellsten Änderungen drin. Gerade auch in der Oberfläche korrigiere ich mit eurem Feedbach noch einige Fehler, mit tlw. recht häufiger Frequenz. Falls es weiterhin nicht funktioniert, können wir am WE mal gemeinsam per Skype drauf schauen.
Beste Grüße,
jomjol -
@jomjol Mein Browser ist Firefox, das sieht in der Tat nach einen Javascript Fehler aus. Da habe ich wenig Lust zu suchen.
Ich werde es mal Deiner Empfehlung folgen und es mit dem binary gegenchecken.Wenn ich das richtig gelesen habe, funktioniert OTA indirekt, also firmware und html hochladen und dann update mit /ota?file=firmware.bin auslösen.
Edit: gibt es einen Dreh, das htlm.zip auf den ESP zu laden ( ich hab doch eine zip-Funktion im Code gesehen) oder muss ich jedes html-file einzeln hochladen?
Beste Grüße Hike
-
@hike Nein, in der neuen Version kannst du alles über die Web-Page machen. Du musst auch immer das Verzeichnis /html updaten. Jeweils hochladen und dann noch Updaten. Damit die Firmware funktioniert, braucht es dann noch einen Reboot. Kannst du jetzt aber alles auf der neuen OTA-Seite triggern:
-
@hike sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol Mein Browser ist Firefox, das sieht in der Tat nach einen Javascript Fehler aus. Da habe ich wenig Lust zu suchen.
Ich werde es mal Deiner Empfehlung folgen und es mit dem binary gegenchecken.Wenn ich das richtig gelesen habe, funktioniert OTA indirekt, also firmware und html hochladen und dann update mit /ota?file=firmware.bin auslösen.
Edit: gibt es einen Dreh, das htlm.zip auf den ESP zu laden ( ich hab doch eine zip-Funktion im Code gesehen) oder muss ich jedes html-file einzeln hochladen?
Beste Grüße Hike
Siehe Post von gerade eben.
-
@jomjol Hab ja noch die alte Version von master, also zu Fuß
-
@jomjol Hallo Jomjol,
ersteinmal vielen Dank für deine Arbeit. Nachdem ich die Version mit dem Docker-Image nicht wirklich zum laufen gebracht habe und nun die Version direkt auf dem ESP sah, habe ich das Ganze noch mal probiert. Und was soll ich sagen, es läuft. Jetzt stellt sich mir nur noch die Frage, wie bekomme ich die Daten in den IOBroker. Hab ich was übersehen? Für einen kleinen Fingerzeig wäre ich dankbar.
Ralf
-
@Radi @jomjol Hi jomjol, ich habe das selbe Problem wie @Radi: das alte Kommando http://ESP-IP/wasserzaehler.html?usePreValue, welches ich zusammen mit [N|0-9][N|0-9][N|0-9][N|0-9][N|0-9]\D\d\d\d\d verwendet habe geht jetzt nicht mehr, zumindest liefert der Parser im IOBroker nichts mehr.
Edit: Super wäre auch wieder das http://ESP-IP/roi.html Kommando, das hat mir immer auf die Schnelle beim Fehlersuchen geholfen. -
@pfried Vielleicht sind wir auch auf der falschen Fährte und der Parser tuts nicht mehr. Das Aufrufen des Links funktioniert jedenfalls und liefert auch Werte.
Vielleicht hilft uns ein Wissender auf dieSprünge.
Es würde mich jedenfalls freuen, wenn ich das nach so langer Zeit mal für mich abschliessen könnte.Ralf
-