Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Momentanverbrauch auf 0 setzen nach 1 min

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    774

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

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

Momentanverbrauch auf 0 setzen nach 1 min

Scheduled Pinned Locked Moved Skripten / Logik
10 Posts 5 Posters 929 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    jschmied
    wrote on last edited by
    #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 Replies Last reply
    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
      wrote on last edited by 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 Reply Last reply
      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 Do not disturb
        HomoranH Do not disturb
        Homoran
        Global Moderator Administrators
        wrote on last edited by
        #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 -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        J 1 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by
            #5

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

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

            CodierknechtC paul53P 2 Replies Last reply
            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
              wrote on last edited by
              #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 Reply Last reply
              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
                wrote on last edited by 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 Replies Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by 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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      603

                      Online

                      32.8k

                      Users

                      82.7k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe