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.
    • coyote
      coyote Most Active @jomjol last edited by

      @jomjol prima, danke dir genau das wollte ich wissen 👍

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

        @jomjol Hast Du auch eine Antwort für mich warum AllowNegativeRates=False nicht funktioniert (siehe 312) Danke im Voraus!

        J 1 Reply Last reply Reply Quote 0
        • C
          C1500 last edited by

          Servus
          Ich hab jetzt auch mal versucht einen Pi aufzusetzen.
          Leider nur mit geringem Erfolg.
          Der ESP läuft und der Link ist unter config angepasst.
          Trotzdem kommt folgende Fehlermeldung:

          pi@raspberrypi:~/docker-wasserzaehler $ python3 wasseruhr.py
          WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.AUTO_REUSE is deprecated. Please use tf.compat.v1.AUTO_REUSE instead.
          
          WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.AttrValue is deprecated. Please use tf.compat.v1.AttrValue instead.
          
          WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.COMPILER_VERSION is deprecated. Please use tf.version.COMPILER_VERSION instead.
          
          WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.CXX11_ABI_FLAG is deprecated. Please use tf.sysconfig.CXX11_ABI_FLAG instead.
          
          WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.ConditionalAccumulator is deprecated. Please use tf.compat.v1.ConditionalAccumulator instead.
          
          Traceback (most recent call last):
            File "wasseruhr.py", line 3, in <module>
              import lib.ZaehlerstandClass
            File "/home/pi/docker-wasserzaehler/lib/ZaehlerstandClass.py", line 2, in <module>
              import lib.ReadAnalogNeedleClass
            File "/home/pi/docker-wasserzaehler/lib/ReadAnalogNeedleClass.py", line 8, in <module>
              import cv2
            File "/home/pi/.local/lib/python3.7/site-packages/cv2/__init__.py", line 3, in <module>
              from .cv2 import *
          ImportError: /home/pi/.local/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
          
          

          Was nun? Please Help 😉
          Gruß Peer

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

            @C1500 Hast Du sicher die SW für den RaspberryPi genommen:
            https://github.com/jomjol/water-meter-system-complete/tree/Raspberry-V3
            Ich hatte die Gleichen oder ähnliche Fehler (kann mich nicht mehr genau erinnern) weil ich nicht diese speziell für den RP3 genommen habe.

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

              Genau nach der Anleitung bin ich vorgegangen.
              Im Bereich "Usage" wäre noch eine Anleitung schön wie der Code einzubinden bzw. kopiert werden soll.
              Ich hab es zum einen mir "git clone" versucht, was aber vermutlich den anderen Bereich gezogen hat.
              Jetzt hab ich noch mal das Verzeichnis "code" als zip geladen,, entpackt und mit WinSCP auf dem Pi kopiert.
              Vermutlich geht das aber so nicht.

              Hier wäre ich für Hilfe sehr Dankbar.

              Gruß Peer

              ps: was muss denn noch angepasst werden, außer der IP der ESP-CAM?

              Bin leider eher ein Linux Anfänger und Hardwerker 😉

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

                @C1500 Weiter oben gibt es einen Link zu einem Dokument wie man die Config anpassen muss.
                Wichtig ist, dass Du das Phyton Skript starten kannst, dann lese Dir einfach mal alle Posts durch, da findest Du alle Infos die man zum Einrichten braucht.

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

                  @pfried Darum konnte ich mich noch nicht kümmern, bin gerade beruflich etwas verplant. Kommt aber noch.

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

                    @C1500 Okay - sieht nach einem Problem mit OpenCV2 aus. Das zickt manchmal etwas rum. Die Anleitung für den Raspi PI3 https://github.com/jomjol/water-meter-system-complete/tree/Raspberry-V3 hatte bei mir genau so funktioniert. Hoffentlich hat sich nichts durch Update der Libraries verschoben. Falls du weiterhin das Problem hast, melde dich nochmal bei mir, dann probiere ich es selbst nochmal aus.

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

                      Servus jomjol
                      ich hab gerade noch mal den Code von deinem Link runtergeladen und per WinSCP auf den PI kopiert.
                      Dann im "ReadAnalogNeedleClass.py" das # vor "import keras" eingetragen.
                      Nun scheint etwas zu passieren, zumindest dauert es einige Zeit bis folgende Meldung kommt:

                      pi@raspberrypi:~/code $ python3 wasseruhr.py
                      WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.AUTO_REUSE is deprecated. Please use tf.compat.v1.AUTO_REUSE instead.
                      
                      WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.AttrValue is deprecated. Please use tf.compat.v1.AttrValue instead.
                      
                      WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.COMPILER_VERSION is deprecated. Please use tf.version.COMPILER_VERSION instead.
                      
                      WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.CXX11_ABI_FLAG is deprecated. Please use tf.sysconfig.CXX11_ABI_FLAG instead.
                      
                      WARNING:tensorflow:From /home/pi/.local/lib/python3.7/site-packages/tensorflow/__init__.py:98: The name tf.ConditionalAccumulator is deprecated. Please use tf.compat.v1.ConditionalAccumulator instead.
                      
                      Traceback (most recent call last):
                        File "wasseruhr.py", line 3, in <module>
                          import lib.ZaehlerstandClass
                        File "/home/pi/code/lib/ZaehlerstandClass.py", line 2, in <module>
                          import lib.ReadAnalogNeedleClass
                        File "/home/pi/code/lib/ReadAnalogNeedleClass.py", line 8, in <module>
                          import cv2
                        File "/home/pi/.local/lib/python3.7/site-packages/cv2/__init__.py", line 3, in <module>
                          from .cv2 import *
                      ImportError: /home/pi/.local/lib/python3.7/site-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
                      pi@raspberrypi:~/code $
                      

                      Ein Bild wird allerdings nicht aufgenommen.
                      Ich hoffe das hilft beim Lösen meines Problemes weiter. ;o)
                      Gruß Peer

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

                        @C1500 Hallo Peer,
                        konnte dein Problem reproduzieren. Es scheint, also ob es ein Update/Modifikation an der OpenCV Bibliothek gab, denn vor 2 Wochen hat es bei mir funktioniert.
                        Ich habe aber auch einen Work-Around gefunden. Du musst das Python-Script mit einem sehr spezielle Aufruf starten:

                        LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1 python3 wasseruhr.py
                        

                        Das vermeidet den Fehler. Ich habe bei mir jetzt nochmal die Anleitung in Github für Raspberry Schritt für Schritt geprüft und upgedatet. Ich habe im Code jetzt auch den Fehler mit '#keras' korrigiert und in der Readme.md einen Anleitung für einen Code-Clone mittels "git"-command dokumentiert. Dann brauchst du eigentlich nichts mehr per WinSCP kopieren.

                        Schau es dir mal an und gerne Feedback falls dir weiteres auffällt. Danke für deine Rückmeldung zu den Problemen und der Geduld.
                        https://github.com/jomjol/water-meter-system-complete/tree/Raspberry-V3

                        Beste Grüße,
                        jomjol

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

                          Servus jomjol
                          Erst mal einen riesigen Dnak für deine Arbeit und deine Geduld mit mir 😉

                          Die Anleitung hab ich mir angeschaut. Sehr gut👍 👍

                          Das mit dem Aufruf kann ich erst heute Abend testen.
                          Ist das dann der Standartaufruf oder nur einmalig?

                          Gruß Peer

                          TANTE EDIT:
                          Hab es noch mal vom GIT geholt und mit dem PRELOAD ausgeführt.
                          Es funktioniert. 👍
                          Jetzt muss ich mich mal um die Kamera kümmern das die ein sauberes Bild liefert.
                          Schönen Abend
                          Gruß Peer

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

                            Habe mich nun mit der Auswertung beschäftigt und kann bei Bedarf meine bisherigen Schritte bekanntgeben.
                            Grobschritte:

                            1. Webserver von Jomjol starten
                            2. Mit Parser im IOBroker Werte auslesen
                            3. Auswertung mit IOBroker Blockly (mit Abfangen von Fehlwerten)
                            4. Variablen nach CCU schreiben

                            Wenn jemand daran interessiert ist schreibe ich gerne eine Anleitung.
                            CCU RM:

                            0f40bbb0-a190-46a4-83e5-4728dcc1d3a6-image.png

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

                              @pfried wäre an Punkt 3 interessiert

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

                                Ich habe das Blockly von @mcchickents genommen und so erweitert, dass möglichst viele Errors abgefangen werden. Es ist auch eine Abfrage drinnen, die einen Wert größer eines maximal möglichen Wasserdurchflusses der in 30 Sekunde bei mir durchfliessen kann (müsstest Du an Deine Abtastrate anpassen) abfängt. Der in der selben Abfrage abgefragte Wert (>120) erlaubt mir wieder Werte zu akzeptieren, denn ich habe oft Fehlwerte in der 10ner Stelle der Zeiger. Bei Fragen bitte mir schreiben.
                                Wasseruhr Blockly.txt
                                Da ich kein Programmierer bin, bitte ich um Nachsicht.....
                                Es sind vorab die oben im Bild angeführten Variablen in der CCU anzulegen und in den IOBroker zu importieren (stop und start der Instanz hm-rega). Alle Variablen müssen im Skript an deinen IOBroker IDs angepasst werden.

                                coyote C 2 Replies Last reply Reply Quote 0
                                • coyote
                                  coyote Most Active @pfried last edited by

                                  @pfried mich hat heute, gestern, Woche usw interessiert.
                                  Ist ja ganz einfach, wenn man es mal sieht 🤦‍♂️
                                  Hatte irgendwie keine Idee dazu. Danke dir.

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

                                    Servus pfried

                                    für mich wäre da noch der 2te Punkt interessant.
                                    Könntest du da bitte ein paar Zeilen zu verfassen?
                                    Würde bestimmt auch einigen Mitlesern helfen

                                    Vielen Dank im Voraus.
                                    Gruß Peer

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

                                      @C1500
                                      Habe im IOBroker den Parser und Javascript Adapter installiert,
                                      Dann unter Javascript Variablen (IOBroker-Objekte) angelegt:

                                      bba85412-5585-4f61-b81e-fb1bb4315149-image.png

                                      Anlegen von Variablen macht man mit dem kleinen blauen + Button. Alle Variablen sind als Zahlen definiert und als Postfix habe ich Liter genommen.

                                      Dann unter dem Parser das Gleiche nur das die Variable vom Typ String ist und unter IOBroker-Instanzen angelegt wird.

                                      Ergebnis:

                                      8f23f851-0a56-4857-a692-784bf4fb87b2-image.png

                                      Unter IOBroker Instanzen habe ich die Abtastrate und die Variable so eingestellt:

                                      d6140636-32b4-405c-9461-f616d042d258-image.png

                                      Im RegEx muss das stehen:

                                      [N|0-9][N|0-9][N|0-9][N|0-9][N|0-9]\D\d\d\d\d

                                      Viel Erfolg!

                                      PS.: Im Blockly die Variablen auf Eure IOBroker IDs matchen nicht vergessen 😄

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

                                        Noch ein Hinweis: mit dem History Adapter könnt Ihr all Variablen aufzeichnen das hilft enorm beim Fehlersuchen!

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

                                          @pfried Hallo Paul,
                                          habe mir gerade das Programm und meine Logs angeschaut. Bei mir funktioniert die Sperre für negative Werte:

                                          2019-11-15_00-30-01	414.6116	00414	6116
                                          2019-11-15_00-40-01	414.6116	00414	6116	ErrorNegativeRate	414.6115
                                          

                                          In meinem Log wurde die letzte Ziffer falsch gelesen (5 statt 6) und er gibt den alten Wert zurück, sehr ähnlich zu deinem.
                                          Verwendest du Docker oder eine direkte Installation? Beim Docker ist es evt. erst in der "rolling" richtig. Muss demnächst mal die latest updaten.
                                          Gruß,
                                          jomjol

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

                                            @jomjol Ich habe die "direkte" RP3 Version, frage an Dich :

                                            Im File ZaehlerstandClass.py steht:

                                            d8ff84f8-decd-4107-94e3-020d44faefae-image.png

                                            4 Zeile im Bild .... and self.Enabled ..... gehört dort nicht ....self.ConsistencyEnabled hin wie der "Schalter" in der config.ini heißt?

                                            ab24a2b6-7022-419d-a3ec-750dc08e5e0b-image.png

                                            Vielen Dank und liebe Grüße
                                            Paul

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            729
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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