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. ioBroker Allgemein
  4. Script Berechnung Wasserverbrauch

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    472

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Script Berechnung Wasserverbrauch

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
12 Beiträge 5 Kommentatoren 1.1k Aufrufe 3 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.
  • B benziman

    Hallo zusammen,

    Ich habe zum Ablesen meines Wasserzählers eine ESP-32 Cam im Einsatz, welche bereits Daten an iobroker sendet via mqtt, diese werden dann in iobroker geloggt. Ich möchte gerne eine Monats und Jahresauswertung mit Grafana machen und bin im Netz auf ein super Script gestoßen (für Stromzähler) welches ich nur minimal angepasst habe. Mein Problem ist jetzt, dass der Wert der ausgegeben wird für Stunde, Tag, Woche, Monat nicht richtig formatiert ist. Leider verstehe ich das Script nicht gut genug um diese Änderung selber zu machen.

    189f910c-6797-44fc-a6ad-b943c0b5126d-grafik.png
    Leider habe ich das Resultat, dass bei einem altem Zählerstand von 512.923 und neuem Zählerstand 513.201 als Ergebnis 278 m3 steht. Das sind aber nur 2,78 m3!
    Ebenso müsste bei Hour statt 4m3 nur 0,04m3 (da 40L) stehen, das gleiche dann für Month und Week.

    Anbei das Script:

    var cronH = "0 * * * *";
    var cronD = "59 23 * * *";
    var cronW = "0 0 * * 1";
    var cronM = "0 0 1 * *";
    var idHAGTotH = "0_userdata.0.Wasserzähler.tmp.Total-h";
    var idHAGTotD = "0_userdata.0.Wasserzähler.tmp.Total-d";
    var idHAGTotW = "0_userdata.0.Wasserzähler.tmp.Total-w";
    var idHAGTotM = "0_userdata.0.Wasserzähler.tmp.Total-m";
    var idHAGTotal = "mqtt.0.wasserzaehler.main.value"; /Wasserverbrauch insgesammt/
    var idHAGZielH = "0_userdata.0.Wasserzähler.Hour";
    var idHAGZielD = "0_userdata.0.Wasserzähler.Day";
    var idHAGZielW = "0_userdata.0.Wasserzähler.Week";
    var idHAGZielM = "0_userdata.0.Wasserzähler.Month";
    var debug = false;
    var DPArray = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM];
    var DPUnit = "m3";
    DPArray.forEach(function(wert, index, array) {
    var DPType = wert.split(".");
    var DPDescr = "Water usage of " + (DPType[DPType.length - 1]);

    if(index > 3) DPUnit = "m3";
    createState(wert, 0, {
    name: DPDescr,
    desc: DPDescr,
    type: 'number',
    unit: DPUnit,
    role: 'value'
    });
    });
    function haupt (VorId, ZielId) {
    var nVorwert = getState(VorId).val;
    var nAktuell = getState(idHAGTotal).val;
    var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
    setState(ZielId, nDiff, true);
    if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
    var shandler = on ({id: ZielId, change: 'any'}, function(data) {
    setState(VorId, (nAktuell*10)/10, true);
    unsubscribe(shandler);
    });
    }
    // regelmässige Wiederholungen
    // -----------------------------------------------------------------------------
    schedule(cronH, function () {
    haupt(idHAGTotH, idHAGZielH);
    });
    schedule(cronD, function () {
    haupt(idHAGTotD, idHAGZielD);
    });
    schedule(cronW, function () {
    haupt(idHAGTotW, idHAGZielW);
    });
    schedule(cronM, function () {
    haupt(idHAGTotM, idHAGZielM);
    });

    Kann mir bitte jemand helfen? (Ich vermute das in dem Teil ab function haupt (VorId, ZielId) { etwas angepasst werden muss).
    Danke!

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #2

    @benziman sagte: "mqtt.0.wasserzaehler.main.value"

    Dieser Datenpunkt enthält den Gesamt-Zählerstand im m³? Dann ändere

    var nDiff = nAktuell - nVorwert;
    

    Ändere besser die Funktion:

    function haupt (VorId, ZielId) {
       var nVorwert = getState(VorId).val;
       var nAktuell = getState(idHAGTotal).val;
       var nDiff = nAktuell - nVorwert;
       setState(ZielId, nDiff, true);
       if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
       setState(VorId, nAktuell, true);
    }
    

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    B 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @benziman sagte: "mqtt.0.wasserzaehler.main.value"

      Dieser Datenpunkt enthält den Gesamt-Zählerstand im m³? Dann ändere

      var nDiff = nAktuell - nVorwert;
      

      Ändere besser die Funktion:

      function haupt (VorId, ZielId) {
         var nVorwert = getState(VorId).val;
         var nAktuell = getState(idHAGTotal).val;
         var nDiff = nAktuell - nVorwert;
         setState(ZielId, nDiff, true);
         if(debug) log("Aus: " + nAktuell +" - "+ nVorwert + " = " + nDiff);
         setState(VorId, nAktuell, true);
      }
      
      B Offline
      B Offline
      benziman
      schrieb am zuletzt editiert von benziman
      #3

      @paul53

      danke für die schnelle Rückmeldung!

      var nDiff = nAktuell - nVorwert; enthält die Differenz je Stunde die dann übernommen wird je nach Cronjob wenn ich das richtig verstanden habe.

      Du hast zwei Zeilen entfernt, soll das so sein?

      var shandler = on ({id: ZielId, change: 'any'}, function(data) {
      unsubscribe(shandler);
      

      und diese beiden Zeilen hast du geändert:

      var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
      geändert in var nDiff = nAktuell - nVorwert;

      setState(VorId, (nAktuell*10)/10, true);
      geändert in setState(VorId, nAktuell, true);

      korrekt?

      MichMeinM 1 Antwort Letzte Antwort
      0
      • B benziman

        @paul53

        danke für die schnelle Rückmeldung!

        var nDiff = nAktuell - nVorwert; enthält die Differenz je Stunde die dann übernommen wird je nach Cronjob wenn ich das richtig verstanden habe.

        Du hast zwei Zeilen entfernt, soll das so sein?

        var shandler = on ({id: ZielId, change: 'any'}, function(data) {
        unsubscribe(shandler);
        

        und diese beiden Zeilen hast du geändert:

        var nDiff = ((nAktuell * 10) - (nVorwert * 10)) * 100;
        geändert in var nDiff = nAktuell - nVorwert;

        setState(VorId, (nAktuell*10)/10, true);
        geändert in setState(VorId, nAktuell, true);

        korrekt?

        MichMeinM Online
        MichMeinM Online
        MichMein
        schrieb am zuletzt editiert von
        #4

        @benziman du könntest das Ganze auch mit dem SourceAnalytix Adapter loggen und hättest dann eine sehr umfangreiche Auswertung, wenn gewünscht dann auch mit ensprechender Kostenaufstellung.

        Gruß Michael
        Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

        B 1 Antwort Letzte Antwort
        0
        • MichMeinM MichMein

          @benziman du könntest das Ganze auch mit dem SourceAnalytix Adapter loggen und hättest dann eine sehr umfangreiche Auswertung, wenn gewünscht dann auch mit ensprechender Kostenaufstellung.

          B Offline
          B Offline
          benziman
          schrieb am zuletzt editiert von
          #5

          @michmein
          Klasse Tipp, hab mir eben mal ein Video dazu angesehen das schaue ich mir mal an. Adapter wird in iobroker nicht angezeigt, dann direkt über "Katze" (Source URL) installieren?

          MichMeinM Thomas BraunT 2 Antworten Letzte Antwort
          0
          • B benziman

            @michmein
            Klasse Tipp, hab mir eben mal ein Video dazu angesehen das schaue ich mir mal an. Adapter wird in iobroker nicht angezeigt, dann direkt über "Katze" (Source URL) installieren?

            MichMeinM Online
            MichMeinM Online
            MichMein
            schrieb am zuletzt editiert von
            #6

            @benziman sehr gerne.
            Ja über die Katze,

            460f32e3-8d33-4546-9a33-f8399b2735a6-grafik.png

            oder du änderst vorübergehend den Verwahrungsort auf Beta.

            Gruß Michael
            Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

            1 Antwort Letzte Antwort
            0
            • B benziman

              @michmein
              Klasse Tipp, hab mir eben mal ein Video dazu angesehen das schaue ich mir mal an. Adapter wird in iobroker nicht angezeigt, dann direkt über "Katze" (Source URL) installieren?

              Thomas BraunT Online
              Thomas BraunT Online
              Thomas Braun
              Most Active
              schrieb am zuletzt editiert von
              #7

              @benziman sagte in Script Berechnung Wasserverbrauch:

              dann direkt über "Katze" (Source URL) installieren?

              Nein, aus dem Beta-Repository.

              Linux-Werkzeugkasten:
              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
              NodeJS Fixer Skript:
              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

              B 1 Antwort Letzte Antwort
              0
              • Thomas BraunT Thomas Braun

                @benziman sagte in Script Berechnung Wasserverbrauch:

                dann direkt über "Katze" (Source URL) installieren?

                Nein, aus dem Beta-Repository.

                B Offline
                B Offline
                benziman
                schrieb am zuletzt editiert von
                #8

                @thomas-braun

                merkwürdig, kann den nicht mal per URL installieren wenn beta nicht aktiv... Installation läuft zwar durch aber Adapter wird nicht angezeigt, merkwürdig.

                Thomas BraunT MichMeinM HomoranH 3 Antworten Letzte Antwort
                0
                • B benziman

                  @thomas-braun

                  merkwürdig, kann den nicht mal per URL installieren wenn beta nicht aktiv... Installation läuft zwar durch aber Adapter wird nicht angezeigt, merkwürdig.

                  Thomas BraunT Online
                  Thomas BraunT Online
                  Thomas Braun
                  Most Active
                  schrieb am zuletzt editiert von
                  #9

                  @benziman

                  Weil du es falsch / 'über die räudige Katze' machst.

                  Linux-Werkzeugkasten:
                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                  NodeJS Fixer Skript:
                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                  1 Antwort Letzte Antwort
                  0
                  • B benziman

                    @thomas-braun

                    merkwürdig, kann den nicht mal per URL installieren wenn beta nicht aktiv... Installation läuft zwar durch aber Adapter wird nicht angezeigt, merkwürdig.

                    MichMeinM Online
                    MichMeinM Online
                    MichMein
                    schrieb am zuletzt editiert von MichMein
                    #10

                    @benziman vermutlich hast du nur den Adapter dadurch installiert und keine Instanz. Ist er jetzt unter deinen Adaptern zu sehen? Wenn ja,dann müsstest du jetzt eine Instanz hinzufügen können.

                    a9bdbc5c-caf6-439a-b529-5002fb714080-grafik.png
                    a886c8a4-bd6b-4912-8ffc-ac71c9be4559-grafik.png

                    Gruß Michael
                    Sofern Beiträge hilfreich für Dich sind, nutze das Voting unten rechts.

                    1 Antwort Letzte Antwort
                    0
                    • B benziman

                      @thomas-braun

                      merkwürdig, kann den nicht mal per URL installieren wenn beta nicht aktiv... Installation läuft zwar durch aber Adapter wird nicht angezeigt, merkwürdig.

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #11

                      @benziman sagte in Script Berechnung Wasserverbrauch:

                      Installation läuft zwar durch aber Adapter wird nicht angezeigt, merkwürdig.

                      mngels Beweisen hab ich die Glaskugel befragt
                      Adapter wahrscheinlich wohl, aber keine Instanz.

                      Warum steht in der Doku

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      Thomas BraunT 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @benziman sagte in Script Berechnung Wasserverbrauch:

                        Installation läuft zwar durch aber Adapter wird nicht angezeigt, merkwürdig.

                        mngels Beweisen hab ich die Glaskugel befragt
                        Adapter wahrscheinlich wohl, aber keine Instanz.

                        Warum steht in der Doku

                        Thomas BraunT Online
                        Thomas BraunT Online
                        Thomas Braun
                        Most Active
                        schrieb am zuletzt editiert von Thomas Braun
                        #12

                        @homoran

                        Das kann ja gar nicht sein. Schließlich weiß er doch zu 100% was er da tut.
                        Steht ja auch bei der 'Installation über die Katze' immer dabei, das man das weiß.

                        Warnung!

                        Installieren Sie keine Adapter von GitHub, es sei denn, Sie werden von einem Entwickler dazu aufgefordert oder Sie sind sich zu 100% sicher, was Sie tun! Adapter auf GitHub funktionieren möglicherweise nicht wie gewünscht (sie befinden sich noch in der Entwicklung). Installieren Sie sie nur, wenn Sie an einem Test teilnehmen! Bitte warten Sie auf eine offizielle Veröffentlichung!

                        Bitte beachten: Adapterabhängigkeiten werden bei Verwendung dieser Installationsmethode nicht überprüft. Bitte überprüfen Sie sie selbst. Bei Bedarf müssen Sie nach der Installation auch manuell eine Instanz erstellen.

                        Linux-Werkzeugkasten:
                        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                        NodeJS Fixer Skript:
                        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

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


                        Support us

                        ioBroker
                        Community Adapters
                        Donate
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        768

                        Online

                        32.5k

                        Benutzer

                        81.8k

                        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