Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Wasserzähler - Selfmade

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wasserzähler - Selfmade

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      watcherkb @Mikewolf last edited by

      @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.

      J 1 Reply Last reply Reply Quote 0
      • J
        jomjol @watcherkb last edited by

        @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.

        W 1 Reply Last reply Reply Quote 0
        • W
          watcherkb @jomjol last edited by watcherkb

          @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

          J 1 Reply Last reply Reply Quote 0
          • J
            jomjol @watcherkb last edited by

            @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.

            W 1 Reply Last reply Reply Quote 0
            • W
              watcherkb @jomjol last edited by

              @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,
              
              J 1 Reply Last reply Reply Quote 0
              • Knallochse
                Knallochse last edited by

                @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 .

                1 Reply Last reply Reply Quote 0
                • J
                  jomjol @watcherkb last edited by

                  @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.

                  W 1 Reply Last reply Reply Quote 0
                  • W
                    watcherkb @jomjol last edited by watcherkb

                    @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")
                    
                    J 1 Reply Last reply Reply Quote 0
                    • pfried
                      pfried last edited by

                      @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.

                      Knallochse 1 Reply Last reply Reply Quote 0
                      • Knallochse
                        Knallochse @pfried last edited by

                        @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.

                        1 Reply Last reply Reply Quote 0
                        • J
                          jomjol @watcherkb last edited by

                          @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 ...

                          W 1 Reply Last reply Reply Quote 0
                          • R
                            Radi last edited by Radi

                            Hallo, Ihr Wissenden hier. Ich muss mich leider als DAU outen und einmal die Frage loswerden: Wie komme ich in dem Dockercontainer (Docker ist Neuland für mich, läuft bei mir als Container unter Promox. Die ESP-Cam läuft, ist scharf gestellt und liefert ein brauchbares Bild. capture2.jpg

                            Mit http://server-ip:3000/wasserzaehler.html?url=http://picture-server/image.jpg&full gibt es schon mal eine Ausgabe, natürlich nur wirres Zeug.) an die config.ini? Ich habe mit Putty versucht an die Datei zu kommen, zuletzt mit Filezilla gesucht und bin jetzt leider nahe dran, die Nerven zu verlieren. Ein Fingerzeig, wie man an die Datei kommt, würde mir schon helfen.
                            Dank im Voraus
                            Ralf

                            J 1 Reply Last reply Reply Quote 0
                            • J
                              jomjol @Radi last edited by

                              @Radi Hallo Radi, erstmal Glückwunsch zu einem laufenden System.

                              Wenn du ca. 2 Seiten hoch scrollst findest du eine erste Antwort:

                              jomjol 27. Nov. 2019, 19:32

                              "@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.

                              Melde dich, wenn du weiteren Input brauchst.
                              Gruß,
                              jomjol

                              R 1 Reply Last reply Reply Quote 0
                              • R
                                Radi @jomjol last edited by Radi

                                @jomjol Hallo Jomjol, erst einmal viele Dank und meinen Respekt für deine Arbeit an diesem Projekt.
                                Das mit dem Binding der Sourcen habe ich zwar gelesen, aber nicht als Lösung für mein Problem angesehen. Habe gerade verzweifelt versucht, die .ini im Container zu editieren, nachdem ich herausgefunden habe wie ich im Docker dahin komme.
                                Werde den von dir empfohlenen Weg ersteinmal weiterverfolgen, auch wenn die Pfadzuweisungen bei mir garantiert erst einmal wieder einen Schwung graue Haare erzeugen wird.
                                Du hast garantiert genug andere Sachen um die Ohren, als mir die Grundlagen von Docker zu erklären.
                                Wenn ich gar nicht mehr weiter komme, melde ich mich noch mal.

                                Einen angenehmen Ersten Advent wünscht
                                Ralf

                                1 Reply Last reply Reply Quote 0
                                • pfried
                                  pfried last edited by

                                  @jomjol Hast Du schon einen Lösung für den RB3 gefunden? Ich bin am Ende meines Wissens (was nicht sehr schwer ist)
                                  Liebe Grüße
                                  Paul

                                  J 1 Reply Last reply Reply Quote 0
                                  • J
                                    jomjol @pfried last edited by

                                    @pfried Hallo Paul,
                                    Timing hätte besser nicht sein können 😊 👍
                                    Ich konnte zwar noch immer keine Installation auf dem Raspberry hinbekommen ... ABER:

                                    Seit 1 Stunde gibt es ein Docker-Image, welches auf dem Docker meines Raspberry B3 ohne Probleme läuft!

                                    Hier findest du den Download: jomjol/wasserzaehler:raspi-rolling

                                    Ich bin super gespannt, ob das auch bei dir läuft!

                                    Beste Grüße,
                                    jomjol

                                    pfried 1 Reply Last reply Reply Quote 1
                                    • pfried
                                      pfried last edited by

                                      @jomjol Super!!! Ich werde den Test asap angehen. Vielen Dank für all Deine Mühe!

                                      1 Reply Last reply Reply Quote 0
                                      • C
                                        cybertron last edited by

                                        zu Beginn erstmal ein Danke an Jomjol für die Arbeit.

                                        Ich hab das Projekt heute gerade gefunden und wühle mich durch diesen riesigen Thread.
                                        Da ich wie der eine oder andere direkt über ein paar Grundlagen gestolpert bin, hier ein paar Links zum Thema
                                        ESP32 - Arduino IDE für Laien oder Anfänger.
                                        Auf den beiden Seiten werden die Grundlagen, wie ich finde recht einfach erklärt und dargestellt.

                                        ESP32-CAM

                                        Install ESP in Arduino IDE

                                        Ich hoffe dem einen oder anderen hilft es.

                                        1 Reply Last reply Reply Quote 1
                                        • R
                                          Radi @Mikewolf last edited by

                                          @Mikewolf Hallo Mike,

                                          was hast du letztendlich gemach, um das Bild richtig hinzustellen? Bei mir sieht das ROI ähnlich wie bei dir aus (verzerrt und gespiegelt)roi.jpg

                                          Habe keine Vorstellung, wo ich jetzt ansetzen soll. Kamera drehen oder gibt es noch Einstellmöglichkeiten in der config.ini?

                                          Grüße
                                          Ralf

                                          J 1 Reply Last reply Reply Quote 0
                                          • J
                                            jomjol @Radi last edited by

                                            @Radi Hallo Radi, du musst die Referenzen und Config.ini wie folgt anpassen:

                                            Alignment_procedure_draft.pdf

                                            R 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            627
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            how-to wasser wasserzähler
                                            48
                                            1089
                                            310783
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo