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

                @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 Reply Last reply Reply Quote 0
                • pfried
                  pfried last edited by

                  @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 Reply Last reply Reply Quote 0
                  • J
                    jomjol @pfried last edited by

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

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

                      @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 Reply Last reply Reply Quote 0
                      • pfried
                        pfried last edited by

                        @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 Reply Last reply Reply Quote 0
                        • pfried
                          pfried last edited by

                          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 😄

                          W 1 Reply Last reply Reply Quote 0
                          • W
                            watcherkb @pfried last edited by

                            @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.

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

                              @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 Reply Last reply Reply Quote 0
                              • C
                                C1500 last edited by 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 pfried 2 Replies Last reply Reply Quote 0
                                • W
                                  watcherkb @C1500 last edited by

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

                                  1 Reply Last reply Reply Quote 0
                                  • W
                                    watcherkb @pfried last edited by

                                    @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.

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

                                      @pfried said in Wasserzähler - Selfmade:

                                      Bei Fragen bitte mir schreiben.
                                      Wasseruhr Blockly.txt

                                      Servus @pfried
                                      Könntest du mir bitte eine Zuordnung deiner hm-rega nennen die du im Script verwendest?
                                      Ein Teil wie Tages und Jahreswerte hab ich schon raus gefunden aber mir fehlen da noch ein paar.
                                      Ein Screenshot von den Verwendet hm-rega wäre klasse.
                                      Danke im Voraus
                                      Gruß Peer

                                      ps: hab noch etwas fokussiert und nun werden auch die Zahlen zuverlässig erkannt.
                                      Ich muss da nochmal nachjustieren wenn zu Weihnachten der 3D Drucker kommt 😉
                                      Aktuell ist der Aufbau eher ... provisorisch?
                                      IMG_20191118_190925.jpg

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

                                        @C1500 Guten Morgen, die Generelle Parser Poll Zeit stellt man im IOBroker unter Instanzen ein:

                                        45f903fc-a078-4f24-8654-abde8b978226-image.png

                                        Auf den Schraubenschlüssel clicken:

                                        5ce80d7f-72ba-43df-a087-5bb3daf8d807-image.png

                                        Oben links steht die Poll Zeit. In meinem Fall 30000 msec.
                                        Man kann aber auch individuelle Zeiten unter Objekte und der Variablen einstellen.
                                        Auf das Stiftsymbol clicken, dann unter Nativ und Intervall einen Wert eintragen:

                                        003a7c9e-2357-49b7-8de9-a6a792fcc63b-image.png

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

                                          @C1500 Ich habe in der Homematic folgende Variablen angelegt:

                                          c6204c02-979e-498b-bf6a-bd01c22e3216-image.png

                                          Dann im IOBroker die Instanz hm-rega stoppen und wieder starten. Dann soltten die Variablen auch im IOBroker auftauchen:

                                          ef99c25c-249c-4baa-8455-8c4cdd73c660-image.png

                                          Dort kann man auch das Suffix einstellen (Liter). Wieder unter Objekte. Bei Variable auf das Stift Symbol clicken und dann unter nativ ValueUnit:

                                          3fe37491-c3e8-44a9-ae19-4fd3a52218c8-image.png

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

                                            Servus Paul,
                                            Genau die Zuordnung in ioBorker auf dem 2ten Bild meinte ich.
                                            30966 => Wasserzähler_Woche
                                            Jetzt kann ich die im Blockly auch passend zuweisen.
                                            Vielen Dank

                                            Was das parsen angeht hab ich schon 30 Sekunden drin und finde das auch außreichend.
                                            Trotzdem holt der PI vom ESP-CAM alle paar Sekunden das Bild.
                                            Ich meinte ob man diese Abfrage etwas reduzieren kann.
                                            In der config.ini hab ich dazu nicht gefunden, außer dem Timeout wenn er kein Bild holen konnte.
                                            Dieser Timeout steht auch auf 30s.
                                            Vielleicht hat @jomjol noch eienen Tip für mich?

                                            Gruß Peer

                                            W pfried 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            618
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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