NEWS
Wasserzähler - Selfmade
-
So langsam steige ich durch alles durch. Man merkt Du hast da wirklich viel Arbeit und Zeit hineingesteckt. Danke dafür nochmal und dass Du das alles auch noch mit uns teilst. Leider verstehe ich nicht wie ich die erzeugte config.ini im Docker ablege bzw. wo?
Das hier klappt leider nicht, warschl. ist die Syntax falsch?
python ./wasseruhr.py docker run -p 3000:3000 --mount type=bind,source=/Container/Wasser/cfg,target=/config --mount type=bind,source=/Container/Wasser/log,target=/log
LG
Maurice -
@overfl0w Probier mal folgenden Syntax:
sudo docker run -p 3000:3000 --mount type=bind,source=/Container/Wasser/cfg,target=/config --mount type=bind,source=/Container/Wasser/log,target=/log jomjol/wasserzaehler:DOCKER_TAG
Du musst noch DOCKER_TAG ersetzen mit dem Docker-Container, den du verwendest.
-
-
-
@overfl0w ich hatte den Container auf meinem QNAP laufen, denke ich kann dir weiterhelfen.
Also, den Container hast du ja schon geladen, du musst aber noch 2 Ordner anlegen und diese unter SharedFolder eintragen.
Wie auf dem zweiten Bild zu sehen, habe ich einfach unter Container einen Ordner "wasserzaehler" erstellt und darin dann die beiden Ordner log und config.
In den config Ordner schiebst du dann deine Referenzbilder, config und den Neuralnets Ordner.
Port so einstellen wie im Bild:
Dann sollte der Container laufen
-
@coyote @jomjol vielen Dank euch beiden für eure Hilfe! Es scheint so als würde der Container nun laufen. Wenn ich eine Anfrage an den Container (http://192.168.23.2:3000/wasserzaehler.html) sende, passiert auch was im log vom Container:
---------------------------------------- Start CutImage, AnalogReadout, DigitalReadout ---------------------------------------- Exception happened during processing of request from ('192.168.23.145', 50484) Traceback (most recent call last): File "/usr/local/lib/python3.7/socketserver.py", line 316, in _handle_request_noblock self.process_request(request, client_address) File "/usr/local/lib/python3.7/socketserver.py", line 347, in process_request self.finish_request(request, client_address) File "/usr/local/lib/python3.7/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/local/lib/python3.7/socketserver.py", line 720, in __init__ self.handle() File "/usr/local/lib/python3.7/http/server.py", line 426, in handle self.handle_one_request() File "/usr/local/lib/python3.7/http/server.py", line 414, in handle_one_request method() File "./wasseruhr.py", line 111, in do_GET result = wasserzaehler.getZaehlerstand(url, simple, usePrevalue, single) File "/lib/ZaehlerstandClass.py", line 156, in getZaehlerstand resultcut = self.CutImage.Cut('./image_tmp/original.jpg') File "/lib/CutImageClass.py", line 46, in Cut zeiger = self.cutZeiger(target) File "/lib/CutImageClass.py", line 62, in cutZeiger cv2.imwrite(name, crop_img) cv2.error: OpenCV(4.2.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:715: error: (-215:Assertion failed) !_img.empty() in function 'imwrite'
Allerdings bekomme ich einen: ERR_CONNECTION_REFUSED im Browser.
LG
Maurice -
@overfl0w die Ordner hast du aber auf dem QNAP angelegt und mit deiner config versehen? In deiner config steht die IP deiner Cam, ja?
-
@overfl0w Könnte eine typische Fehlermeldung sein, wenn deine in der Config.ini eingetrage ESP32-CAM nicht reagiert. Z.B. falche IP o.ä.
-
-
Ich habe mal alles neu gestartet.. jetzt bekomme ich Serverseitig:
Also scheinbar hat der Container wirklich ein Problem mit dem ESP... Muss ich dem Container evtl. noch erlauben aufs LAN zuzugreifen? Oder ist der Delay zu groß bis das Bild am Container ankommt und dann nen Timeout auswirft? Wenn ich die URL aus der cfg aufrufe bekomme ich ein einwandfreies Bild.
LG und danke euch schonmal
Maurice -
@overfl0w Hallo Maurice,
auf den ersten Blick sieht das alles gut aus. Die Fehlermeldung zeigt, dass die Abfrage des ESP32-CAM nicht funktioniert. Wenn sie von ausserhalb direkt klappt, dann kann es vielleicht an den Netzwerk-Setting von deinem Docker-Container liegen. Wie hast du ihn den eingestellt?
Bei mir läuft das Netzwerk des Containers als "bridged", so dass es vollen Zugriff auf mein lokales Netzwerk und damit auch die ESP32-CAM hat. Wenn du dort host oder none hast, könnte es Probleme geben.
Gruß,
jomjol -
@jomjol ich habe gesehen, dass du einen OTA-Update Modus für die Esp32-Cam implementiert hast.
Wie kann man den (Befehlzeil?) per OTA updaten? -
@Knallochse hier mal ein Auszug von @jomjol :
Zu OTA: ja - das funktioniert bei mir über die Arduino IDE. Leider bekomme ich keine direkte Bestätigung über die IDE und der Upload dauert eher lange (~1 Minute). Daher habe ich eine Versionsinfo eingebaut, damit ich sehe, ob das Update (=neue Versionsnummer) läuft. Die bekommst du, wenn du die IP ohne irgendeine URL aufrufst:
Folgende Settings in der IDE:
-
@watcherkb Das mit der Versionsinfo würde mich auch interessieren.
Toll wäre noch eine Info, wann die ESP-Cam das letzte mal einen Reset durchgeführt hat (Watchdog Info) -
Funktioniert eigentlich recht gut. Was bei meinem Bild. z.B. schlecht ist, sind die Reflektionen auf der 0
Die 5.0 er Modelle bei den Digits funktionieren bei mir besser als die 4.x er.
Die analogen sind aber schlechter, da hatte ich vorher nie Probleme.
Da erkennt er aktuell oft eine Ecke des Zeigers als Zeiger, -
@sissiwup Mein Zähler Schein ähnlich aufgebaut zu sein, und ich hatte mit den analogen Zeigern noch keine Probleme (bin auch auf 5.0)
Vielleicht liegt es an den Plasikteilchen auf deinem Glas
-
@jomjol Ich habe den Container nun auch mal auf "bridged" gestellt und diesem eine IP gegeben. Anschließend habe ich das USB-Kabel und das Netzteil getauscht vom ESP.
Wenn ich nun mit Laptop vor dem ESP sitze und den Container aufrufe werden scheinbar 2 Fotos gemacht, da das Flashlight zwei mal aufleuchtet, d.h. der ESP ist vom Container aufrufbar.
Hier nochmal ein Video und ein Screenshot vom Fehler beim Aufruf des Containers:
IMG_0642.MOVHier nochmal beim Direktaufruf:
@coyote Hat es auf Anhieb bei dir funktioniert?
Liebe Grüße
Maurice -
@overfl0w benutzt du in einem anderen Container „Grafana“?
-
@Knallochse
Auf dem NAS läuft ein Ubuntu auf einer VM und Teamspeak als Container.. Grafana nicht.LG
-
@overfl0w meine Vermutung war, das Port 3000 schon benutzt wird (Grafana hat Port 3000)
Vielleicht hilft es ja, den Containerport umzuleiten (z. Bsp. 3000:1234)
Musst dann beim aufrufen deinen Port in 1234 (Beispiel) benutzen