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
    520

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

  • 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.
  • 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

                                      843

                                      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