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. Skripten / Logik
  4. Momentanverbrauch auf 0 setzen nach 1 min

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    943

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Momentanverbrauch auf 0 setzen nach 1 min

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 5 Kommentatoren 858 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.
  • J Offline
    J Offline
    jschmied
    schrieb am zuletzt editiert von
    #1

    Ich habe einen Meßwert "Gasverbrauch in m3". Davon möchte ich den Momentanverbrauch m3/min berechnen, das klappt auch:

    const idGasMenge = 'esphome.0.C8C9A35E048A.Sensor.3240261304.state';
    const idGasVerbrauch = '0_userdata.0.gas_durchfluss';
    
    on(idGasMenge, async function(dp) { 
        var verbrauch = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // m3/min
        setState(idGasVerbrauch, verbrauch, true);
    });
    

    Das Diagram geht aber nicht auf 0, wenn die Therme steht (grüne Kurve):

    33385726-ea02-44bc-993c-225f2f655daf-grafik.png

    wie kann ich einen 0-Wert schreiben, wenn der Verbrauch in m3 sich z.B. eine Minute nicht ändert?

    paul53P HomoranH 2 Antworten Letzte Antwort
    0
    • J jschmied

      Ich habe einen Meßwert "Gasverbrauch in m3". Davon möchte ich den Momentanverbrauch m3/min berechnen, das klappt auch:

      const idGasMenge = 'esphome.0.C8C9A35E048A.Sensor.3240261304.state';
      const idGasVerbrauch = '0_userdata.0.gas_durchfluss';
      
      on(idGasMenge, async function(dp) { 
          var verbrauch = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // m3/min
          setState(idGasVerbrauch, verbrauch, true);
      });
      

      Das Diagram geht aber nicht auf 0, wenn die Therme steht (grüne Kurve):

      33385726-ea02-44bc-993c-225f2f655daf-grafik.png

      wie kann ich einen 0-Wert schreiben, wenn der Verbrauch in m3 sich z.B. eine Minute nicht ändert?

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

      @jschmied sagte: wie kann ich einen 0-Wert schreiben, wenn der Verbrauch in m3 sich z.B. eine Minute nicht ändert?

      const idGasMenge = 'esphome.0.C8C9A35E048A.Sensor.3240261304.state';
      const idGasVerbrauch = '0_userdata.0.gas_durchfluss';
      
      var timer = null;
      
      on(idGasMenge, async function(dp) { 
          var verbrauch = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // m3/min
          setState(idGasVerbrauch, verbrauch, true);
          clearTimeout(timer);
          timer = setTimeout(function() {
              setState(idGasVerbrauch, 0, true);
          }, 120000); // 2 Minuten
      });
      

      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

      1 Antwort Letzte Antwort
      0
      • J jschmied

        Ich habe einen Meßwert "Gasverbrauch in m3". Davon möchte ich den Momentanverbrauch m3/min berechnen, das klappt auch:

        const idGasMenge = 'esphome.0.C8C9A35E048A.Sensor.3240261304.state';
        const idGasVerbrauch = '0_userdata.0.gas_durchfluss';
        
        on(idGasMenge, async function(dp) { 
            var verbrauch = 60000 * (dp.state.val - dp.oldState.val) / (dp.state.lc - dp.oldState.lc);  // m3/min
            setState(idGasVerbrauch, verbrauch, true);
        });
        

        Das Diagram geht aber nicht auf 0, wenn die Therme steht (grüne Kurve):

        33385726-ea02-44bc-993c-225f2f655daf-grafik.png

        wie kann ich einen 0-Wert schreiben, wenn der Verbrauch in m3 sich z.B. eine Minute nicht ändert?

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

        @jschmied sagte in Momentanverbrauch auf 0 setzen nach 1 min:

        wenn der Verbrauch in m3 sich z.B. eine Minute nicht ändert?

        wie oft wird denn der Zählerstand aktualisiert oder (unter Verbrauch) geändert.

        dann entweder auf Aktualisierung triggern, oder bei Änderung ein timeout das länger als das übliche Intervall ist, erst stoppen, dann starten und bei Ausführung des Timeouts eine 0 schreiben

        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 -

        J 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @jschmied sagte in Momentanverbrauch auf 0 setzen nach 1 min:

          wenn der Verbrauch in m3 sich z.B. eine Minute nicht ändert?

          wie oft wird denn der Zählerstand aktualisiert oder (unter Verbrauch) geändert.

          dann entweder auf Aktualisierung triggern, oder bei Änderung ein timeout das länger als das übliche Intervall ist, erst stoppen, dann starten und bei Ausführung des Timeouts eine 0 schreiben

          J Offline
          J Offline
          jschmied
          schrieb am zuletzt editiert von
          #4

          @homoran wenn die therme läuft, gibts pro 0,01 m3 ein Impuls, also bei 100% Leistung alle 25 Sekunden. Sie kann bis auf 30% runter glaub ich. Ich starte mal mit 2 Minuten Timer.

          J 1 Antwort Letzte Antwort
          0
          • J jschmied

            @homoran wenn die therme läuft, gibts pro 0,01 m3 ein Impuls, also bei 100% Leistung alle 25 Sekunden. Sie kann bis auf 30% runter glaub ich. Ich starte mal mit 2 Minuten Timer.

            J Offline
            J Offline
            jschmied
            schrieb am zuletzt editiert von
            #5

            @jschmied 69a98679-2e1d-4d7a-8206-00bb8df4c36b-grafik.png

            Der Wert in der Betriebspause muss auf alle Fälle auf 0...

            CodierknechtC paul53P 2 Antworten Letzte Antwort
            0
            • J jschmied

              @jschmied 69a98679-2e1d-4d7a-8206-00bb8df4c36b-grafik.png

              Der Wert in der Betriebspause muss auf alle Fälle auf 0...

              CodierknechtC Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              @jschmied
              Naja, falsch ist das was ich sehe im Zusammenhang mit "Verbrauch" ja nicht. Da wird halt der Gesamtverbrauch aggregiert.

              Was passiert z.B. wenn Du ein Vollbad einlässt und die Therme 5 Minuten lang Warmwasser produziert?
              Oder wenn allgemein in einem Zeitraum x die Therme konstant über 0% Leistung betrieben wird?
              Ich befürchte, der Timer alleine ist noch nicht der Weisheit letzter Schluss.
              Könnte vielleicht im Zusammenhang mit einer Änderung auf 0 funktionieren: Wenn eine gewisse Zeit x kein Verbrauch ermittelt wurde, dann den Verbrauchszähler auf 0 zurücksetzen.
              Also: Auf Änderung triggern. Wenn Wert > 0 und (Zeitstempel - vorheriger Zeitstempel) > x ==> 0 schreiben.

              Aber warum eigentlich nicht einfach bei Last = 0 die 0 in den DP schreiben?

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              J 1 Antwort Letzte Antwort
              0
              • CodierknechtC Codierknecht

                @jschmied
                Naja, falsch ist das was ich sehe im Zusammenhang mit "Verbrauch" ja nicht. Da wird halt der Gesamtverbrauch aggregiert.

                Was passiert z.B. wenn Du ein Vollbad einlässt und die Therme 5 Minuten lang Warmwasser produziert?
                Oder wenn allgemein in einem Zeitraum x die Therme konstant über 0% Leistung betrieben wird?
                Ich befürchte, der Timer alleine ist noch nicht der Weisheit letzter Schluss.
                Könnte vielleicht im Zusammenhang mit einer Änderung auf 0 funktionieren: Wenn eine gewisse Zeit x kein Verbrauch ermittelt wurde, dann den Verbrauchszähler auf 0 zurücksetzen.
                Also: Auf Änderung triggern. Wenn Wert > 0 und (Zeitstempel - vorheriger Zeitstempel) > x ==> 0 schreiben.

                Aber warum eigentlich nicht einfach bei Last = 0 die 0 in den DP schreiben?

                J Offline
                J Offline
                jschmied
                schrieb am zuletzt editiert von jschmied
                #7

                @codierknecht Naja, eigentlich sind das vom Gas-Zähler ja Impulse. Der Verbrauch in m3 ist schon ein Counter, der pro Impuls 0.01 addiert.

                Wahrscheinlich sollte man besser diesen Zähler alle Minute per Timer auslesen und die Differenz zum Vorwert bilden.

                CodierknechtC S 2 Antworten Letzte Antwort
                0
                • J jschmied

                  @codierknecht Naja, eigentlich sind das vom Gas-Zähler ja Impulse. Der Verbrauch in m3 ist schon ein Counter, der pro Impuls 0.01 addiert.

                  Wahrscheinlich sollte man besser diesen Zähler alle Minute per Timer auslesen und die Differenz zum Vorwert bilden.

                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @jschmied
                  Ich zähle ebenfalls am Gaszähler die Impulse.
                  Mich interessiert allerdings nur der Tagesverbrauch.
                  Bei mir ist ein Impuls = 0,1 m³. Die addiere ich in einem DP für den Tagesverbrauch und in einem für den Gesamtzählerstand.
                  Nachts schreibe ich den aufgelaufenen Tagesverbrauch in einen dritten DP, der mit dem SQL-Adapter historisiert wird und setze den Tagesverbrauch wieder auf 0.
                  Funktioniert top.
                  5b8fd2f4-d893-43b3-b109-75a64a06a131-grafik.png

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  1 Antwort Letzte Antwort
                  0
                  • J jschmied

                    @jschmied 69a98679-2e1d-4d7a-8206-00bb8df4c36b-grafik.png

                    Der Wert in der Betriebspause muss auf alle Fälle auf 0...

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

                    @jschmied sagte: Der Wert in der Betriebspause muss auf alle Fälle auf 0...

                    Passiert das nicht mit dem 2-Minuten-Timeout? Wobei 2 Minuten wahrscheinlich zu kurz sind.

                    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

                    1 Antwort Letzte Antwort
                    0
                    • J jschmied

                      @codierknecht Naja, eigentlich sind das vom Gas-Zähler ja Impulse. Der Verbrauch in m3 ist schon ein Counter, der pro Impuls 0.01 addiert.

                      Wahrscheinlich sollte man besser diesen Zähler alle Minute per Timer auslesen und die Differenz zum Vorwert bilden.

                      S Offline
                      S Offline
                      silbaer
                      schrieb am zuletzt editiert von
                      #10

                      @jschmied Ich mache etwas ähnliches mit dem Stromverbrauch. Da wird auch der aktuelle Zählerstand genommen. Immer wenn sich der ändert, nehme ich den aktuellen Wert und ziehe den Vorigen Zählerstand ab. Dann hole ich mir den Zeitstamp der letzten Änderung des vorigen Wertes und ziehe den von dem Timestamp des aktuellen Wertes ab. Dann speichere ich den aktuellen Wert als vorigen Wert. Mit den beiden Differenzwerten habe ich den "Momentan"-Verbrauch.

                      Bei dieser Art der Berechnung hast du immer das Problem, dass du nur in die Vergangenheit schauen kannst, d.h. den Zustand "kein Verbrauch" kannst du nicht zuverlässig feststellen.

                      Ich glaube ich würde an deiner Stelle das Script für den m³ counter so ändern, das nach einer gewissen Zeit der Wert auf jeden Fall aktualisiert wird. Dann kannst du oberes Shema verwenden um den Momentanverbrauch zu errechnen. Schlägt der Timer zu und der Wert hat sich nicht geändert ist die Differenz 0 und der Momentanverbrauch dann auch. Doof ist dann nur, das beim nächsten mal hochzählen wahrscheinlich ein zu hoher Momentanverbrauch angezeigt wird. Da musst du wahrscheinlich ein bisschen mit den Zeiten spielen.

                      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

                      637

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      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