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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Wasserzähler - Selfmade

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

      @pfried Hallo pfried,
      auf den ersten Blick sehe ich keinen Fehler und eigentlich dürftest du keine negativen Werte haben. Zwei Fragen dazu:

      1. Hast du den Server nach Änderung der Config.ini neu gestartet?
      2. usePreValue funktioniert nur, wenn auch mindestens einmal ein vollständiger Wert (also ohne "N") gelesen wurde. Alternativ kannst du den WErt auch mit /setPreValue?value=406.1187 setzen.

      Beste Grüße, jomjol

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

        @jomjol Hallo jomjol, der Server wird über den Docker restart Befehl alle zwei Stunden neu gestartet. Ich habe das auch getestet und es wird bei jeden restart auch die config.ini übernommen.
        Ich hatte den usePreValue zu dem oben genannten Zeitpunkt nicht in Verwendung. Das Bild zeigt zwar die Verwendung, ist aber nicht aktuell.
        Liebe Grüße
        Paul

        J 1 Reply Last reply Reply Quote 0
        • B
          Brati last edited by

          Sooo, hab das DAU Stadium verlassen und muss nur noch etwas nachjustieren:

          1. Test.jpg

          Meine ESP Cam zickt im WLAN rum, wenn sie sich sich mit dem Mesh Repeater verbindet, dann ist sie nicht mehr erreichbar. Und ohne das ich ihn kurz rausziehe, geht sie immer zum Repeater, obwohl der weiter weg ist als die FritzBox.

          Warum werden mir eigentlich die 3 Analogen Zeiger Positionen angezeigt, obwohl in der ini

          [AnalogReadOut]
          #If enabled analog counters will be read, if disabled only digital counters will be read.
          Enabled=false
          

          gesetzt ist?

          Grüße Brati

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

            @Brati Hi Brati,
            das ist noch ein Bug - das Feature ROI-Zeichnen habe ich implementiert, als es das Disable noch nicht gab. Korrigiere ich bei Gelegenheit - mach vielleicht in Issue in Github, dann vergesse ich es nicht.

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

              @pfried Hi Paul,
              dann ist alles klar. Ohne "usePreValue" wird funktiniert der Consistency Check nicht, da er ja keinen Wert als Vergleich hat - momentan speichert er den Vorgängerwert nur, wenn "usePreValue" auch gesetzt ist und nur dann kann auch ein Vergleich auf Maximale Veränderung bzw. negative Werte gemacht werden.
              Müsste eigentlich nicht unbedingt sein. Aber ich bin noch nicht auf die Idee gekommen, dass jemand den ConsistencyCheck ohne usePreValue macht. Macht auch nicht in jeder Situation Sinn, denn wenn du das "N" bei Ziffernswechsel ersetzt, kann auch kein Konsistenzcheck gemacht werden.
              Müsste mal überlegen, wie es am sinnvollsten ist. Was wäre dein Vorschlag? Vielleicht kannst du einen Issue in Github machen, dann bleibt es im Ideenspeicher.
              Beste Grüße,
              jomjol

              sissiwup pfried 2 Replies Last reply Reply Quote 0
              • sissiwup
                sissiwup @jomjol last edited by

                @jomjol
                Hallo,

                ich habe noch ein Problem festgestellt:

                Durch das Restarten des Docker-Containers ist der preValue weg.
                D.h. wenn @pfried alle 2h seinen Container neu startet und er in dieser Zeit ein NaN hat, nach dem Start der Wert nicht mehr korrigiert wird.

                Könnte das in eine Datei ins config-Verzeichnis geschrieben werden?

                sissiwup 1 Reply Last reply Reply Quote 0
                • sissiwup
                  sissiwup @sissiwup last edited by sissiwup

                  @sissiwup
                  Hallo,

                  für alle die den docker häufiger restarten habe ich das Skript angepaßt.
                  Der letzte Wert wird als preValue gesetzt.
                  Gleichzeitig habe ich noch angepasst, dass nicht nur 3-stellige Wasserzähler funktionieren.

                  createState('javascript.0.vWasserzaehler',"");
                   
                  schedule('*/10 * * * *', function () {
                  
                  var url = "http://192.168.1.13:3000/setPreValue?value="+getState('javascript.0.vWasserzaehler').val;
                  var req = require('request');
                  req(url, function(error, response, body) {
                      if (body){
                          log("Set OK:"+ body,"info");
                      }
                      else
                      {
                          log("Set fehlerhaft:" +url+"->"+ body,"warn");
                      }
                  })
                  
                  
                  var url = "http://192.168.1.13:3000/wasserzaehler.html?usePreValue";
                  var req = require('request');
                  req(url, function(error, response, body) {
                      if (body){
                          var count=String(body.match(/^[0-9.N]+/));
                          log("Body OK:"+body+"->" + count,"info");
                          setState("javascript.0.vWasserzaehler",count);
                      }
                      else
                      {
                          log("Body fehlerhaft:" +url+"->"+ body,"warn");
                      }
                  })
                  });
                  
                  J pfried 2 Replies Last reply Reply Quote 1
                  • J
                    jomjol @sissiwup last edited by

                    @sissiwup Colle Idee mit dem automatischen Setzen von preValue. Den Wert könnte man auch intern speichern. Frage ist dann nur, was mache ich, wenn der Container länger nicht lief und der Wert schon "sehr alt" ist. Man könnte noch ein Verfallsdatum hinzufügen - überlege ich mir mal.

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

                      @jomjol Hi Jomjol, ich bin nicht auf die Idee gekommen, dass man den usePreValue Parameter braucht, da auch im Code unter dem checkConsistency ein PreValue nicht vorkommt:

                      2ac1d518-097a-4659-a4bd-8f1f4d59ed77-image.png

                      Werde einen Issue in Github aufmachen. Ich denke aber, dass der Vorschlag von @sissiwup ausreicht.....

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

                        @sissiwup Bitte um Nachsicht ich bin Anfänger: Ich habe statt dem Parser im IOBroker nun unter javascript Deinen Code reinkopiert, aber es stellt das Ding bei var req = require('request'); auf: cannot find name 'require'

                        342d3ca2-b9a3-4e32-8d59-669cfc73124c-image.png

                        Was mache ich falsch?

                        Rababersaft sissiwup 2 Replies Last reply Reply Quote 0
                        • Rababersaft
                          Rababersaft @pfried last edited by Rababersaft

                          @pfried hi,
                          die IP von Zeile 5 stimmt erstmal nicht mit Zeile 18 überein. Xxx.xxx.x.130 & xxx.xxx.x.13 ...
                          So als Schnellübersicht... 😉

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

                            @Rababersaft Habe ich nun ausgebessert, danke für den Hinweis!
                            Fehlermeldung im Log:

                            df1e8efd-fd60-49c5-8f9b-ee5962bd50b1-image.png

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

                              @pfried sagte in Wasserzähler - Selfmade:

                              @sissiwup Bitte um Nachsicht ich bin Anfänger: Ich habe statt dem Parser im IOBroker nun unter javascript Deinen Code reinkopiert, aber es stellt das Ding bei var req = require('request'); auf: cannot find name 'require'

                              342d3ca2-b9a3-4e32-8d59-669cfc73124c-image.png

                              Was mache ich falsch?

                              Hallo,

                              request ist schon vordefiniert. Muss nicht mehr eingebunden werden.
                              Und zur Fehlermeldung siehe: Forum zu Fehler

                              createState('javascript.0.vWasserzaehler',"");
                               
                              schedule('*/10 * * * *', function () {
                              
                              var url = "http://192.168.1.13:3000/setPreValue?value="+getState('javascript.0.vWasserzaehler').val;
                              
                              request(url, function(error, response, body) {
                                  if (body){
                                      log("Set OK:"+ body,"info");
                                  }
                                  else
                                  {
                                      log("Set fehlerhaft:" +url+"->"+ body,"warn");
                                  }
                              })
                              
                              
                              var url = "http://192.168.1.13:3000/wasserzaehler.html?usePreValue";
                              
                              request(url, function(error, response, body) {
                                  if (body){
                                      var count=String(body.match(/^[0-9.N]+/));
                                      log("Body OK:"+body+"->" + count,"info");
                                      setState("javascript.0.vWasserzaehler",count);
                                  }
                                  else
                                  {
                                      log("Body fehlerhaft:" +url+"->"+ body,"warn");
                                  }
                              })
                              });
                              
                              1 Reply Last reply Reply Quote 0
                              • sissiwup
                                sissiwup @pfried last edited by

                                @pfried
                                Was steht in javascript.0.vWasserzaehler ?
                                Schreib da mal deinen letzten Wert rein

                                123.34567

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

                                  @jomjol sagte in Wasserzähler - Selfmade:

                                  @sissiwup Colle Idee mit dem automatischen Setzen von preValue. Den Wert könnte man auch intern speichern. Frage ist dann nur, was mache ich, wenn der Container länger nicht lief und der Wert schon "sehr alt" ist. Man könnte noch ein Verfallsdatum hinzufügen - überlege ich mir mal.

                                  Ja, ich mußte bei mir die 0.1 auch schon erhöhen, da ich die Wasseruhr nur alle 10 Minuten auslese. Nutze jetzt 0.5 (config.ini)

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

                                    @sissiwup @pfried
                                    Ich habe gerade die rolling erweitert, um das Speichern und Laden des preValue-Wertes in eine "prevalue.ini". Über zwei Parameter im Bereich ConsinstencyCheck kann man ...

                                    1. Das Laden ein/ausschalten: ReadPreValueFromFileAtStartup=True
                                    2. Eine maximale Zeit seit dem letzten Speichern und dem Laden definieren, um zu alte Werte beim Laden zu verwerfen: ReadPreValueFromFileMaxAge=30
                                      Einheit hier ist Minuten - sprich wenn der gespeicherte Wert älter als 30 Minuten vor dem Neustart ist, wird er nicht mehr geladen.

                                    Der Docker-Build für die normale Rolling und Raspi-Rolling läuft gerade auf Docker-Hub und sollte bald verfügbar sein. Macht euch vielleicht vorher ein Backup eurer alten Rolling, da ich für Debugging und Fehlersuche die Tage nicht so viel Zeit habe. Bei mir läuft es, aber man weiß ja nie :-).

                                    Gruß, jomjol

                                    1 Reply Last reply Reply Quote 1
                                    • pfried
                                      pfried @sissiwup last edited by

                                      @sissiwup Danke, jetzt geht es! 😊

                                      1 Reply Last reply Reply Quote 0
                                      • Marcel saß
                                        Marcel saß last edited by

                                        Druckt jemand die Halterung für den ESP32 in schwarz gegen Bezahlung?

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

                                          Update der latest (amd64) und raspi (armv7) Version auf V5.3.0 (aktuelle Rollings). Bei sind in den letzten Tagen keine Fehler aufgetreten oder gemeldet worden und ich beginne eine größe Implementierung für die Config.ini - daher das Update.
                                          Gruß,
                                          jomjol

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

                                            Hi jomjol, bei mir geht die neue Version wieder einmal super! Danke! Sag hast Du eine Lösung für das Anlaufen des Wasserzählers, ich habe schon einige Dinge ausprobiert, aber das Problem kommt immer wieder......

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            578
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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