Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Wasserzähler - Selfmade

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Wasserzähler - Selfmade

Geplant Angeheftet Gesperrt Verschoben Hardware
wasser wasserzählerhow-to
1.1k Beiträge 48 Kommentatoren 376.6k Aufrufe 72 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • pfriedP Offline
    pfriedP Offline
    pfried
    schrieb am zuletzt editiert von
    #329

    @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 Antwort Letzte Antwort
    0
    • pfriedP pfried

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

      J Offline
      J Offline
      jomjol
      schrieb am zuletzt editiert von
      #330

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

      1 Antwort Letzte Antwort
      0
      • C 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 Offline
        J Offline
        jomjol
        schrieb am zuletzt editiert von
        #331

        @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 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          C1500
          schrieb am zuletzt editiert von C1500
          #332

          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 Antwort Letzte Antwort
          0
          • C 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 Offline
            J Offline
            jomjol
            schrieb am zuletzt editiert von jomjol
            #333

            @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 Antwort Letzte Antwort
            0
            • C Offline
              C Offline
              C1500
              schrieb am zuletzt editiert von C1500
              #334

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

              Die Anleitung hab ich mir angeschaut. Sehr gut:+1: :+1:

              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. :+1:
              Jetzt muss ich mich mal um die Kamera kümmern das die ein sauberes Bild liefert.
              Schönen Abend
              Gruß Peer

              1 Antwort Letzte Antwort
              0
              • pfriedP Offline
                pfriedP Offline
                pfried
                schrieb am zuletzt editiert von pfried
                #335

                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

                coyoteC 1 Antwort Letzte Antwort
                0
                • pfriedP 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

                  coyoteC Offline
                  coyoteC Offline
                  coyote
                  Most Active
                  schrieb am zuletzt editiert von
                  #336

                  @pfried wäre an Punkt 3 interessiert

                  1 Antwort Letzte Antwort
                  0
                  • pfriedP Offline
                    pfriedP Offline
                    pfried
                    schrieb am zuletzt editiert von
                    #337

                    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.

                    coyoteC C 2 Antworten Letzte Antwort
                    0
                    • pfriedP pfried

                      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.

                      coyoteC Offline
                      coyoteC Offline
                      coyote
                      Most Active
                      schrieb am zuletzt editiert von
                      #338

                      @pfried mich hat heute, gestern, Woche usw interessiert.
                      Ist ja ganz einfach, wenn man es mal sieht :man-facepalming:
                      Hatte irgendwie keine Idee dazu. Danke dir.

                      1 Antwort Letzte Antwort
                      0
                      • C Offline
                        C Offline
                        C1500
                        schrieb am zuletzt editiert von
                        #339

                        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 Antwort Letzte Antwort
                        0
                        • pfriedP Offline
                          pfriedP Offline
                          pfried
                          schrieb am zuletzt editiert von
                          #340

                          @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 :smile:

                          1 Antwort Letzte Antwort
                          0
                          • pfriedP Offline
                            pfriedP Offline
                            pfried
                            schrieb am zuletzt editiert von
                            #341

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

                            1 Antwort Letzte Antwort
                            0
                            • pfriedP pfried

                              @jomjol Eine Beobachtung die ich noch gemacht habe:

                              Der

                              3a80c468-33a3-4301-9118-56e9c2159b98-image.png

                              AllowNegativeRates steht auf False trotzdem werden "negative" Werte ausgegeben.
                              Beispiel:

                              b1e472ce-def5-42f8-82ff-839fe2f29a16-image.png

                              Liebe Grüße
                              Paul

                              PS.: Ein super Projekt! Habe es einem Freund gezeigt, der Bürgermeister von unserer Gemeinde ist und der wollte wissen ob das auch kommerziell einsetzbar ist :blush:

                              J Offline
                              J Offline
                              jomjol
                              schrieb am zuletzt editiert von
                              #342

                              @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 Antwort Letzte Antwort
                              0
                              • pfriedP Offline
                                pfriedP Offline
                                pfried
                                schrieb am zuletzt editiert von
                                #343

                                @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 Antwort Letzte Antwort
                                0
                                • pfriedP pfried

                                  @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 Offline
                                  J Offline
                                  jomjol
                                  schrieb am zuletzt editiert von
                                  #344

                                  @pfried Respekt, du bist echt tief im Code drin und hast völlig Recht. Du scheinst aber noch eine alte Version zu haben. In der RP3-Version ist es korrigiert:

                                  
                                      def checkConsistency(self, ignoreConsistencyCheck):
                                          error = False
                                          errortxt = ''
                                          if (len(self.LastVorkomma) > 0) and not('N' in self.akt_vorkomma) and self.ConsistencyEnabled:
                                              akt_zaehlerstand = float(str(self.akt_vorkomma.lstrip("0")) + '.' + str(self.akt_nachkomma))   
                                              old_zaehlerstand = float(str(self.LastVorkomma.lstrip("0")) + '.' + str(self.LastNachkomma)) 
                                              delta = akt_zaehlerstand - old_zaehlerstand
                                              if not(self.AllowNegativeRates) and (delta < 0):
                                  

                                  Gruß, jomjol

                                  1 Antwort Letzte Antwort
                                  0
                                  • pfriedP Offline
                                    pfriedP Offline
                                    pfried
                                    schrieb am zuletzt editiert von
                                    #345

                                    @jomjol Irgendwie scheitert das Projekt bei mir an den vielen Fehlern beim Lesen des Wasserzählers. Kann ich da noch irgendetwas tun?

                                    a3a6ab1b-c3f9-4775-95ae-23f7d7b2a4e9-image.png

                                    J 1 Antwort Letzte Antwort
                                    0
                                    • pfriedP pfried

                                      @jomjol Irgendwie scheitert das Projekt bei mir an den vielen Fehlern beim Lesen des Wasserzählers. Kann ich da noch irgendetwas tun?

                                      a3a6ab1b-c3f9-4775-95ae-23f7d7b2a4e9-image.png

                                      J Offline
                                      J Offline
                                      jomjol
                                      schrieb am zuletzt editiert von
                                      #346

                                      @pfried Wir müssten mal deine Zeiger teachen. Melde mich nochmal mit PV bei dir.

                                      1 Antwort Letzte Antwort
                                      0
                                      • pfriedP Offline
                                        pfriedP Offline
                                        pfried
                                        schrieb am zuletzt editiert von
                                        #347

                                        @jomjol
                                        Ich habe mir nochmals angesehen warum ich negative Werte zurück bekomme, obwohl in meinem Config.ini File AllowNegativeRates auf False gesetzt ist.
                                        Der Grund ist, dass er nie zu der def checkConsistency Routine kommt, da ConsistencyEnabled immer False war.
                                        Erst wie ich unten in der Routine:

                                        e3f71553-c80f-4da9-b8ad-755eb1f945f9-image.png

                                        in der ersten Zeile den Wert auf True gesetzt habe, wurde die def checkConsistency Routine aufgerufen.
                                        Frage mich aber nicht warum, das so ist. In meiner Confi.ini steht:

                                        6e71b3cd-b92d-420f-8fd2-89be06e805a6-image.png

                                        1 Antwort Letzte Antwort
                                        0
                                        • pfriedP Offline
                                          pfriedP Offline
                                          pfried
                                          schrieb am zuletzt editiert von
                                          #348

                                          @jomjol

                                          Ich denke der Check oben muss lauten:

                                          43e4995a-4252-4248-8b16-acbab38fe5ed-image.png

                                          Da die Variable in der Config.ini ja jetzt ConsistencyEnabled und nicht mehr Enabled heißt, oder?

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          556

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe