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 goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Wasserzähler - Selfmade

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      intruder7 @jomjol last edited by

      @jomjol
      hab nur die beiden Dateien getauscht.
      Ergebnis
      47a2c9fe-22da-4d89-b285-fe8ff1cc97ed-image.png

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

        @intruder7 Kannst du mir das Bild von der falschen 2 schicken? Bleib dann erstmal bei der alten Version - scheint stabiler, wenn auch für mich noch nicht ganz klar.

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

          @jomjol
          falsche zwei😀
          ziffer5.jpg ziffer4.jpg ziffer3.jpg ziffer2.jpg ziffer1.jpg

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

            @intruder7 Habe sie gerade bei mir durchgelassen (neu trainiertes CNN) - zeigt die richtigen Werte. Wenn du wieder ein paar falsche Ziffern hast, schicke sie mir einfach.

            I J 2 Replies Last reply Reply Quote 0
            • I
              intruder7 @jomjol last edited by

              @jomjol
              ja hatte die Koordinaten noch um ein paar Pixel verschoben. Dann ging es auch bei mir. Mal schauen wie es die nächsten Tage läuft. Das allignment musst du dir unbedingt nochmal anschauen. Hatte ich bei mir deaktiviert. den Referenzpunkt "ZF" z.B. gibt es bei mir nicht. Willst du die Sache mit dem Dockerimage noch umsetzen?

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

                @intruder7 Mit Docker kenne ich mir gar nicht aus. Versuche mich gerade an einer Step-By-Step Anleitung für einen Ubuntu-Server in VirtuellBox.

                Habe aber noch Problem mit der Installation von OpenCV, genau das, was ich für das Alignment benötige.

                I 2 Replies Last reply Reply Quote 0
                • I
                  intruder7 @jomjol last edited by

                  @jomjol ja das war tricky. da fehlte glaub ich get und cmake

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

                    Hey @jomjol, ich glaube dieses Projekt ist absolut nicht alltagstauglich. Habe den ganzen Server jetzt zwar auch in einen Docker bekommen. Aber auch dieses nur mit großen Schwierigkeiten. Tensorflow nur mit einer bestimmten Version u.s.w. Hatte noch ein bisschen was umgelötet. Damit hat natürlich die ganze Zentrierung von vorne begonnen.
                    36e6630f-b62c-4826-ab45-36ec5bd77310-image.png

                    die "4" erkennt er nicht und hier geht es tasächlich um Pixel! Mal erkennt er eine "3" dann wieder eine "1". Je nachdem wie ich die "4" positioniere. Was soll denn erst passieren wenn die Zahlen tatsächlich rotieren?
                    Das hat sich tatsächlich super angehört aber so absolut nicht umsetzbar. Ich denke, ich werde hier auf einen Impulsgeber umsteigen um den Wasserverbrauch zu zählen.
                    Schade
                    Für dich nochmal die aktuellen Zahlen
                    ziffer5.jpg ziffer4.jpg ziffer3.jpg ziffer2.jpg ziffer1.jpg zeiger4.jpg zeiger3.jpg zeiger2.jpg zeiger1.jpg rot.jpg resize_tmp.jpg org.jpg alg.jpg aktuell.jpg

                    coyote J 2 Replies Last reply Reply Quote 0
                    • coyote
                      coyote Most Active @intruder7 last edited by

                      @intruder7 sagte in Wasserzähler - Selfmade:

                      Ich denke, ich werde hier auf einen Impulsgeber umsteigen um den Wasserverbrauch zu zählen.

                      Willst du da was fertiges nehmen oder sowas wie im Homematic Forum, der Eigenbau von Eugen (Funkleuchtturm)?

                      I 1 Reply Last reply Reply Quote 0
                      • I
                        intruder7 @coyote last edited by

                        @coyote
                        Hatte dieses im Auge
                        Link Text
                        mit dem HM-ES-TX-WM

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

                          @intruder7 Schade! Mit den Ziffern habe ich tatsächlich an wenigsten Probleme. Aber natürlich sind sie auch genau mit meinen Ziffern geteached.
                          Ich bin gerade im Familieurlaub und der WAF Faktor erlaubt keine größeren Aktivitäten am Wasserzähler.
                          Habe Interesse an dem docker Container. Kannst du mir das Dickerfile schicken?

                          I 1 Reply Last reply Reply Quote 0
                          • L
                            lutzer last edited by

                            Sehr coole Idee, werde ich im Herbst erst testen können aber mach ich definitiv.
                            Ich hatte so was schon lange gesucht, also Bilderkennung. Denn ich habe da noch mehr Anwendungen.
                            Einmal der Druckwächter vom Kamin (https://www.leda.de/produkte/elektronik/luc/). Da hole ich mir zwar den Schaltzustand vom ISG der Wärmepumpe aber die Tamperatur im Kamin ist ja auch noch nett.
                            Dann die Staubsaugeranlage (http://www.bvc-zentralstaubsauger.de/zentralstaubsauger/details/), da ist ja ein nettes Display dran, aber das Ding hängt in der Garage ganz hinten 😉
                            Und dann soll noch eine Klimaanlage her, die wird sicher auch nicht so smart sein wie man es heute braucht.
                            Im Prinzip alles wo man von Analog auf Digital möchte.

                            Also du siehst weiter machen lohnt sich. 👍

                            1 Reply Last reply Reply Quote 0
                            • coyote
                              coyote Most Active @intruder7 last edited by

                              @intruder7 ok gut, dass wäre ja dann Eugens Lösung mit dem HM Modul dran. Das HM Modul bräuchte ich nicht, könnte den Zähler direkt an ein Wired Modul hängen

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

                                @jomjol
                                naja schicken wird schwierig. sind mehrere 100MB. Ich schaue mal ob ich es irgendwie über google drive freigeben kann.

                                1 Reply Last reply Reply Quote 0
                                • I
                                  intruder7 last edited by

                                  Guten Morgen,
                                  habe den Zähler oder die Ausleseeinheit jetzt 2 Tage laufen gelassen. Ich frage mit dem Parser adapter die Seite vom Server alle 30 sec ab und parse mir das Ergebnis da raus. Gelogt werden sie mittels sql Adapter. Was mir aufgefallen ist.

                                  1. die Werte springen teilweise durch falsche Erkennung der Zahlen. Sieht man hier sehr gut.
                                    Auch die analogen Werte springen. Wobei ich nicht weiß ob es hier an der Spiegelung der LED´s liegt.

                                  3c6c7d8d-a74b-442f-961f-70e857412a79-image.png
                                  Habe den Punkt in einen Verbrauchswerte Skript mit eingebunden welches natürlich total unbrauchbare Werte liefert durch das vor und zurück.
                                  2. Wenn aus irgendwelchen Gründen der ESP vom Server nicht erreichbar ist oder ein unbrauchbares Bild liefert weil WLAN zu schlecht , beendet sich der ganze Server. Das ist natürlich auch ungünstig. Das müsste irgendwie abgefangen werden.

                                  Ich teste weiter

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

                                    Ich habe inzwischen auch ein Docker Image zu vereinfachten Installation der Bildverarbeitung erzeugt: https://hub.docker.com/r/jomjol/wasserzaehler

                                    In Summe ist das Projekt jetzt aufgrund technischer Limitationen in NodeJS auf Python umgestellt worden - die Links im allerersten Post habe ich upgedated.

                                    Viel Spass beim Ausprobieren und bitte gerne Feedback an mich.

                                    Gruß,
                                    jomjol

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

                                      Hi das mit dem Docker Image hört sich ja super an, werde ich mir heute Abend anschauen.
                                      Ist es jetzt eigentlich möglich als Hardware den ESP 32 zu verwenden hat das schon jemand zum laufen bekommen?

                                      Gruß Julian

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

                                        @mcchickents Prinzipiell ja. Ich habe mir probehalbe ein ESP32-CAM Modul gekauft (China ca 5 EUR, Amazon ca. 12 EUR), das ist ein ESP32 mit OV2640-Kamera. Bilder von der Kamera habe ich, aber die Ansteuerung der LEDs ist noch nicht implementiert, da ich im Urlaub bin und dort keine LEDs-Strips mit habe :-).
                                        Habe jetzt die letzten beiden Wochen mit dem Docker Container und der Einbindung von Tensorflow zugebracht - musste einiges neu Lernen und Tensorflow ist etwas spezifisch, was die HW angeht. Ich wollte es unbedingt auf meiner Synology-DS zum Laufen bringen und die hat nur einen einfachen Intel-Prozessor.
                                        Gruß, jomjol

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

                                          Hi,
                                          auch von mir noch Mal ein großes Danke und Hochachtung für die schöne Umsetzung! Ich hab schon seit Jahren eine OCR für die Ziffern im Einsatz und hatte es mir als Projekt für den Urlaub vorgenommen, die analogen Nadeln mit Tensorflow zu lernen. Beim Googeln hab ich Dein Projekt gefunden und das ist natürlich viel schöner!
                                          Blöderweise hatte ich es vor zwei Wochen angefangen, alles für nodejs installiert und als ich heute weiter machen wollte, ist es plötzlich in python ;-)) nee nee, viel besser, alles gut 🙂

                                          Das pip install requirements hat bei mir nicht funktioniert.
                                          Ich musste unter debian 10.0 / x86_64 das folgende machen, ich hoffe, es hilft jemandem :

                                          pip3 install requests Keras numpy Pillow opencv-python tensorflow --no-cache-dir
                                          

                                          Ich hab die config.ini angepasst und kann den Server starten. Leider bekomme ich eine Fehlermeldung, mit der ich nicht weiter komme:

                                          root@dasding:~/water-meter-system-complete/code# python3 wasseruhr.py
                                          Using TensorFlow backend.
                                          /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_qint8 = np.dtype([("qint8", np.int8, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_qint16 = np.dtype([("qint16", np.int16, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_qint32 = np.dtype([("qint32", np.int32, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            np_resource = np.dtype([("resource", np.ubyte, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_qint8 = np.dtype([("qint8", np.int8, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_qint16 = np.dtype([("qint16", np.int16, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            _np_qint32 = np.dtype([("qint32", np.int32, 1)])
                                          /usr/local/lib/python3.7/dist-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
                                            np_resource = np.dtype([("resource", np.ubyte, 1)])
                                          Start Init Zaehlerstand
                                          WARNING:tensorflow:From /usr/local/lib/python3.7/dist-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/dist-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/dist-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/dist-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
                                          2019-09-02 16:36:45.093960: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
                                          2019-09-02 16:36:45.116365: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 1992000000 Hz
                                          2019-09-02 16:36:45.116783: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x43bb350 executing computations on platform Host. Devices:
                                          2019-09-02 16:36:45.116823: I tensorflow/compiler/xla/service/service.cc:175]   StreamExecutor device (0): <undefined>, <undefined>
                                          2019-09-02 16:36:45.136602: W tensorflow/compiler/jit/mark_for_compilation_pass.cc:1412] (One-time warning): Not using XLA:CPU for cluster because envvar TF_XLA_FLAGS=--tf_xla_cpu_global_jit was not set.  If you want XLA:CPU, either set that envvar, or use experimental_jit_scope to enable XLA:CPU.  To confirm that XLA is active, pass --vmodule=xla_compilation_cache=1 (as a proper command-line flag, not via TF_XLA_FLAGS) or set the envvar XLA_FLAGS=--xla_hlo_profile.
                                          Analog Model Init Done
                                          Digital Model Init Done
                                          serving at port 3000
                                          Picture Download done
                                          ----------------------------------------
                                          Exception happened during processing of request from ('10.0.0.71', 55985)
                                          Traceback (most recent call last):
                                            File "/usr/lib/python3.7/socketserver.py", line 316, in _handle_request_noblock
                                              self.process_request(request, client_address)
                                            File "/usr/lib/python3.7/socketserver.py", line 347, in process_request
                                              self.finish_request(request, client_address)
                                            File "/usr/lib/python3.7/socketserver.py", line 360, in finish_request
                                              self.RequestHandlerClass(request, client_address, self)
                                            File "/usr/lib/python3.7/socketserver.py", line 720, in __init__
                                              self.handle()
                                            File "/usr/lib/python3.7/http/server.py", line 426, in handle
                                              self.handle_one_request()
                                            File "/usr/lib/python3.7/http/server.py", line 414, in handle_one_request
                                              method()
                                            File "wasseruhr.py", line 30, in do_GET
                                              result = wasserzaehler.getZaehlerstand('./image_tmp/original.jpg', simple, preValue)
                                          NameError: name 'preValue' is not defined
                                          ----------------------------------------
                                          

                                          Kann jemand damit was anfangen und mir weiterhelfen? Der Server bleibt weiter am Leben und nimmt neue requests an. Die Fehlermeldung ist immer die gleiche.

                                          Vielen Dank für alle Hinweise und schöne Grüße,
                                          Ruebenschuss

                                          J 2 Replies Last reply Reply Quote 0
                                          • R
                                            ReverZ last edited by

                                            Echt stark, der Support für den Wasserzähler!
                                            Aber als nächstes kommt einer um die Ecke und will das als Proxmox-Container 😊


                                            z.B. ich <duck und schnell weg>

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            875
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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