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. [Frage] geparster Gesamt-Laufzeitwert umwandeln in täglichen Laufzeitwert für Flot

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    529

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

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

[Frage] geparster Gesamt-Laufzeitwert umwandeln in täglichen Laufzeitwert für Flot

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
15 Beiträge 3 Kommentatoren 1.5k Aufrufe
  • Ä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.
  • Q Offline
    Q Offline
    Qlink
    schrieb am zuletzt editiert von
    #1

    Hi Leute,

    ich kann nun dank ruhr70 mittel des Parser Adapters endlich meine Heizung aufzeichnen und in Flot darstellen.

    Hier gibt es einige Laufzeitwerte von der Wärmepumpe, die als Gesamtwert angezeigt werden und bei jeder vollen zusätzlichen Stunde diese aufaddiert werden.

    Beispiel:

    Laufzeit Warmwasser: 909h

    Nach einer Woche: Laufzeit Warmwasser 918h

    Montag: 1h

    Dienstag: 1h

    Mittwoch: 0h

    Donnerstag: 3h

    Freitag: 1h

    Samstag: 1h

    Sonntag: 2h

    Ich hätte jetzt gerne eine Kurve mit Flot, welche mir die Stundenwerte pro Tag anzeigt und nicht die Gesamtstundenwerte immer wieder aufsummiert.

    Muss ich dazu ein Skript erstellen, oder kann man das innerhalb des SQL Adapters irgendwie lösen ?

    Falls Script, wie müsste das aussehen ? Eventuell mit Blockly ?

    Vielen Dank für eure Hilfe.

    Beste Grüße

    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #2

      Weiß jetzt nicht ob ich die Frage richtig verstehe, du möchtest den Wert pro Tag berechnen aus dem Gesamtwert und in flot wiedergeben?

      Dazu würde ich sagen Script, jeden Tag Wert abfragen und diesen Wert - Gesamtwert wert voriger Tag = Verbrauch heute.

      Wen du diesen "heute" Wert in eine Variable schreibst und aufzeichnest ist das Ergebnis jedem Tag die lauf Stunden in flot

      Oder?

      –-----------------------

      Send from mobile device

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #3

        Javascript-Lösung:

        var idLaufzeit = '...';  // Datenpunkt-ID vorhanden
        var idGestern = '...';   // Datenpunkt-ID für neuen DP mit Gesamtlaufzeit um Mitternacht
        var idTag = '...';       // Datenpunkt-ID für neuen DP mit täglicher Laufzeit
        
        function calcTag() {
            var gesamt = getState(idLaufzeit).val;
            var gestern = getState(idGestern).val;
            setState(idTag, gesamt - gestern);
            setState(idGestern, gesamt);
        }
        
        schedule('0 0 * * *', calcTag);  // täglich um Mitternacht    
        
        

        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
        • Q Offline
          Q Offline
          Qlink
          schrieb am zuletzt editiert von
          #4

          Hi paul,

          vielen Dank für das Script von dir.

          Leider bleiben die von mir angelegten Datenpunkte leer. Oder muss ich bis nach Mitternacht warten bis sich was tut ?

          Hier das adaptierte Script von dir:

          var idLaufzeit = 'parser.0.Laufzeit_Heizen';  // Datenpunkt-ID vorhanden
          var idGestern = 'parser.0.Laufzeit_Heizen.Gestern';   // Datenpunkt-ID für neuen DP mit Gesamtlaufzeit um Mitternacht
          var idTag = 'parser.0.Laufzeit_Heizen.Tag';       // Datenpunkt-ID für neuen DP mit täglicher Laufzeit
          
          function calcTag() {
              var gesamt = getState(idLaufzeit).val;
              var gestern = getState(idGestern).val;
              setState(idTag, gesamt - gestern);
              setState(idGestern, gesamt);
          }
          
          schedule('0 0 * * *', calcTag);  // täglich um Mitternacht  
          

          und hier die angelegten DPs:

          415_laufzeit.png

          Oder mache ich sonst was falsch ?

          Beste Grüße

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @Qlink:

            Oder muss ich bis nach Mitternacht warten bis sich was tut ? `
            Ja. Du solltest erst einmal eine Uhrzeit in Kürze (z.B. '55 22 * * *') eingeben, bis 22:55 Uhr warten und anschließend zurück ändern.
            @Qlink:

            Oder mache ich sonst was falsch ? `
            Die Datenpunkte müssen vom Typ 'Zahl' sein (nicht 'Zeichenkette').

            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
            • Q Offline
              Q Offline
              Qlink
              schrieb am zuletzt editiert von
              #6

              Hi paul,

              heute morgen steht folgendes in den DPs:
              415_laufzeit2.png

              Es wird also bei allen DPs derselbe Wert wie die Gesamtlaufzeit angezeigt.

              Stimmt bei der Berechnung etwas nicht, oder muss ich noch einen Tag warten, weil es ja den Wert für gestern heute noch nicht gibt sondern erst morgen…? (hab ich das jetzt richtig gesagt ? :mrgreen:)

              und wieso sind die beiden Werte rot ? Was hat das zu bedeuten ?

              edit: was ich ebenfalls gerade noch gemerkt habe:

              scheinbar funktioniert der parser adapter nicht mehr seit ich die beiden DPs angelegt habe:

              es kommt folgende FM im Log:

              host.SERVER	2017-05-23 07:38:25.987	info	instance system.adapter.parser.0 started with pid 18472
              host.SERVER	2017-05-23 07:37:55.956	info	Restart adapter system.adapter.parser.0 because enabled
              host.SERVER	2017-05-23 07:37:55.956	error	instance system.adapter.parser.0 terminated with code 6 (uncaught exception)
              parser.0	2017-05-23 07:37:54.987	error	TypeError: Cannot read property 'match' of undefined at readLink (C:\Program Files\ioBroker\node_modules\iobroker.parser\main.js:224:13) at poll (C:\Program Files\ioBroker\node_modules\iobroke
              parser.0	2017-05-23 07:37:54.987	error	uncaught exception: Cannot read property 'match' of undefined
              parser.0	2017-05-23 07:37:53.706	info	starting. Version 0.2.1 in C:/Program Files/ioBroker/node_modules/iobroker.parser, node: v4.5.0
              host.SERVER	2017-05-23 07:37:50.566	info	instance system.adapter.parser.0 started with pid 9840
              host.SERVER	2017-05-23 07:37:19.925	info	Restart adapter system.adapter.parser.0 because enabled
              host.SERVER	2017-05-23 07:37:19.925	error	instance system.adapter.parser.0 terminated with code 6 (uncaught exception)
              parser.0	2017-05-23 07:37:18.878	error	at Manager.ondecoded (C:\Program Files\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\manager.js:332:8)
              parser.0	2017-05-23 07:37:18.878	error	at Manager.Emitter.emit (C:\Program Files\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\node_modules\component-emitter\index.js:133:20)
              parser.0	2017-05-23 07:37:18.878	error	at Manager. (C:\Program Files\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\node_modules\component-bind\index.js:21:15)
              parser.0	2017-05-23 07:37:18.878	error	at Socket.onpacket (C:\Program Files\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:236:12)
              parser.0	2017-05-23 07:37:18.878	error	at Socket.onack (C:\Program Files\ioBroker\node_modules\iobroker.js-controller\node_modules\socket.io-client\lib\socket.js:312:9)
              parser.0	2017-05-23 07:37:18.878	error	at Socket. (C:\Program Files\ioBroker\node_modules\iobroker.js-controller\lib\states\statesInMemClient.js:150:27)
              parser.0	2017-05-23 07:37:18.878	error	at C:\Program Files\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:3864:61
              parser.0	2017-05-23 07:37:18.878	error	at C:\Program Files\ioBroker\node_modules\iobroker.parser\main.js:300:21
              parser.0	2017-05-23 07:37:18.878	error	at poll (C:\Program Files\ioBroker\node_modules\iobroker.parser\main.js:270:13)
              parser.0	2017-05-23 07:37:18.878	error	at readLink (C:\Program Files\ioBroker\node_modules\iobroker.parser\main.js:224:13)
              parser.0	2017-05-23 07:37:18.878	error	TypeError: Cannot read property 'match' of undefined
              parser.0	2017-05-23 07:37:18.878	error	uncaught exception: Cannot read property 'match' of undefined
              parser.0	2017-05-23 07:37:18.191	info	starting. Version 0.2.1 in C:/Program Files/ioBroker/node_modules/iobroker.parser, node: v4.5.0
              host.SERVER	2017-05-23 07:37:16.941	info	instance system.adapter.parser.0 started with pid 8744
              host.SERVER	2017-05-23 07:36:46.925	info	Restart adapter system.adapter.parser.0 because enabled
              

              wenn ich die beiden DPs lösche, läuft der Parser Adapter wieder …

              jemand eine idee ?

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @Qlink:

                oder muss ich noch einen Tag warten, weil es ja den Wert für gestern heute noch nicht gibt sondern erst morgen…? `
                Ja. Oder Du startest die Funktion mal zwischendurch am Tag, indem Du die Funktion am Ende des Skripts aufrufst

                ...
                
                schedule('0 0 * * *', calcTag);  // täglich um Mitternacht  
                if(!getState(idGestern).val) calcTag();  // bei Script start, wenn noch kein Wert im Datenpunkt
                

                @Qlink:

                und wieso sind die beiden Werte rot ? Was hat das zu bedeuten ? `
                Das ist nur die Darstellung im Reiter "Objekte", dass state.ack = false (nicht bestätigt). Wenn es stört, müssen die setState() ergänzt werden:

                    setState(idTag, gesamt - gestern, true);
                    setState(idGestern, gesamt, true);
                
                

                @Qlink:

                …wenn ich die beiden DPs lösche, läuft der Parser Adapter wieder ... `
                Vielleicht will der Parser-Adapter Datenpunkte löschen, die nicht in seiner Konfiguration angegeben sind ? Da die Datenpunkte quasi unter einem Datenpunkt erzeugt wurden, kann es Probleme geben, die zur Fehlfunktion führen. Das sollte man auf jeden Fall vermeiden. Erzeuge die beiden zusätzlichen Datenpunkte vom Typ 'Zahl' unter javascript.0; dann gibt es keine Probleme. Namen: 'Laufzeit_Heizen.Gestern' und 'Laufzeit_Heizen.Tag'.

                var idLaufzeit = 'parser.0.Laufzeit_Heizen';  // Datenpunkt-ID vorhanden
                var idGestern = 'javascript.0.Laufzeit_Heizen.Gestern';   // Datenpunkt-ID für neuen DP mit Gesamtlaufzeit um Mitternacht
                var idTag = 'javascript.0.Laufzeit_Heizen.Tag';       // Datenpunkt-ID für neuen DP mit täglicher Laufzeit
                
                

                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
                • Q Offline
                  Q Offline
                  Qlink
                  schrieb am zuletzt editiert von
                  #8

                  Hi Paul,

                  vielen Dank für deine Hilfe.

                  Ich hab die Änderungen soweit durchgeführt.

                  Der Parser Adapter hängt sich jetzt nicht mehr auf :)

                  Es erscheint allerdings beim Aufruf des Scripts folgende Warning im Log:

                  javascript.0	2017-05-23 21:26:00.515	warn	Wrong type of javascript.0.Laufzeit_Heizen.Gestern: "string". Please fix, while deprecated and will not work in next versions.
                  javascript.0	2017-05-23 21:25:14.501	info	script.js.Umrechnung_Laufzeit_WW: registered 0 subscriptions and 1 schedule
                  javascript.0	2017-05-23 21:25:14.501	info	Start javascript script.js.Umrechnung_Laufzeit_WW
                  javascript.0	2017-05-23 21:25:14.485	info	Stop script script.js.Umrechnung_Laufzeit_WW
                  javascript.0	2017-05-23 21:23:00.580	warn	Wrong type of javascript.0.Laufzeit_Heizen.Gestern: "string". Please fix, while deprecated and will not work in next versions.
                  javascript.0	2017-05-23 21:22:43.580	info	script.js.Umrechnung_Laufzeit_WW: registered 0 subscriptions and 1 schedule
                  javascript.0	2017-05-23 21:22:43.580	warn	Wrong type of javascript.0.Laufzeit_Heizen.Gestern: "string". Please fix, while deprecated and will not work in next versions.
                  javascript.0	2017-05-23 21:22:43.533	info	Start javascript script.js.Umrechnung_Laufzeit_WW
                  javascript.0	2017-05-23 21:22:41.815	info	Stop script script.js.Umrechnung_Laufzeit_WW
                  

                  Die DPs Gestern und Tag bleiben bei 0h…

                  415_laufzeit3.png

                  1 Antwort Letzte Antwort
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    Der Wert im Datenpunkt "parser.0.Laufzeit_Heizen" ist offenbar ein String. Dann ergänze das Einlesen des Wertes um parseFloat().

                        var gesamt = parseFloat(getState(idLaufzeit).val);
                    
                    

                    Tausche bitte den Wert null bei max gegen eine vernüftige Zahl aus (1000000)

                    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
                    • Q Offline
                      Q Offline
                      Qlink
                      schrieb am zuletzt editiert von
                      #10

                      Hi Paul,

                      ich hab alles soweit angepasst.

                      Er zeigt mir jetzt beim Gestern DP denselben Wert wie beim Laufzeit_Heizen DP.

                      Beim Tag DP zeigt er mir 0h.

                      Ich nehme mal an das liegt noch daran weil der Gestern Wert noch nicht vorhanden ist…

                      Ich warte mal auf morgen, ob sichs dann einpendelt ...(wenn ich den schedule Wert auf die aktuelle Uhrzeit ändere, erscheinen ebenfalls keine anderen Werte, auch im Log erscheint kein Scriptaufruf...)

                      Vielen Dank jedenfalls nochmal für deine tolle Hilfe!

                      Beste Grüße

                      1 Antwort Letzte Antwort
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #11

                        @Qlink:

                        Er zeigt mir jetzt beim Gestern DP denselben Wert wie beim Laufzeit_Heizen DP.

                        Beim Tag DP zeigt er mir 0h. `
                        Das ist immer so, wenn die Heizung den ganzen Tag nicht gelaufen ist.

                        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
                        • Q Offline
                          Q Offline
                          Qlink
                          schrieb am zuletzt editiert von
                          #12

                          Stimmt, das macht Sinn :mrgreen:

                          Ich hätte das Ganze jetzt auf für WW gemacht:

                          var idLaufzeit = 'parser.0.Laufzeit_WW';  // Datenpunkt-ID vorhanden
                          var idGestern = 'javascript.0.Laufzeit_WW.Gestern';   // Datenpunkt-ID für neuen DP mit Gesamtlaufzeit um Mitternacht
                          var idTag = 'javascript.0.Laufzeit_WW.Tag';       // Datenpunkt-ID für neuen DP mit täglicher Laufzeit
                          
                          function calcTag() {
                              var gesamt = parseFloat(getState(idLaufzeit).val);
                              var gestern = getState(idGestern).val;
                              setState(idTag, gesamt - gestern,true);
                              setState(idGestern, gesamt,true);
                          }
                          
                          schedule('0 0 * * *', calcTag);  // täglich um Mitternacht '55 22 * * *''0 0 * * *'
                          if(!getState(idGestern).val) calcTag();  // bei Script start, wenn noch kein Wert im Datenpunkt
                          

                          Hier bleiben beide Werte bei 0h und einer davon ist wieder rot:
                          415_laufzeit5.png

                          Muss ich hier noch was ändern ?

                          1 Antwort Letzte Antwort
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #13

                            @Qlink:

                            Muss ich hier noch was ändern ? `
                            Sieht gut aus, wenn die ID des Datenpunktes "parser.0.Laufzeit_WW" stimmt.

                            Allerdings müsste der Wert für Gestern anders aussehen. Gibt es eine Fehlermeldung im Log ?

                            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
                            • Q Offline
                              Q Offline
                              Qlink
                              schrieb am zuletzt editiert von
                              #14

                              Hi Paul,

                              ich hab den kompletten iobroker host neugestartet. Danach war der Gestern Wert da und es wird auch nichts mehr rot dargestellt.

                              Es wird trotzdem nicht der richtige Gestern Wert angezeigt, sondern immer nur der Gesamt Wert.

                              In Folge dessen bleibt auch der Tag Wert immer bei 0h.

                              Hier läuft noch was nicht richtig rund …
                              415_laufzeit6.png

                              1 Antwort Letzte Antwort
                              0
                              • Q Offline
                                Q Offline
                                Qlink
                                schrieb am zuletzt editiert von
                                #15

                                Update: anscheinend hat das Script noch einen Tag gebraucht… jetzt passt alles und die Werte werden alle korrekt angezeigt :) :) :)

                                Vielen Dank nochmal für deine Hilfe Paul.

                                Eine Frage noch: Gibt es sowas ähnliches wie einen Statistik Adapter ?

                                Ich möchte gerne die einzelnen Laufzeit Werte, Stromverbrauchs Werte usw. aufsummiert vom Jahr 2017 oder vom Winter 2016(gewisse Zeitspanne) o.ä. anzeigen/abrufen können ?

                                Wie könnte ich das noch umsetzen ?

                                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
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                619

                                Online

                                32.7k

                                Benutzer

                                82.5k

                                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