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.3k

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 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
                              • pfriedP Offline
                                pfriedP Offline
                                pfried
                                schrieb am zuletzt editiert von
                                #349

                                Die MaxRateValue kann man für sich so berechnen (gilt aber nur wenn man IMMER "gute" Werte hat):

                                Ein Haushaltszähler (BM Q3 4 - Type steht auf der Wasseruhr) hat eine Durchflussmenge von circa 500l/h, das entspricht circa 0,139 Liter pro Sekunde. Bei einer Abtastrate (zB. IOBroker Parser) von z.B. 30 Sekunden fließen also maximal 4,2 Liter. Aufgerundet auf 5 Liter => MaxRateValue=0.005

                                Wie oben beschrieben geht das aber nur wenn man IMMER einen Wert bei der Detektierung rausbekommt, bei meinen vielen Fehldetektierungen muss ich 100 Liter einstellen, sonst bleibt der Wasserzähler stecken :smile:

                                W 1 Antwort Letzte Antwort
                                0
                                • pfriedP pfried

                                  Die MaxRateValue kann man für sich so berechnen (gilt aber nur wenn man IMMER "gute" Werte hat):

                                  Ein Haushaltszähler (BM Q3 4 - Type steht auf der Wasseruhr) hat eine Durchflussmenge von circa 500l/h, das entspricht circa 0,139 Liter pro Sekunde. Bei einer Abtastrate (zB. IOBroker Parser) von z.B. 30 Sekunden fließen also maximal 4,2 Liter. Aufgerundet auf 5 Liter => MaxRateValue=0.005

                                  Wie oben beschrieben geht das aber nur wenn man IMMER einen Wert bei der Detektierung rausbekommt, bei meinen vielen Fehldetektierungen muss ich 100 Liter einstellen, sonst bleibt der Wasserzähler stecken :smile:

                                  W Offline
                                  W Offline
                                  watcherkb
                                  schrieb am zuletzt editiert von
                                  #350

                                  @pfried respekt dass du dich weiter reinfuchst. Nicht alle haben so eine Geduld. Bei mir hapert es aktuell an der Basis...die Camera ist immer wieder offline, obwohl ich nicht mal das Bild abrufe. Parser ist deaktiviert, ich pinge nur alle 5 Minuten um zu schauen ob die Camera im Netz ist. Irgendwann ist er offline. Wo soll ich anfangen zu suchen? Netzteil? Feste IP vergeben und neu flashen? Kontakte löten statt nur drauf stecken? Bin momentan ratlos.

                                  CC2538+CC2592 PA-Zigbee-Funkmodul

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

                                    @watcherkb Versuche mal den Parser einfach laufen zu lassen und als Test auf 30 Sekunden zu stellen. Dann aktiviere bei der Parser-Variable die History Funktion und schaue dir die Werte an.
                                    Was sehr interessant ist: Das ESP32 Modul verschwindet bei mir nach einiger Zeit aus der Connected Liste auf der Fritzbox ABER trotzdem liest der Parser Werte von der ESP32. Keine Ahnung wie das geht....

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

                                      Servus
                                      @pfried : Vielen Dank für die Anleitung.
                                      Hab die Daten jetzt in ioBroker.

                                      Leider werden aktuell nur die Pfeile erkannt. Die Zahlen leider nicht.

                                      Könnte ich da noch was mit besserer Positionierung verbessern?

                                      Aktuell schaut es so aus:roi.png

                                      Ich hab die Linse vom Kleber befreit und dann den Focus auf einen Abstand von ca. 10cm eingestellt.

                                      Gruß Peer

                                      Tante Edit hat noch ne Frage:
                                      Wo stell ich die Wiederholrate ein?
                                      Alle 30 Sekunden sollte reichen, aktuell mach er alle 10 Sekunden ein Bild.

                                      W pfriedP 2 Antworten Letzte Antwort
                                      0
                                      • C C1500

                                        Servus
                                        @pfried : Vielen Dank für die Anleitung.
                                        Hab die Daten jetzt in ioBroker.

                                        Leider werden aktuell nur die Pfeile erkannt. Die Zahlen leider nicht.

                                        Könnte ich da noch was mit besserer Positionierung verbessern?

                                        Aktuell schaut es so aus:roi.png

                                        Ich hab die Linse vom Kleber befreit und dann den Focus auf einen Abstand von ca. 10cm eingestellt.

                                        Gruß Peer

                                        Tante Edit hat noch ne Frage:
                                        Wo stell ich die Wiederholrate ein?
                                        Alle 30 Sekunden sollte reichen, aktuell mach er alle 10 Sekunden ein Bild.

                                        W Offline
                                        W Offline
                                        watcherkb
                                        schrieb am zuletzt editiert von
                                        #353

                                        @C1500 das sieht noch etwas unscharf aus. Dreh nochmal etwas an der Linse. Das muss richtig scharf werden.

                                        CC2538+CC2592 PA-Zigbee-Funkmodul

                                        1 Antwort Letzte Antwort
                                        0
                                        • pfriedP pfried

                                          @watcherkb Versuche mal den Parser einfach laufen zu lassen und als Test auf 30 Sekunden zu stellen. Dann aktiviere bei der Parser-Variable die History Funktion und schaue dir die Werte an.
                                          Was sehr interessant ist: Das ESP32 Modul verschwindet bei mir nach einiger Zeit aus der Connected Liste auf der Fritzbox ABER trotzdem liest der Parser Werte von der ESP32. Keine Ahnung wie das geht....

                                          W Offline
                                          W Offline
                                          watcherkb
                                          schrieb am zuletzt editiert von
                                          #354

                                          @pfried hab schon alles versucht. Es bringt auch nichts auf 30 Sekunden zu stellen wenn das Ding nicht mal angepingt werden kann.
                                          Habe jetzt neu geflasht und eine statische IP vergeben. Ich beobachte weiter.

                                          CC2538+CC2592 PA-Zigbee-Funkmodul

                                          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

                                          844

                                          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