NEWS
Wasserzähler - Selfmade
-
@jomjol und @pfried : Ich glaube hier gibt es eine Verwechslung. Ich hatte eher @mameier1234 helfen wollen, seinen Wassermengenzähler in Betrieb zu nehmen. Bei mir läuft es soweit
-
-
@watcherkb habe jetzt ein Script zusammengebastelt, da aber der ESP schon wieder offline ist, kann ich erst heute mittag testen.
-
@jomjol Ich habe heute einen neuen Docker Container erstellt (mit deinen Änderungen von gestern V4.1.0) Ich habe dabei auch die Bildeinrichtung komplett neu vorgenommen, um die neue RIO.html zu testen (mit dem Kreuz) . Mir hatte diese Änderung sehr geholfen, um die Zeiger zu platzieren.
Vielen Dank für die Umsetzung.
Bis jetzt sieht es gut aus mit der Erkennung. Ich muss das natürlich länger beobachten, um die Änderungen beurteilen zu können. Ich gebe auch jeden Fall hier ein Feedback -
Also ich muss in 2020 mein Gartenwasserzähler erneuern. Da die Eichung abgelaufen ist. Gibt es da kostengünstige Wasseruhren die man einfacher auswerten kann? Glaube aber die ESP Version ist trotzdem um einiges Günstiger ? Auch wenn man eh einen neuen Zähler braucht?
Kann ein ESP auch 2 Kameras gleichzeitig ? Habe 2 Zähler nur 1m auseinander
-
@Knallochse Auf welcher HW hast Du den Docker rennen, auch auf der DS718?
-
@ChrisXY ESP32-CAM dürfte nur eine Kamer können, da die Kamera direkt über die GPIOs angesteuert wird.
-
@ChrisXY Nope, wie schon jomjol schreibt, ein ESP32 für einen Zähler, aber wenn Du Dir all die Posts reinziehst, wirst Du bemerken, dass der beschriebene Wasserzähler nichts für den Garten ist. Da würde ich mir eher einen Zähler mit Reed Kontakt zulegen (bekommst Du bei Amazon) und den Homematic Energiezähler verwenden.
-
@pfried der Docker läuft auf meiner DS918+
-
@Mikewolf @jomjol sagte in Wasserzähler - Selfmade:
habe jetzt in der Synology den Dockercontainer(rolling) ok, mount /log und /config angelegt,
nur wie bekomme ich den Server dazu das er sich die config von /config holt???hi. Wie geht das? Habe heute erstmalig Docker auf einem Debian zum Laufen gebracht und mir das Rolling gepullt. Was muss ich jetzt tun um die config.ini anzupassen, bzw. wie komm ich dort hin? Danke für die Hilfe.
-
@watcherkb Du musst zwei Verzeichnisse anlegen, von dem du das eine auf das Docker interne Verzeichnis "config" und das andere auf das Verzeichnis "log" mountest.
Das sollte folgendermaßen funktionieren:docker run -p 3000:3000 --mount type=bind,source=/volume/configpath,target=/config --mount type=bind,source=/volume/logpath,target=/log
wobei der erste source-path auf dein Verzeichnis für die Config-Dateien und der zweite auf das log-Verzeichniss zeigt.
Theoretisch sollte beim ersten Start jeweils eine Default config angelegt werden. Alternativ kannst du das externe config-Verzeichnis auch mit den Files von GitHub befüllen.
Anschließend kannst du alles auf dem exteren Config-Verzeichnis beabeiten. Der Docker-Container verwendet dann diese Dateien. -
@jomjol danke. Hat soweit geklappt. Nur nimmt er jetzt nichts auf.
roi.html geht, wasserzaehler.html geht nicht."Diese Seite funktioniert nicht↵↵192.168.1.36 hat keine Daten gesendet.↵↵ERR_EMPTY_RESPONSE↵Neu laden"
Log vom Docker:
2019-11-27T20:43:47.290813951Z Start Init Zaehlerstand, 2019-11-27T20:43:47.290874783Z Analog Model Init Done, 2019-11-27T20:43:47.290892104Z Digital Model Init Done, 2019-11-27T20:43:47.290908028Z Digital Model Init Done, 2019-11-27T20:43:47.290923393Z Wasserzaehler is serving at port 3000, 2019-11-27T20:43:52.311942677Z Premature end of JPEG file, 2019-11-27T20:44:04.787198970Z Start ROI, 2019-11-27T20:44:04.787249885Z Get ROI done, 2019-11-27T20:44:04.787369453Z 192.168.1.82 - - [27/Nov/2019 20:43:53] "GET /roi.html HTTP/1.1" 200 -, 2019-11-27T20:44:04.787390685Z 192.168.1.82 - - [27/Nov/2019 20:43:53] "GET /image_tmp/roi.jpg HTTP/1.1" 200 -, 2019-11-27T20:44:09.735852849Z Premature end of JPEG file,
hab was dazu gefunden. Jedoch hapert es an Python Kenntnissen.
https://stackoverflow.com/questions/33548956/detect-avoid-premature-end-of-jpeg-in-cv2-python -
@watcherkb wasserzaehler.html liefert erstmal kein Bild, sondern nur den Zählherstand als Zahlen. Wenn du das aufgenommene Bild mit anschauen willst, musst du es mit dem Parameter "?full" folgendermaßen aufrufen:
wasserzaehler.html?full
Dann sollte es auch ein Bild liefern.
-
@jomjol leider dasselbe.
2019-11-27T21:24:05.838258179Z Start CutImage, AnalogReadout, DigitalReadout, 2019-11-27T21:24:05.838368529Z ----------------------------------------, 2019-11-27T21:24:05.838385920Z Exception happened during processing of request from ('192.168.1.82', 49439), 2019-11-27T21:24:05.838400796Z Traceback (most recent call last):, 2019-11-27T21:24:05.838415113Z File "/usr/local/lib/python3.7/socketserver.py", line 316, in _handle_request_noblock, 2019-11-27T21:24:05.838429780Z self.process_request(request, client_address), 2019-11-27T21:24:05.838443958Z File "/usr/local/lib/python3.7/socketserver.py", line 347, in process_request, 2019-11-27T21:24:05.838458625Z self.finish_request(request, client_address), 2019-11-27T21:24:05.838472803Z File "/usr/local/lib/python3.7/socketserver.py", line 360, in finish_request, 2019-11-27T21:24:05.838487400Z self.RequestHandlerClass(request, client_address, self), 2019-11-27T21:24:05.838501508Z File "/usr/local/lib/python3.7/socketserver.py", line 720, in __init__, 2019-11-27T21:24:05.838516035Z self.handle(), 2019-11-27T21:24:05.838530003Z File "/usr/local/lib/python3.7/http/server.py", line 426, in handle, 2019-11-27T21:24:05.838544320Z self.handle_one_request(), 2019-11-27T21:24:05.838558428Z File "/usr/local/lib/python3.7/http/server.py", line 414, in handle_one_request, 2019-11-27T21:24:05.838572956Z method(), 2019-11-27T21:24:05.838586924Z File "./wasseruhr.py", line 74, in do_GET, 2019-11-27T21:24:05.838601381Z result = wasserzaehler.getZaehlerstand(url, simple, usePrevalue, single), 2019-11-27T21:24:05.838615559Z File "/lib/ZaehlerstandClass.py", line 82, in getZaehlerstand, 2019-11-27T21:24:05.838630016Z resultdigital = self.readDigitalDigit.Readout(resultcut[1], logtime), 2019-11-27T21:24:05.838644334Z File "/lib/ReadDigitalDigitClass.py", line 77, in Readout, 2019-11-27T21:24:05.838658651Z self.saveLogImage(image, value, logtime), 2019-11-27T21:24:05.838672829Z File "/lib/ReadDigitalDigitClass.py", line 101, in saveLogImage, 2019-11-27T21:24:05.838687007Z cv2.imwrite(speichername, image[1]), 2019-11-27T21:24:05.838701115Z TypeError: Expected Ptr<cv::UMat> for argument '%s', 2019-11-27T21:24:05.838715572Z ----------------------------------------, 2019-11-27T21:24:10.786941317Z Premature end of JPEG file,
-
@jomjol Ich habe jetzt 2 Tage die Erkennung des Wasserverbrauchs unter Version 4.1.0 beobachtet und darf berichten: Bisher keine Fehlmessungen - Geil
Bin jetzt gespannt, wenn die Digitalzahl wechselt, bei dem Übergang zwischen 2 Zahlen gab es bei mir immer Probleme die zu Verbräuchen von mehreren zehntausend Litern führte . Ich beobachte und berichte weiter . -
@watcherkb Bekommst du von deiner ESP32-CAM direkt den ein Bild? Und hast du in der Config.ini den richtigen Link zu deiner ESP32-Cam eingestellt.
Sieht so aus, als ob der Server kein Bild bekommt, welches er verarbeiten soll.
-
@jomjol ja die Bilder werden erzeugt.
http://192.168.1.36:3000/wasserzaehler.html --> geht nicht (LED leuchtet auf)
http://192.168.1.36:3000/wasserzaehler.html&full --> geht nicht (LED leuchtet auf)
http://192.168.1.36:3000/roi.html --> geht
http://192.168.1.209/capture_with_flashlight?quality=18&size=XGA --> geht (das steht auch so in der ini)Ich nutze den rolling-Stand.
EDIT: hab mir gerade das latest gepullt. Damit geht es. Kann es sein dass in der Datei ReadDigitalDigitClass.py die letzte Zeile nicht stimmt? Ich glaube an der Stelle müsste es anders aussehen:
Ist: cv2.imwrite(speichername, image[1]) Soll: image[1].save(speichername, "JPEG")
-
@Knallochse Eigentlich sollte die Plausibilisierungsprüfung das Springen um mehrere zehntausend Liter verhindern. Ich habe dazu weiter oben etwas gepostet (18. Nov. 2019). Da war ein Fehler in einem der Python Files, der die Plausibilisierung verhindert hat.
-
@pfried Danke dir für den Hinweiß. Scheint behoben zu sein. Ich warte mal bis zum nächsten Wechsel der Digitalzahl ob die Plausibilisierungsprüfung richtig greift.
-
@watcherkb Du hast völlig recht mit dem Fehler in der der ReadDigitalDigitClass.py.
Mich wundert nur, dass mein rolling lief
Die Docker Rolling Version ist upgedated, Code wird korrigiert, probiere es bei Gelegenheit bitte nochmal ...