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.
      Tensorflow zu kompilieren klappte bei mir auch nicht. Wie gesagt, wollte es in einer virtuellen Maschine kompilieren, aber selbst mit 10gb RAM klappte es nicht.
      Aber mit der Tensorflow für python 3.4 klappte es.

      Hmm Tensorflow 1.9 bzw 2 konnte ich nicht für den pi finden. Hab daher die gleiche version genommen, die auch du hast. Nur halt in der arm v7 version mit python 3.4
      In deinem docker file sind ja noch 4 weitere packages in das docker Image eingebunden. Die habe ich auch eingebunden und bei 2 gab es nur niedrigere Versionen. Das scipy musste ich komischerweise auch von Hand einbinden. Hab glaub ich 2 packages zusätzlich als wheel geladen und eingebunden, da beim bauen vom Image hier immer ein Problem war. Kann morgen noch mal nachsehen welche es genau waren.

      Zur Fehlermeldung : für mich klingt das so, als hätte da das scipy package ein Problem oder?

      Basisimage war python 3.4
      Du hattest ja als Basisimage python 3.7 genommen, das ginge bei mir jedoch nicht, da das fertig kompilierte Tensorflow für den raspi python 3.4 voraussetzt. Hab es zuerst trotzdem versucht, dann kam aber beim bauen gleich eine Fehlermeldung.

      Kann man eigentlich in ein laufendes bzw installiertes docker Image schauen? Eventuell müssten wir bei meinem fertigen Image nur schauen, ob die fehlende Datei eventuell eh vorhanden ist - jedoch in einem anderen Verzeichnis liegt?

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

        @jomjol Ich bekomme dein Dockerimage nicht ans Laufen. Habe in einer Debian VM unter Proxmox Docker installiert. Pull funktioniert auch. Aber dann komme ich nicht weiter:

        admp@dockertest:~$ sudo docker run -p 3000:3000 jomjol/wasserzaehler
        [sudo] Passwort für admp:
        Using TensorFlow backend.
        WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:97: calling Zeros.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
        Instructions for updating:
        Call initializer instance with the dtype argument instead of passing it to the constructor
        WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:97: calling Ones.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
        Instructions for updating:
        Call initializer instance with the dtype argument instead of passing it to the constructor
        WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:97: calling GlorotUniform.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
        Instructions for updating:
        Call initializer instance with the dtype argument instead of passing it to the constructor
        WARNING:tensorflow:From /usr/local/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
        Instructions for updating:
        Call initializer instance with the dtype argument instead of passing it to the constructor
        
        

        Habe die Nacht so stehen lassen, ohne Veränderung. Dann mit CTR-C abgebrochen, folgende Ausgabe:

        ^CStart Init Zaehlerstand
        Analog Model Init Done
        Digital Model Init Done
        Digital Model Init Done
        Wasserzaehler is serving at port 3000
        Traceback (most recent call last):
          File "./wasseruhr.py", line 88, in <module>
            httpd.serve_forever()
          File "/usr/local/lib/python3.7/socketserver.py", line 232, in serve_forever
            ready = selector.select(poll_interval)
          File "/usr/local/lib/python3.7/selectors.py", line 415, in select
            fd_event_list = self._selector.poll(timeout)
        KeyboardInterrupt
        
        
        
        J 1 Reply Last reply Reply Quote 0
        • J
          jomjol @watcherkb last edited by

          @watcherkb Welches Images verwendest du den? Die Version jomjol/wasserzaehler:rolling läuft bei mir ohne Probleme.

          Was für eine Hardware hast du den? Das Dockerimage ist für eine Intel-CPU kompiliert. Daher läuft es auch auf einen Raspi so nicht.

          W 1 Reply Last reply Reply Quote 0
          • Mikewolf
            Mikewolf last edited by

            Hallo nur zur Info läuft bei mir rolling auf ner syno emulation unter doker mit der intel xenon Cpu ok !
            wobei eigentlich der server mal startet und unter port 3000 erreichbar ist

            Mit freundlichen Grüßen

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

              @jomjol sagte in Wasserzähler - Selfmade:

              jomjol/wasserzaehler

              es wird wohl das latest sein. Also der Standard wenn nichts anderes angegeben wird. Ich habe einen NUC i7. Ich schau mal ob ich auch was Richtung CPU einstellen kann.
              Jedoch scheint es so als ob das Docker doch fertig lädt, bekomme aber aktuell eine falsche IP aus anderem IP-Bereich. Muss mich noch damit auseinandersetzen. Docker ist neu für mich 🙂

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

                @watcherkb Kurzer Zwischenstand: ich schaffe es gerade nicht, das ganze auf Raspi zum Laufen zu bringen. Scheitere aktuell schon an OpenCV 😞
                Bin die nächste Woche aber komplett verplant und habe daher keine Zeit, daran zu arbeiten.
                Wenn ihr es auf dem Raspi hinbekommt, wäre ich mehr als gespannt, wie es geht.

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

                  @jomjol keine Eile. Ist klar dass alles in der Freizeit passiert 😉
                  Frage mich aber ob es auch ohne Docker geht, einfach auf einem Debian System z.B. ?

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

                    @watcherkb Prinzipiell ja, habe es hier zur Programmierung ja auch auf einem Windows System zum Laufen gebracht. Leider ist die Installation von Tensorflow und tlw. auch OpenCV etwas tricky, insbesondere Tensorflow ist abhängig von den Prozessoren, da es Graphikkarten und erweiterte Befehlssätze (AVX, AVX2, ...) unterstützt und dass muss dann jeweils zum Prozessor passen.

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

                      @jomjol ok bin jetzt ein Stück weiter. Habe jetzt alles auf Debian Template am Laufen. Jedenfalls bekomme ich schonmal folgendes auf der Seite angezeigt: Error - Problem during Imageload (file not exists or timeout)
                      Musste ein paar Anpassungen an py-Script machen. Dann versuche ich mal die Camera anzuschließen und dann gehts weiter.

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

                        Hi Gents,
                        habe alles andere fertig 😳 Hoffe Ihr bekommt das mit dem Raspberry hin.....
                        Liebe Grüße

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

                          Ich hatte am Wochenende auch Tensorflow und OpenCV auf dem Raspi am laufen. Das waren erstmal die großen Hürden. Werde am Wochenende versuchen alles zusammen zu bauen und dann eine Anleitung für ein Raspberry Pi 3 zu posten.

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

                            So Leute. Heute ist mein esp32 auch gekommen. Werde morgen gleich mal schauen, was ich zusammenbringen werde.

                            @watcherkb was musstest du denn im python Script ändern?

                            @jomjol kannst du uns schon verraten, was wir ungefähr machen müssten? Ich glaube mit dem docker kommen wir beim raspi nicht weiter oder?

                            J W 2 Replies Last reply Reply Quote 0
                            • J
                              jomjol @daniel_iobroker last edited by

                              @daniel_iobroker, @watcherkb, @pfried
                              Hallo zusammen,
                              ich habe jetzt einen Server auf einem Raspberry Pi3 am Laufen. Detailierte Installationsanleitung findet ihr in Github in einem speziellen Branch für den Raspberry:

                              https://github.com/jomjol/water-meter-system-complete/tree/Raspberry-V3

                              Es ist sicher nicht die eleganteste und leanste Installation, da ich erstmal etwas zum Laufen bringen wollte.

                              Achtung: ihr müsst auch den Code von dort verwenden, da ich eine kleine Änderung an einer der Libraries machen musste, führe ich einem der nächsten Releases dann zusammen.

                              Hoffe es klappt bei euch auch!

                              Beste Grüße,
                              jomjol

                              1 Reply Last reply Reply Quote 0
                              • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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