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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wasserzähler - Selfmade

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      daniel_iobroker last edited by daniel_iobroker

      @jomjol
      Danke für deinen Post.
      Hab heute schon einiges geschafft. Gehäuse ist gedruckt, esp32-cam ist geflasht und funktioniert mit deiner Software.
      Dann ging es an den pi. Hab den ganzen Tag über deinen Server zu laufen gebracht (python 3.5). Musste dann auch in der wasseruhr.py unten beim server was anpassen, da sich das ab python 3.6 geändert hat. Nach dem anpassen funktionierte der Server. Hab dann die IP com esp in der config eingetragen und wenn ich dann die Serveradresse aufgerufen habe, hat der esp32 ein Bild gemacht. Dann gab es aber einen Fehler mit dem Pfad. Irgendwie konnte der Server das aufgenommen Bild nicht finden.

      Hab vorhin gesehen, dass du hier im Forum eine Anleitung für den Pi gemacht hast. Hab das auch gleich ausprobiert. Hatte hier wieder den gleichen Fehler, dass der Server nicht gestartet werden kann. Müsste jetzt wieder das gleiche in der wasseruhr.py umschreiben. Bin mir aber sicher, dass dann der gleiche Fehler kommen wird, wie bei mir vorhin.

      Hier ein Ausschnitt davon

      Instructions for updating:
      Call initializer instance with the dtype argument instead of passing it to the constructor
      Analog Model Init Done
      Digital Model Init Done
      Digital Model Init Done
      Traceback (most recent call last):
        File "wasseruhr.py", line 86, in <module>
          with socketserver.TCPServer(("", PORT), SimpleHTTPRequestHandler) as httpd:
      AttributeError: __exit__
      

      Jetzt zu meiner Frage. Welche python3 version hast du auf dem pi am laufen?

      python3 --version
      

      Ich denke du wirst mindestens 3.6 haben oder?
      Bei mir ist derzeit noch 3.5 installiert und wenn ich sudo apt-get install python3 ausführe, dann wird mir angezeigt, dass ich schon die neueste version habe.
      Muss mal schauen, dass ich eine höhere Version installiert bekomme, dann werden die Fehler wohl erledigt sein.

      BTW: das thingiverse file is super, passte perfekt bei mir 🙂 Danke dafür.

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

        @daniel_iobroker Ich habe eine frisch installierte Raspbian Buster Lite Version. Dort ist Python 3.7 installiert (und 2.7).

        cccb6bb8-4e30-40d4-91fe-a1dec6b262f8-grafik.png
        Ich verwende Python 3.7

        1 Reply Last reply Reply Quote 0
        • D
          daniel_iobroker last edited by

          @jomjol
          ok, habe ich mir gedacht. Ich hab das ganze auf meinem alten pi 3b ausprobiert, wo noch raspbian strech installiert ist. Hier ist python 3.5 drauf. Der Hintergrund ist, dass ich das zuerst auf dem test-raspi probieren möchte und wenn alles klappt, dann auf dem pi4 übertragen, auf dem das produktive system läuft.

          Werde daher gleich mal auf raspbian buster updaten und dann probieren. Bin aber zuversichtlich, dass es klappen wird.

          1 Reply Last reply Reply Quote 0
          • D
            daniel_iobroker last edited by daniel_iobroker

            @jomjol
            so, wie versprochen. Bin jetzt mit dem update fertig. Hab jetzt die gleiche python version wie du.

            Server startet wie erwartet ohne Anpassung der wasseruhr.py Datei.
            Natürlich habe ich deine Daten von Github geladen.

            Wenn ich jetzt aber ein Bild über den server bzw. esp32 mache, habe ich wieder den gleichen Fehler wie gestern. Das Bild wird anscheinend nicht gespeichert oder der Pfad ist falsch.

            Hier der log, wenn ich die Seite http://192.168.8.202:3000/wasserzaehler.html aufrufe:

            Process Process-1:
            Traceback (most recent call last):
              File "/usr/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
                self.run()
              File "/usr/lib/python3.7/multiprocessing/process.py", line 99, in run
                self._target(*self._args, **self._kwargs)
              File "/home/pi/wasserzaehler_neu/lib/LoadFileFromHTTPClass.py", line 48, in ReadURL
                urllib.request.urlretrieve(url, target)
              File "/usr/lib/python3.7/urllib/request.py", line 257, in urlretrieve
                tfp = open(filename, 'wb')
            FileNotFoundError: [Errno 2] No such file or directory: './image_tmp/original.jpg'
            192.168.8.102 - - [02/Nov/2019 10:38:25] "GET /wasserzaehler.html HTTP/1.1" 200 
            

            Hattest du den Fehler auch?

            BTW, in github hast du noch einen kleinen fehler. Das ausführen des Programms geht nur mit python3 wasseruhr.py anstelle von python3 wasserzaehler.py

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

              @daniel_iobroker sagte in Wasserzähler - Selfmade:

              original

              Das Problem ist, das es das Bild in "./image_tmp/original.jpg" nicht gibt. Mir fallen zwei Ursachen spontan ein:

              1. Der ESP32-CAM ist noch nicht richtig konfiguriert in der Config.ini
              2. Das Verzeichnis ./image_tmp existiert nicht

              Zu eins kannst du die URL hinter URLImageSource=... direkt in einem Brower testen. Dort sollte das Bild vom ESP32-CAM kommen.

              1 Reply Last reply Reply Quote 0
              • D
                daniel_iobroker last edited by

                @daniel_iobroker said in Wasserzähler - Selfmade:

                Also in der URLImageSoure steht:http://192.168.8.122/capture_with_flashlight
                Wenn ich diesen Pfad im Browser eingebe, dann kommt das Bild vom ESP32-CAM.

                zu 2.: ich weiß gar nicht, wo das Verzeichnis sein soll? Muss ich dieses manuell erstellen?

                Wenn ich über den Server das aktuelle Bild holen will, dann seh ich, dass der ESP32-CAM das Bild macht. Ob das gespeichert wird und vor allem wo kann ich nicht sagen.

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

                  @daniel_iobroker
                  Du musst die komplette Verzeichnisstruktur unter "code" anlegen, inkl. des leeren Verzeichnisses "image_tmp"

                  1 Reply Last reply Reply Quote 0
                  • D
                    daniel_iobroker last edited by

                    @jomjol
                    aaaah ok, jetzt klappt es.
                    Den ganzen "Code" Ordner Inhalt hatte ich schon am pi, jedoch ist auf Github der leere Ordner image_tmp nicht vorhanden.
                    Hab den jetzt erstellt und jetzt klappt es auch 🙂

                    Werde jetzt mal die Konfiguration angehen.

                    Danke 🙂

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

                      @daniel_iobroker Ordner ist erstmal leer und wird von Github daher vermutlich nicht angelegt / synchonisiert. Jetzt passt es, ich habe einen Dummydatei hinterlegt.

                      Danke für die Hinweise!

                      1 Reply Last reply Reply Quote 0
                      • D
                        daniel_iobroker last edited by

                        @jomjol
                        so die ersten Test sind auch schon da.
                        Hab die config auf meine Wasseruhr angepasst.
                        Leider ist das Bild etwas dunkel... kann man den weißabgleich anpassen? Wahrscheinlich nicht.

                        Hier das Bild vom ESP32-CAM von der Uhr:
                        capture.jpg

                        Hier das roi:
                        roi.jpg
                        Nicht wundern, das Bild wurde um 90 Grad gedreht, daher die schwarzen Ränder

                        Und das ist das Ergebnis:
                        13N.3590 0013N 3590

                        Die 5 wurde nicht erkannt und bei den analogen Zeigern bin ich bei Zeiger 1 um eine Stelle daneben, Zeiger 2 auch um eine Stelle, Zeiger 3 passt, Zeiger 4 wieder um eine Stelle daneben. Bei Zeiger 1 und 2 könnte ich mir vorstellen, dass es zu dunkel ist oder etwas unscharf?, aber bei Zeiger 4 sollte es eigentlich passen?

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

                          @daniel_iobroker Erstmal super Ergebnis für den ersten Versuche!

                          Hast du die Halterung in weis ausgedruck? Bei mir ist alles schwarz und daher das Bild selber etwas heller. Das könnte in der Tat ein Thema für die Erkennung sein. Vielleicht kannst du mit einer "Innenverkleidung" aus schwarzer Pappe/Papier etwas erreichen.
                          Für die Zeiger liegt es vermutlich eher daran, dass es etwas unscharf ist (Insbesondere Zeiger1).
                          Die "5" hätte er eigentlich erkennen müssen. Es scheint mir, dass sie noch leicht tiefer liegt, wie die anderen Ziffern. Vermutlich musst du nochmal an einen Alignmentstrukturen nachteachen. Es scheint, als ob das Bild noch 2-3 Grad gegen den Uhrzeigersinn gedreht werden müsste, damit die Ziffern auf einer Linie stehen.

                          1 Reply Last reply Reply Quote 0
                          • D
                            daniel_iobroker last edited by

                            @jomjol
                            Danke für deine Einschätzung.
                            Ja die Halterung habe ich in weiß gedruckt - nachträglich gesehen nicht so schlau 😄

                            Hab jetzt innen eine schwarze Folie angebracht und dann alles nochmal eingestellt und konfiguriert.

                            Hier das neue Bild:
                            capture.jpg

                            Hier das neue roi:
                            roi.jpg

                            Hier das Ergebnis:
                            135.3636 00135 3636

                            Sieht glaub ich gut aus. Ich denke, die 4 bei den analogen Zeigern soll erst erscheinen, wenn der Zeiger mindestens diese Position erreicht hat. Hier geht es nicht darum, wo der Zeiger von der Position her näher drann ist oder?

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

                              Hallo Gents,
                              bei mir startet wasseruhr.py auch aber mit einen Haufen Warnings....
                              Dann tut sich aber nichts, es wird kein Bild aufgenommen, obwohl im Browser http://192.168.10.130/capture_with_flashlight funktioniert

                              a4a87270-3d2e-444a-966c-5fb88c11943c-image.png

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

                                @daniel_iobroker Super!

                                Bei den analogen Zeigern gibt es noch eine innere Logik, die den Wert des "vorherigen" Zeigers berücksichtigt. Das hat folgende Ursache:

                                • Die Bilderkennung ist nicht immer ganz präzise, das kann auch an der Ausrichtung der Zeiger liegen. D.h. ob ein Zeiger jetzt von z.B. 3 auf 4 springt, hängt davon ab, ob der Zeiger vorher noch auf der 9 oder schon auf 0 oder 1 steht.

                                Damit ist sicher gestellt, dass es deutlich sinnvollere Werte gibt.

                                Wenn du sehen willst, was genau die Bilderkennung ausliest, kannst du bei den Parameter "&full" hinten an die URL einer normalen Abfrage anhängen, dann gibt deutlich mehr Informationen.

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

                                  @pfried
                                  Die Warnings kannst du getrost ignorieren. Die kommen bei mir auch und sind unkritisch. Warum aber keine Rückmeldung bekommst ist merkwürdig, denn wenn es ein Problem gäbe, dann müsstest du nach

                                  Wasserzaehler is serving at port 3000

                                  weitere Einträge, z.B. Fehlermeldungen sehen.

                                  Dort kommt gar nichts?

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

                                    @jomjol
                                    Leider kommt dort gar nichts. Kann es sein, dass es daran liegt, dass ich einen Raspberry4 mit buster verwende?

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

                                      @pfried Ich verwende auch Buster, zwar auf einem Raspi3, aber sollte eigentlich kein Problem sein. Wie genau lautet deine Serverabfrage?

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

                                        @jomjol Wie auf der Github Seite beschrieben verwende ich python3 Wasseruhr.py

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

                                          @pfried Ja genau, so startest du den Server.

                                          Jetzt musst du von einem Brower auf einem anderen System den Wasserstand an deinem Server abfragen:

                                          http://server-ip:3000/wasserzaehler.html

                                          server-ip ist die Adresse von deinem Server (Docker oder Raspi).

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

                                            @jomjol Sorry, ich dachte er gibt auch auf der SSH Session einen ersten Wert aus. Jetzt klappe es und ich kann in den Schacht steigen und das Ding mal installieren und einrichten. Danke!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            790
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            how-to wasser wasserzähler
                                            48
                                            1089
                                            316496
                                            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