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.
    • pfried
      pfried last edited by

      Darf ich bitte an dieser Stelle als völliger Neuling eine Frage um weitere Schritte stellen:
      Ich habe mir einen ESP32-CAM geholt und diesen auch wider erwarten mit der Firmware bespielen können, das war schon ein sehr großer Erfolg für mich 😀
      Jetzt stehe ich aber an, denn ich muss nun, wenn ich das richtig verstanden habe, meinen Raspberry 4 auf dem auch meine IObroker Instance läuft dazu bekommen das Kamerabild zu holen und zu verarbeiten.
      Daher meine Frage: was muss ich am Raspberry 4 machen damit der Code läuft und am Schluss im IOBroker die Werte in die Variablen eingetragen werden?
      Ich hoffe auf die Nachsicht und auf den Support von einem Wissenden, der mir vielleicht eine Step by Step Anleitung zukommen lassen kann. Es werden nämlich oft Schritte gesetzt, die für jeden hier im Forum selbstverständlich sind, aber für jemanden, der sich gerade erst einmal die Arduino IDE installiert hat um einen ESP32 zu flashen, oft nächtelanges recherchieren bedeutet.
      Mich fasziniert dieses Projekt und ich würde es auch gerne umsetzen können.
      Liebe Grüße aus Wien
      Paul

      PS.: Habe auch schon von @mcchickents das Gehäuse dankenswerterweise ausgedruckt bekommen.

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

        @pfried

        Hi ich bin auch kein Software Spezialist. Ich würde es aber so lösen. jomjol hat einen Container für die Software Plattform "Docker" erstellt. Mit dem Container auf der Plattform Docker ist es nun möglich den "Server" innerhalb weniger Minuten zum laufen und was noch wichtiger ist zum updaten zu bringen.

        Bei mir läuft der Docker auf einer Synology Nas es ist aber auch möglich den Docker auf einem Pi zu instalieren.
        Ob es jetzt gut ist den Iobroker sowie ein Docker gleichzeitig auf einem Pi zu installieren kann ich nicht beurteilen. CPU Ram Architektur usw.
        Hier mal ein video wie es auf dem Pi geht.
        https://www.youtube.com/watch?v=nBwJm0onzeo

        Wenn du einen Docker am laufen hast ist die Einrichtung von dem Container fast ein Kinderspiel.

        Gruß Julian

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

          @mcchickents naja, ganz so einfach ist es leider nicht => siehe meine Beiträge oben.

          Ich versuche gerade, einen docker container für den raspi zu erstellen.

          M 1 Reply Last reply Reply Quote 0
          • M
            mcchickents @daniel_iobroker last edited by

            @daniel_iobroker

            oh da hast du natürlich recht.

            Dann müsste jemand auf einem pi das zeug erst einmal manuell installieren und danach ein Container abbild erzeugen.
            so wie ich das aber bisher verfolgt habe scheint man für die manuelle Installation schon etwas fortgeschrittene Linux Skills zu benötigen.

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

              Jetzt wisst Ihr von was ich rede! 😎 ... alles nicht so einfach für einen Anfänger.
              Vielleicht kann man ja das am Raspberry 4 auch ohne Docker lösen, aber wie schon gesagt, halt Schritt für Schritt beschrieben ..... 🖖 ✍

              Habe mal schon das pip3 Ding von oben gemacht, das lief durch 👏

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

                @pfried Erstmal super, dass deine ESP32-CAM schon läuft. Der Container muss halt für einen Raspberry installiert sein. Ich überlege gerade, ob ich meinen einzigen Raspi mal kurz mit einem anderen System bespiele und es dann einfach mal probiere. Suche mir mal eine freie SD-Karte ...

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

                  @pfried Raspberry 3 läuft, Docker ist installiert - jetzt muss ich aber erstmal auf ein Konzert, also geht später weiter ...

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

                    @jomjol Docker am Raspi ist kein Problem. Nur der Dockercontainer von dir wurde mit einer amd64 Architektur erstellt. Der Raspi hat aber arm Architektur.
                    Bin gerade dabei, das Tensorflow für den rpi mit python 3.7 zu compilieren. Dauert aber ziemlich lange..

                    Danach wollte ich mir dein Github clonen und das dockerfile anpassen und die neue Tensorflow Datei ins Github Verzeichnis holen - Anschließend das Docker Image generieren.

                    Mit Tensorflow und python 3.4 wäre das ganze schneller, weiß aber nicht, ob das mit deinen restlichen Files funktioniert, daher das neue compilieren mit python 3.7

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

                      @daniel_iobroker Machst du ein crosscompile oder compilierst du direkt auf Raspy?

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

                        @jomjol Habe ein crosscompile versucht. Den ganzen Nachmittag und Abend lang habe ich versucht, das zu compilieren. In einer virtuellen Maschine. Habe im letzten Versuch schon 10GB RAM zugewiesen und selbst da klappte es nicht. Der RAM wurde immer wieder voll inkl. Auslagerungsdatei.

                        Hab jetzt ein fertiges Ternsorflow mit python 3.4 geholt und baue gerade das docker image für den pi. Bin gespannt ob das funktioniert. Ist mein erster Versuch mit Docker

                        1 Reply Last reply Reply Quote 0
                        • E
                          ecki945 last edited by ecki945

                          Eure Fotos von der ESP32Cam sind so scharf. Bei mir sieht noch etwas trübe aus. Hat da jemand ne Idee?

                          79dc6930-951c-4b02-92e4-68fb25e473c8-grafik.png

                          Habe bisher alles nach Anleitung gemacht. Also die mechanischen Teile mit dem 3D-Drucker erstellt, ESP32 mit Cam geflasht.

                          Mit dem Befehl http://192.168.178.54/capture_with_flashlight erstellt er auch ein Bild.

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

                            @ecki945 Wie das mit dem fokussieren geht, steht hier mehrfach im Thread

                            1 Reply Last reply Reply Quote 0
                            • E
                              ecki945 last edited by

                              Danke mal. Les den thread nochmal durch

                              1 Reply Last reply Reply Quote 0
                              • E
                                ecki945 last edited by

                                Nun ist das Bild scharf nach verdrehen der linse.

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

                                  @jomjol
                                  hab endlich das docker image für den pi fertig bauen können.
                                  Beim start davon gibt es jedoch noch eine Fehlermeldung.

                                  root@orangepione:/home/pi# docker run -p 3000:3000 daniel2212/test-wasserzaehler
                                  Using TensorFlow backend.
                                  Traceback (most recent call last):
                                    File "./wasseruhr.py", line 3, in <module>
                                      import lib.ZaehlerstandClass
                                    File "/lib/ZaehlerstandClass.py", line 2, in <module>
                                      import lib.ReadAnalogNeedleClass
                                    File "/lib/ReadAnalogNeedleClass.py", line 1, in <module>
                                      import keras
                                    File "/usr/local/lib/python3.4/site-packages/keras/__init__.py", line 3, in <module>
                                      from . import utils
                                    File "/usr/local/lib/python3.4/site-packages/keras/utils/__init__.py", line 27, in <module>
                                      from .multi_gpu_utils import multi_gpu_model
                                    File "/usr/local/lib/python3.4/site-packages/keras/utils/multi_gpu_utils.py", line 7, in <module>
                                      from ..layers.merge import concatenate
                                    File "/usr/local/lib/python3.4/site-packages/keras/layers/__init__.py", line 4, in <module>
                                      from ..engine.base_layer import Layer
                                    File "/usr/local/lib/python3.4/site-packages/keras/engine/__init__.py", line 8, in <module>
                                      from .training import Model
                                    File "/usr/local/lib/python3.4/site-packages/keras/engine/training.py", line 21, in <module>
                                      from . import training_arrays
                                    File "/usr/local/lib/python3.4/site-packages/keras/engine/training_arrays.py", line 8, in <module>
                                      from scipy.sparse import issparse
                                    File "/usr/local/lib/python3.4/site-packages/scipy/__init__.py", line 77, in <module>
                                      from . import _distributor_init
                                  ImportError: cannot import name '_distributor_init'
                                  
                                  

                                  Musste noch ein paar packages auf eine ältere Version ändern, da es für den pi keine neueren Versionen gab.
                                  Hilft dir das weiter?
                                  Vor allem der letzte Eintrag ist komisch und hier wird es auch hängen denke ich.

                                  Bin gespannt was du dazu schreibst.

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

                                    @daniel_iobroker Da bist du deutlich weiter gekommen wie ich. Ich habe es bisher noch nicht geschafft, Tensorflow für Raspi zu kompilieren und die Version für Python 3.4 funktioniert auch nicht.
                                    Die letzte Fehlermeldung scheint eine interne Bibliothek in Tensorflow zu sein. Damit bin ich auch ziemlich ratlos.
                                    Ich überlege gerade, ob ich alles auf Tensorflow 1.9 oder 2.0 übertrage, denn dass sollte auf dem Raspi laufen. Ich habe aber noch keine Ahnung wieviel Aufwand das ist.
                                    Was hast du den als Basisimage für das Docker vewendet?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            731
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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