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. Blockly
  5. Stromzählung stündlich

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    631

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Stromzählung stündlich

Geplant Angeheftet Gesperrt Verschoben Blockly
22 Beiträge 7 Kommentatoren 2.3k Aufrufe 6 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.
  • K klassisch

    @loni78 Bin nicht sicher, ob ich die Frage richtig verstanden habe.
    Cron

    5 * * * *
    

    sollte doch stündlich um "fünf nach" triggern.
    In einem parallelen Datenpunkt "SumOfToday" addierst Du Dir die Stundenwerte und schreibst diese Summe um 0:06 in einen neuen Datenpunkt "dailySum" und setzt die Tagessumme "SumOfToday" auf 0.

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

    @klassisch Wobei das dann leider um 0:05 schon der nächste Tag ist.
    Die sumOfToday müsste um 23:59 laufen, und damit auch alle anderen um 59 * * * *

    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 -

    K 1 Antwort Letzte Antwort
    0
    • L loni78

      Hallo zusammen,

      ich werde ab Januar meinen Strom bei Awattar beziehen. Die rechnen den Strom nach stündlich unterschiedlichen Preisen ab. Ich habe mir jetzt ein Blockly geschrieben, in dem ich stündlich den Verbrauch abfrage und in EUR umrechne. Das hat soweit funktioniert. D.h. ich habe in diesem Fall 24 Datenpunkte --> pro Stunde einer. Das habe ich so gemacht, da ich das ganze in Grafana visualisieren möchte.

      Jetzt kommt mein Problem. Ich möchte die 24 Datenpunkte summieren und in Datenpunkte schreiben, d.h. in einen Datenpunkt pro pro Tag im Monat.

      Die Stundenwerte der 24 Datenpunkte bekomme ich addiert. Wie setzte ich jetzt aber einen Trigger z.B. nach jeder vollen Stunde, der

      • alle Stundenwerte addiert und
      • der in den Datenpunkt für den 27.12 schreibt bzw. in den für den 28. usw.

      D..h ich habe ein Problem mit dem Trigger und mit dem Cron, da ich einen Cron von 1:05 bis 0:05 Uhr des Folgetags benötige. Ich hoffe nicht, dass die Antwort ist, dass ich 31. Skripte schreiben muss (=für jeden Tag ein Skript).

      Ich hoffe jemand kann mir helfen.

      Viele Grüße
      Rafael

      a200A Offline
      a200A Offline
      a200
      schrieb am zuletzt editiert von a200
      #4

      @loni78 Schau dir mal das Sourceanalytics Plugin. https://github.com/iobroker-community-adapters/ioBroker.sourceanalytix/blob/master/README.md Das könnte vllt. für dich passend sein.

      001.JPG

      IoBroker auf QNAP TS-451, Raspi und NUC

      1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @klassisch Wobei das dann leider um 0:05 schon der nächste Tag ist.
        Die sumOfToday müsste um 23:59 laufen, und damit auch alle anderen um 59 * * * *

        K Offline
        K Offline
        klassisch
        Most Active
        schrieb am zuletzt editiert von
        #5

        @Homoran sagte in Stromzählung stündlich:

        @klassisch Wobei das dann leider um 0:05 schon der nächste Tag ist.
        Die sumOfToday müsste um 23:59 laufen, und damit auch alle anderen um 59 * * * *

        Darüber habe ich nicht nachgedacht. Habe lediglich die Anforderung "1:05 bis 0:05 " papageienartig umgesetzt.

        1 Antwort Letzte Antwort
        0
        • L loni78

          Hallo zusammen,

          ich werde ab Januar meinen Strom bei Awattar beziehen. Die rechnen den Strom nach stündlich unterschiedlichen Preisen ab. Ich habe mir jetzt ein Blockly geschrieben, in dem ich stündlich den Verbrauch abfrage und in EUR umrechne. Das hat soweit funktioniert. D.h. ich habe in diesem Fall 24 Datenpunkte --> pro Stunde einer. Das habe ich so gemacht, da ich das ganze in Grafana visualisieren möchte.

          Jetzt kommt mein Problem. Ich möchte die 24 Datenpunkte summieren und in Datenpunkte schreiben, d.h. in einen Datenpunkt pro pro Tag im Monat.

          Die Stundenwerte der 24 Datenpunkte bekomme ich addiert. Wie setzte ich jetzt aber einen Trigger z.B. nach jeder vollen Stunde, der

          • alle Stundenwerte addiert und
          • der in den Datenpunkt für den 27.12 schreibt bzw. in den für den 28. usw.

          D..h ich habe ein Problem mit dem Trigger und mit dem Cron, da ich einen Cron von 1:05 bis 0:05 Uhr des Folgetags benötige. Ich hoffe nicht, dass die Antwort ist, dass ich 31. Skripte schreiben muss (=für jeden Tag ein Skript).

          Ich hoffe jemand kann mir helfen.

          Viele Grüße
          Rafael

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von Asgothian
          #6

          @loni78
          Ich würde das Blockly erweitern was Dir die Daten holt. An der Stelle kannst du die Tages-Werte direkt aufaddieren indem du

          • über die Zeit den aktuellen Tag ermittelst
          • Den erhaltenen Wert zum Datenpunkt für diesen Tag hinzu addierst

          Mal dumm gefragt - warum hast Du 24 Datenpunkte pro Tag ? Für eine Visualisierung in Grafana als Kurve sollte es doch ausreichen das Du einen Datenpunkt hast der jeweils den Wert der letzten Stunde beinhaltet ?

          Zeig doch mal dein Blockly :)

          A.

          Nachtrag: Wenn es nur darum geht die Verbräuche pro Tag in Grafana zu visualisieren dann sollte das Folgende reichen:

          • ein DP der jeweils den Verbrauch der letzten Stunde beinhaltet
          • Diesen DP per History in die Datenbank geschrieben so das der per Grafana auswertbar ist.
          • in Grafana 2 Abfragen:
            -- Kurve über die DP, Zeitrange "heute" für die Werte von heute
            -- Kurve über die DP, Zeitrange "dieser Monat", 'aggregation' "same day' für die Verbräuche pro Tag in diesem Monat.

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          HomoranH 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @loni78
            Ich würde das Blockly erweitern was Dir die Daten holt. An der Stelle kannst du die Tages-Werte direkt aufaddieren indem du

            • über die Zeit den aktuellen Tag ermittelst
            • Den erhaltenen Wert zum Datenpunkt für diesen Tag hinzu addierst

            Mal dumm gefragt - warum hast Du 24 Datenpunkte pro Tag ? Für eine Visualisierung in Grafana als Kurve sollte es doch ausreichen das Du einen Datenpunkt hast der jeweils den Wert der letzten Stunde beinhaltet ?

            Zeig doch mal dein Blockly :)

            A.

            Nachtrag: Wenn es nur darum geht die Verbräuche pro Tag in Grafana zu visualisieren dann sollte das Folgende reichen:

            • ein DP der jeweils den Verbrauch der letzten Stunde beinhaltet
            • Diesen DP per History in die Datenbank geschrieben so das der per Grafana auswertbar ist.
            • in Grafana 2 Abfragen:
              -- Kurve über die DP, Zeitrange "heute" für die Werte von heute
              -- Kurve über die DP, Zeitrange "dieser Monat", 'aggregation' "same day' für die Verbräuche pro Tag in diesem Monat.
            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #7

            @loni78
            @Asgothian sagte in Stromzählung stündlich:

            Mal dumm gefragt - warum hast Du 24 Datenpunkte pro Tag ? Für eine Visualisierung

            ich habe zwar keinen stündlich wechselnden Tarif, aber ich mache es ähnlich wie @Asgothian es schreibt.
            Einen DP der die aktuellen Werte kumuliert, und dann je einen für Tag, Monat und Jahr, ebenfalls kumuliert. Bei dir käme dann noch einer je Stunde dazu.
            Am Ende jeden Zeitabschnitts wird der Wert in die Datenpunkte der jeweils höheren "Kategorie" geschrieben sowie in weitere Datenpunkte, in denen nur der Endwert geloggt wird

            05-Strom.png
            Hier für Erzeugung, Einspeisung, Bezug und Verbrauch

            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 -

            K L 2 Antworten Letzte Antwort
            0
            • HomoranH Homoran

              @loni78
              @Asgothian sagte in Stromzählung stündlich:

              Mal dumm gefragt - warum hast Du 24 Datenpunkte pro Tag ? Für eine Visualisierung

              ich habe zwar keinen stündlich wechselnden Tarif, aber ich mache es ähnlich wie @Asgothian es schreibt.
              Einen DP der die aktuellen Werte kumuliert, und dann je einen für Tag, Monat und Jahr, ebenfalls kumuliert. Bei dir käme dann noch einer je Stunde dazu.
              Am Ende jeden Zeitabschnitts wird der Wert in die Datenpunkte der jeweils höheren "Kategorie" geschrieben sowie in weitere Datenpunkte, in denen nur der Endwert geloggt wird

              05-Strom.png
              Hier für Erzeugung, Einspeisung, Bezug und Verbrauch

              K Offline
              K Offline
              klassisch
              Most Active
              schrieb am zuletzt editiert von
              #8

              @Homoran sagte in Stromzählung stündlich:
              Monat und Jahr, ebenfalls kumuliert.

              Den Tageswert merke ich mit auch noch. Aber was ist die Motivation für Monat und Jahr und warum nicht Woche?
              Ich dachte, Verbrauch pro Tag ist noch eine griffige Größe.
              Und was sind dann die Stichtermine? Fürs Jahr die Aufforderung zum Zählermelden oder 1.1.? Und wie ermittelt man geschickt das Monatsende? Datum auf den 1. untersuchen? Ja, das könnte man im newDay Teil des Skripts erledigen.
              Will das nicht inAbrede stellen, denn es wird seinen Grund haben. Und wenn man es implementieren möchte, dann wäre jetzt die beste Zeit.

              HomoranH 1 Antwort Letzte Antwort
              0
              • K klassisch

                @Homoran sagte in Stromzählung stündlich:
                Monat und Jahr, ebenfalls kumuliert.

                Den Tageswert merke ich mit auch noch. Aber was ist die Motivation für Monat und Jahr und warum nicht Woche?
                Ich dachte, Verbrauch pro Tag ist noch eine griffige Größe.
                Und was sind dann die Stichtermine? Fürs Jahr die Aufforderung zum Zählermelden oder 1.1.? Und wie ermittelt man geschickt das Monatsende? Datum auf den 1. untersuchen? Ja, das könnte man im newDay Teil des Skripts erledigen.
                Will das nicht inAbrede stellen, denn es wird seinen Grund haben. Und wenn man es implementieren möchte, dann wäre jetzt die beste Zeit.

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

                @klassisch sagte in Stromzählung stündlich:

                Und was sind dann die Stichtermine?

                Meinst du die "Hochrechnungen"?
                da wird jeweils der aktuelle Tages- / Monats- oder Jahreswert bis zum Jahresende hochgerechnet

                @klassisch sagte in Stromzählung stündlich:

                Und wie ermittelt man geschickt das Monatsende?

                Da hat mir mal wieder @paul53 (wer sonst!!!) geholfen
                Monatsletzter.png

                Wenn man es weiß - eigentlich ganz einfach :joy:

                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 -

                K 1 Antwort Letzte Antwort
                1
                • HomoranH Homoran

                  @klassisch sagte in Stromzählung stündlich:

                  Und was sind dann die Stichtermine?

                  Meinst du die "Hochrechnungen"?
                  da wird jeweils der aktuelle Tages- / Monats- oder Jahreswert bis zum Jahresende hochgerechnet

                  @klassisch sagte in Stromzählung stündlich:

                  Und wie ermittelt man geschickt das Monatsende?

                  Da hat mir mal wieder @paul53 (wer sonst!!!) geholfen
                  Monatsletzter.png

                  Wenn man es weiß - eigentlich ganz einfach :joy:

                  K Offline
                  K Offline
                  klassisch
                  Most Active
                  schrieb am zuletzt editiert von
                  #10

                  @Homoran Danke, also den Monatstag rausholen und dann auf 1 prüfen. Da wird sich in JS was finden, ich mache ja kein Blockly.

                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • K klassisch

                    @Homoran Danke, also den Monatstag rausholen und dann auf 1 prüfen. Da wird sich in JS was finden, ich mache ja kein Blockly.

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

                    @klassisch sagte in Stromzählung stündlich:

                    also den Monatstag rausholen und dann auf 1 prüfen.

                    nicht ganz,
                    das aktuelle Datum nehmen, Anzahl msec hinzuzählen, bis der nächste Tag sein wird und das dann auf den 1. prüfen

                    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 -

                    a200A 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @klassisch sagte in Stromzählung stündlich:

                      also den Monatstag rausholen und dann auf 1 prüfen.

                      nicht ganz,
                      das aktuelle Datum nehmen, Anzahl msec hinzuzählen, bis der nächste Tag sein wird und das dann auf den 1. prüfen

                      a200A Offline
                      a200A Offline
                      a200
                      schrieb am zuletzt editiert von
                      #12

                      @Homoran @klassisch so mache ich das:

                      // NEU - Zählerstand vom Anfang der akt. Stunde wird ermittelt
                      // 
                      
                      var cronH           = "0 * * * *";
                      var cronD           = "59 23 * * *";
                      var cronW           = "0 0 * * 1";
                      var cronM           = "0 0 1 * *";
                      var cronY           = "1 0 1 1 *";
                      
                      var PathToDP        = "javascript.0.Stromzähler.Hager.";  // Pfad zum Datenpunkt
                      
                      var idHAGTotH       = PathToDP + "tmp.Total-h";
                      var idHAGTotD       = PathToDP + "tmp.Total-d";
                      var idHAGTotW       = PathToDP + "tmp.Total-w";
                      var idHAGTotM       = PathToDP + "tmp.Total-m";
                      var idHAGTotY       = PathToDP + "tmp.Total-y";
                      var idHAGTotal      = "smartmeter.0.1-0:1_8_0__255.value";
                      var idHAGZielH      = PathToDP + "Hour";
                      var idHAGZielD      = PathToDP + "Day";
                      var idHAGZielW      = PathToDP + "Week";
                      var idHAGZielM      = PathToDP + "Month";
                      var idHAGZielT      = PathToDP + "CurrentDay";
                      var idHAGZielY      = PathToDP + "Year";
                      var idHAGZielCW     = PathToDP + "CurrentWeek";
                      var idHAGZielCM     = PathToDP + "CurrentMonth";
                      var Teiler, dat, zahl;
                      var debug           = true;
                      
                      var DPArray         = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGTotY, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM, idHAGZielY, idHAGZielT, idHAGZielCW, idHAGZielCM];
                      var DPUnit          = "W";
                      
                      DPArray.forEach(function(wert, index, array) {
                          var DPType = wert.split(".");
                          var DPDescr = "Power consumption of " + (DPType[DPType.length - 1]);
                          
                          if(index > 4) DPUnit = "Wh";
                          createState(wert, 0, {
                              name: DPDescr,
                              desc: DPDescr,
                              type: 'number',
                              unit: DPUnit,
                              role: 'value'
                          });
                      });
                      
                      function haupt (VorId, ZielId, SetN) {
                          var nVorwert = getState(VorId).val;
                          var nAktuell = getState(idHAGTotal).val;
                          var nDiff = (parseFloat(nAktuell) - parseFloat(nVorwert)).toFixed(3);
                          if(debug) log("Vor: " + parseFloat(nVorwert) + " Aktuell: " +parseFloat(nAktuell) + " Differenz: " + nDiff);
                          setState(ZielId, parseFloat(nDiff), true);
                          if(SetN) {
                              var shandler = on ({id: ZielId, change: 'any'}, function(data) {
                                  setState(VorId, nAktuell, true);
                                  unsubscribe(shandler); 
                              });
                          }
                      }
                      
                      // regelmäßige Wiederholungen
                      // -----------------------------------------------------------------------------
                      
                      schedule(cronH, function () {
                          haupt(idHAGTotH, idHAGZielH, true);
                      
                          haupt(idHAGTotD, idHAGZielT, false);    // Today
                      
                          haupt(idHAGTotW, idHAGZielCW, false);  // Current Week
                      
                          haupt(idHAGTotM, idHAGZielCM, false);  // Current Month
                      });
                      
                      schedule(cronD, function () {
                          haupt(idHAGTotD, idHAGZielD, true);
                      });
                      
                      schedule(cronW, function () {
                          haupt(idHAGTotW, idHAGZielW, true);
                      });
                      
                      schedule(cronM, function () {
                          haupt(idHAGTotM, idHAGZielM, true);
                      });
                      
                      schedule(cronY, function () {
                          haupt(idHAGTotY, idHAGZielY, true);
                      });
                      
                      

                      Ich schreibe die Vorperioden-Werte in einzelne DP (das sind die tmp.Total-?)
                      Damit habe ich die DP für minütlich, stündlich, täglich, wöchentlich, monatlich, jährlich, heute, diese Woche und dieser Monat.

                      IoBroker auf QNAP TS-451, Raspi und NUC

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • a200A a200

                        @Homoran @klassisch so mache ich das:

                        // NEU - Zählerstand vom Anfang der akt. Stunde wird ermittelt
                        // 
                        
                        var cronH           = "0 * * * *";
                        var cronD           = "59 23 * * *";
                        var cronW           = "0 0 * * 1";
                        var cronM           = "0 0 1 * *";
                        var cronY           = "1 0 1 1 *";
                        
                        var PathToDP        = "javascript.0.Stromzähler.Hager.";  // Pfad zum Datenpunkt
                        
                        var idHAGTotH       = PathToDP + "tmp.Total-h";
                        var idHAGTotD       = PathToDP + "tmp.Total-d";
                        var idHAGTotW       = PathToDP + "tmp.Total-w";
                        var idHAGTotM       = PathToDP + "tmp.Total-m";
                        var idHAGTotY       = PathToDP + "tmp.Total-y";
                        var idHAGTotal      = "smartmeter.0.1-0:1_8_0__255.value";
                        var idHAGZielH      = PathToDP + "Hour";
                        var idHAGZielD      = PathToDP + "Day";
                        var idHAGZielW      = PathToDP + "Week";
                        var idHAGZielM      = PathToDP + "Month";
                        var idHAGZielT      = PathToDP + "CurrentDay";
                        var idHAGZielY      = PathToDP + "Year";
                        var idHAGZielCW     = PathToDP + "CurrentWeek";
                        var idHAGZielCM     = PathToDP + "CurrentMonth";
                        var Teiler, dat, zahl;
                        var debug           = true;
                        
                        var DPArray         = [idHAGTotH, idHAGTotD , idHAGTotW, idHAGTotM, idHAGTotY, idHAGZielH, idHAGZielD, idHAGZielW, idHAGZielM, idHAGZielY, idHAGZielT, idHAGZielCW, idHAGZielCM];
                        var DPUnit          = "W";
                        
                        DPArray.forEach(function(wert, index, array) {
                            var DPType = wert.split(".");
                            var DPDescr = "Power consumption of " + (DPType[DPType.length - 1]);
                            
                            if(index > 4) DPUnit = "Wh";
                            createState(wert, 0, {
                                name: DPDescr,
                                desc: DPDescr,
                                type: 'number',
                                unit: DPUnit,
                                role: 'value'
                            });
                        });
                        
                        function haupt (VorId, ZielId, SetN) {
                            var nVorwert = getState(VorId).val;
                            var nAktuell = getState(idHAGTotal).val;
                            var nDiff = (parseFloat(nAktuell) - parseFloat(nVorwert)).toFixed(3);
                            if(debug) log("Vor: " + parseFloat(nVorwert) + " Aktuell: " +parseFloat(nAktuell) + " Differenz: " + nDiff);
                            setState(ZielId, parseFloat(nDiff), true);
                            if(SetN) {
                                var shandler = on ({id: ZielId, change: 'any'}, function(data) {
                                    setState(VorId, nAktuell, true);
                                    unsubscribe(shandler); 
                                });
                            }
                        }
                        
                        // regelmäßige Wiederholungen
                        // -----------------------------------------------------------------------------
                        
                        schedule(cronH, function () {
                            haupt(idHAGTotH, idHAGZielH, true);
                        
                            haupt(idHAGTotD, idHAGZielT, false);    // Today
                        
                            haupt(idHAGTotW, idHAGZielCW, false);  // Current Week
                        
                            haupt(idHAGTotM, idHAGZielCM, false);  // Current Month
                        });
                        
                        schedule(cronD, function () {
                            haupt(idHAGTotD, idHAGZielD, true);
                        });
                        
                        schedule(cronW, function () {
                            haupt(idHAGTotW, idHAGZielW, true);
                        });
                        
                        schedule(cronM, function () {
                            haupt(idHAGTotM, idHAGZielM, true);
                        });
                        
                        schedule(cronY, function () {
                            haupt(idHAGTotY, idHAGZielY, true);
                        });
                        
                        

                        Ich schreibe die Vorperioden-Werte in einzelne DP (das sind die tmp.Total-?)
                        Damit habe ich die DP für minütlich, stündlich, täglich, wöchentlich, monatlich, jährlich, heute, diese Woche und dieser Monat.

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

                        @a200 sagte in Stromzählung stündlich:

                        Damit habe ich die DP für minütlich, stündlich, täglich, wöchentlich, monatlich, jährlich, heute, diese Woche und dieser Monat.

                        Ich habe mir das script nicht näher angesehen, aber der cronM mit 0 0 1 * * wird am ersten (ich nehme an des Folgemonats) geschrieben, das wird bei grafischer Darstellung dann dem nächsten Monat zugeordnet, während cronD "korrekterweise" kurz vor Mitternacht 59 23 * * * abläuft

                        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 -

                        a200A 1 Antwort Letzte Antwort
                        0
                        • HomoranH Homoran

                          @a200 sagte in Stromzählung stündlich:

                          Damit habe ich die DP für minütlich, stündlich, täglich, wöchentlich, monatlich, jährlich, heute, diese Woche und dieser Monat.

                          Ich habe mir das script nicht näher angesehen, aber der cronM mit 0 0 1 * * wird am ersten (ich nehme an des Folgemonats) geschrieben, das wird bei grafischer Darstellung dann dem nächsten Monat zugeordnet, während cronD "korrekterweise" kurz vor Mitternacht 59 23 * * * abläuft

                          a200A Offline
                          a200A Offline
                          a200
                          schrieb am zuletzt editiert von a200
                          #14

                          @Homoran sagte in Stromzählung stündlich:

                          @a200 sagte in Stromzählung stündlich:

                          Damit habe ich die DP für minütlich, stündlich, täglich, wöchentlich, monatlich, jährlich, heute, diese Woche und dieser Monat.

                          Ich habe mir das script nicht näher angesehen, aber der cronM mit 0 0 1 * * wird am ersten (ich nehme an des Folgemonats) geschrieben, das wird bei grafischer Darstellung dann dem nächsten Monat zugeordnet, während cronD "korrekterweise" kurz vor Mitternacht 59 23 * * * abläuft

                          am ersten eines Monats wird der aktueller Gesamtwert in den DP tmp.Total-m geschrieben. Am ersten des Folgemonats wird die Differenz der beider Werte als Monatsverbrauch gespeichert und danach der aktueller Gesamtwert wieder in den DP tmp.Total-m geschrieben.

                          Das gleiche mache ich stündlich, wöchentlich und jährlich. Die Werte für heute, diese Woche und dieser Monat werden nach dem Prinzip "aktueller Wert" - "Vorwert" gerechnet.

                          Ich verstehe deinen Einwand, deine Frage nicht ganz.

                          cronD könnte auch "0 0 * * *" sein, aber es gab da schon genug andere Jobs.

                          IoBroker auf QNAP TS-451, Raspi und NUC

                          HomoranH 1 Antwort Letzte Antwort
                          0
                          • a200A a200

                            @Homoran sagte in Stromzählung stündlich:

                            @a200 sagte in Stromzählung stündlich:

                            Damit habe ich die DP für minütlich, stündlich, täglich, wöchentlich, monatlich, jährlich, heute, diese Woche und dieser Monat.

                            Ich habe mir das script nicht näher angesehen, aber der cronM mit 0 0 1 * * wird am ersten (ich nehme an des Folgemonats) geschrieben, das wird bei grafischer Darstellung dann dem nächsten Monat zugeordnet, während cronD "korrekterweise" kurz vor Mitternacht 59 23 * * * abläuft

                            am ersten eines Monats wird der aktueller Gesamtwert in den DP tmp.Total-m geschrieben. Am ersten des Folgemonats wird die Differenz der beider Werte als Monatsverbrauch gespeichert und danach der aktueller Gesamtwert wieder in den DP tmp.Total-m geschrieben.

                            Das gleiche mache ich stündlich, wöchentlich und jährlich. Die Werte für heute, diese Woche und dieser Monat werden nach dem Prinzip "aktueller Wert" - "Vorwert" gerechnet.

                            Ich verstehe deinen Einwand, deine Frage nicht ganz.

                            cronD könnte auch "0 0 * * *" sein, aber es gab da schon genug andere Jobs.

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

                            @a200 sagte in Stromzählung stündlich:

                            Ich verstehe deinen Einwand, deine Frage nicht ganz.

                            Ich versuche es nochmal ;-)

                            Wenn du deinen Stromverbrauch als Balkengrafik darstellen willst, werden dein Balken dem Folgemonat (in dem du vielleicht in Urlaub bist) zugeordnet.
                            Aus dem Grund mache ich das (genau wie du am Tag) am letzten Tag des Monats um 23:59
                            Dann ist der Timestmp des Wertes noch im aktuellen Monat

                            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 -

                            a200A 1 Antwort Letzte Antwort
                            0
                            • HomoranH Homoran

                              @loni78
                              @Asgothian sagte in Stromzählung stündlich:

                              Mal dumm gefragt - warum hast Du 24 Datenpunkte pro Tag ? Für eine Visualisierung

                              ich habe zwar keinen stündlich wechselnden Tarif, aber ich mache es ähnlich wie @Asgothian es schreibt.
                              Einen DP der die aktuellen Werte kumuliert, und dann je einen für Tag, Monat und Jahr, ebenfalls kumuliert. Bei dir käme dann noch einer je Stunde dazu.
                              Am Ende jeden Zeitabschnitts wird der Wert in die Datenpunkte der jeweils höheren "Kategorie" geschrieben sowie in weitere Datenpunkte, in denen nur der Endwert geloggt wird

                              05-Strom.png
                              Hier für Erzeugung, Einspeisung, Bezug und Verbrauch

                              L Offline
                              L Offline
                              loni78
                              schrieb am zuletzt editiert von
                              #16

                              @Homoran
                              @Asgothian

                              So ich habe mal meine Sammlung von Datenpunkten gelöscht...... und habe Euren Ratschlag umgesetzt. D.h. ich aggregiere jetzt die Werte hoch --> von Stunde --> zu Tage --> zu Monate usw.

                              Es scheint so, dass es funktioniert. Manchmal sieht man den Wald vor lauter Bäumen nicht. Jetzt muss ich mir nur noch überlegen, wie ich das mit den Tageswerten mache, da diese erst um 0.01 Uhr in der Influx gespeichert werden.

                              Erstmal vielen Dank an alle.

                              Grüße
                              Rafael

                              L 1 Antwort Letzte Antwort
                              0
                              • L loni78

                                @Homoran
                                @Asgothian

                                So ich habe mal meine Sammlung von Datenpunkten gelöscht...... und habe Euren Ratschlag umgesetzt. D.h. ich aggregiere jetzt die Werte hoch --> von Stunde --> zu Tage --> zu Monate usw.

                                Es scheint so, dass es funktioniert. Manchmal sieht man den Wald vor lauter Bäumen nicht. Jetzt muss ich mir nur noch überlegen, wie ich das mit den Tageswerten mache, da diese erst um 0.01 Uhr in der Influx gespeichert werden.

                                Erstmal vielen Dank an alle.

                                Grüße
                                Rafael

                                L Offline
                                L Offline
                                loni78
                                schrieb am zuletzt editiert von
                                #17

                                @Homoran
                                @Asgothian 4df46893-0211-4af0-8c87-88752288613f-image.png

                                So habe ich das in Blockly umgesetzt. Müsste doch so funktionieren bzw. gibt es Verbesserungsvorschlage. In diesem Skript werden erstmal nur die kWh gezählt bzw. geloggt. In einem zweiten würde ich das noch in EUR umrechnen.

                                Grüße
                                Rafael

                                1 Antwort Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @a200 sagte in Stromzählung stündlich:

                                  Ich verstehe deinen Einwand, deine Frage nicht ganz.

                                  Ich versuche es nochmal ;-)

                                  Wenn du deinen Stromverbrauch als Balkengrafik darstellen willst, werden dein Balken dem Folgemonat (in dem du vielleicht in Urlaub bist) zugeordnet.
                                  Aus dem Grund mache ich das (genau wie du am Tag) am letzten Tag des Monats um 23:59
                                  Dann ist der Timestmp des Wertes noch im aktuellen Monat

                                  a200A Offline
                                  a200A Offline
                                  a200
                                  schrieb am zuletzt editiert von a200
                                  #18

                                  @Homoran sagte in Stromzählung stündlich:

                                  Ich versuche es nochmal ;-)

                                  Wenn du deinen Stromverbrauch als Balkengrafik darstellen willst, werden dein Balken dem Folgemonat (in dem du vielleicht in Urlaub bist) zugeordnet.
                                  Aus dem Grund mache ich das (genau wie du am Tag) am letzten Tag des Monats um 23:59
                                  Dann ist der Timestmp des Wertes noch im aktuellen Monat

                                  Ok, jetzt! Balkendiagramm ist das Stichwort! Du hast vorhin nur von Grafen gesprochen.
                                  Ich nutze Liniendiagram und dann habe ich korrekterweise am Ersten eines Monats um 0:00 den Verbrauch bis zu diesem Zeitpunkt.

                                  002.PNG

                                  003.PNG

                                  IoBroker auf QNAP TS-451, Raspi und NUC

                                  XxJooOX 1 Antwort Letzte Antwort
                                  0
                                  • a200A a200

                                    @Homoran sagte in Stromzählung stündlich:

                                    Ich versuche es nochmal ;-)

                                    Wenn du deinen Stromverbrauch als Balkengrafik darstellen willst, werden dein Balken dem Folgemonat (in dem du vielleicht in Urlaub bist) zugeordnet.
                                    Aus dem Grund mache ich das (genau wie du am Tag) am letzten Tag des Monats um 23:59
                                    Dann ist der Timestmp des Wertes noch im aktuellen Monat

                                    Ok, jetzt! Balkendiagramm ist das Stichwort! Du hast vorhin nur von Grafen gesprochen.
                                    Ich nutze Liniendiagram und dann habe ich korrekterweise am Ersten eines Monats um 0:00 den Verbrauch bis zu diesem Zeitpunkt.

                                    002.PNG

                                    003.PNG

                                    XxJooOX Offline
                                    XxJooOX Offline
                                    XxJooO
                                    schrieb am zuletzt editiert von
                                    #19

                                    Hallo,

                                    darf ich mal in die Runde fragen, wie Ihr das dann speichert? Ich kann ja DPs anlegen für 31 Tage und die dann jeweils füllen. Für Wochen, Monate und Jahre ist das Anlegen von DPs (man möchte ja nichts verlieren) aber irgendwie viel Aufwand (kann man automatisieren, ist mir bekannt). Lässt sich sowas in einer Art array speichern, oder habt Ihr jeweils wirklich DPs erstellt?

                                    ioBroker auf Intel NUC - Homematic CCU3/pivCCU auf Raspi 3B+

                                    paul53P AsgothianA HomoranH 3 Antworten Letzte Antwort
                                    0
                                    • XxJooOX XxJooO

                                      Hallo,

                                      darf ich mal in die Runde fragen, wie Ihr das dann speichert? Ich kann ja DPs anlegen für 31 Tage und die dann jeweils füllen. Für Wochen, Monate und Jahre ist das Anlegen von DPs (man möchte ja nichts verlieren) aber irgendwie viel Aufwand (kann man automatisieren, ist mir bekannt). Lässt sich sowas in einer Art array speichern, oder habt Ihr jeweils wirklich DPs erstellt?

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

                                      @XxJooO sagte:

                                      Lässt sich sowas in einer Art array speichern

                                      Ja, das lässt sich in einem Datenpunkt vom Typ "array" speichern.

                                      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
                                      • XxJooOX XxJooO

                                        Hallo,

                                        darf ich mal in die Runde fragen, wie Ihr das dann speichert? Ich kann ja DPs anlegen für 31 Tage und die dann jeweils füllen. Für Wochen, Monate und Jahre ist das Anlegen von DPs (man möchte ja nichts verlieren) aber irgendwie viel Aufwand (kann man automatisieren, ist mir bekannt). Lässt sich sowas in einer Art array speichern, oder habt Ihr jeweils wirklich DPs erstellt?

                                        AsgothianA Offline
                                        AsgothianA Offline
                                        Asgothian
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #21

                                        @XxJooO
                                        Ich speichere das in einer Datenbank, und mache den Graph dann mit Grafana, Flot oder dem neuen E-Charts adapter.

                                        Gefällt mir besser als irgendeine selbstgebaute "array" Speicherung.

                                        A.

                                        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                                        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                                        1 Antwort Letzte Antwort
                                        0
                                        • XxJooOX XxJooO

                                          Hallo,

                                          darf ich mal in die Runde fragen, wie Ihr das dann speichert? Ich kann ja DPs anlegen für 31 Tage und die dann jeweils füllen. Für Wochen, Monate und Jahre ist das Anlegen von DPs (man möchte ja nichts verlieren) aber irgendwie viel Aufwand (kann man automatisieren, ist mir bekannt). Lässt sich sowas in einer Art array speichern, oder habt Ihr jeweils wirklich DPs erstellt?

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

                                          @XxJooO sagte in Stromzählung stündlich:

                                          Ich kann ja DPs anlegen für 31 Tage und die dann jeweils füllen

                                          Wieso?
                                          ein TagesDatenpunkt reicht.
                                          Der wird historisiert und einmal am Tag befüllt

                                          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 -

                                          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

                                          385

                                          Online

                                          32.6k

                                          Benutzer

                                          81.9k

                                          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