NEWS
Ende des Monats mit Blockly festlegen
-
Ich weiß dass es einmal eine solche Lösung gab.
Ich glaube auch, dass sie von @paul53 kam.Ich möchte am Monatsende, 23:59 Die kumulierten Werte in einen neuen Datenpunkt schreiben.
Im Moment habe ich keine Ahnung o ich damit ansetzen kann.
Einzige Idee wäre den Wert an den letztmöglichen Tagen (ab 28.) solange in den Datenpunkt zu schreiben, solange am nächsten Tag um 23:59 der Tag des letzten Timestamp kleiner als im aktuellen, aber der Monat identisch ist)gibt es da etwas einfacheres?
-
-
@paul53
Danke!ich fürchte ja, aber das nutzt mir nix - ich brauche sie ein paar Minuten früher
-
@Homoran sagte:
ich brauche sie ein paar Minuten früher
Weshalb ? Ändert sich zwischen 23:59 und 00:01 so viel ?
Du kannst auch um 00:00 Uhr triggern und nur 1 s abziehen. -
@paul53 sagte in Ende des Monats mit Blockly festlegen:
Ändert sich zwischen 23:59 und 00:01 so viel ?
Nein, das ist es nicht.
Ich möchte es nur im Datenpunkt vom Tag davor haben um den Wert korrekt zu loggen
-
@Homoran sagte:
um den Wert korrekt zu loggen
Dann triggere um 23:59, addiere 2 Minuten auf und teste mit diesem Wert, ob der Tag des Monats = 1 ist.
-
@paul53 sagte in Ende des Monats mit Blockly festlegen:
Dann triggere um 23:59, addiere 2 Minuten auf und teste mit diesem Wert, ob der Tag des Monats = 1 ist.
Aaaaah - Ja?
Das klingt gut - lass mich mal versuchen ob ich das hinbekomme
Hab ja noch 12 Tage Zeit -
ich habe mal mit den gefundenen Blöcken gespielt und halte das hier jetzt für brauchbar:
var Next_day; Next_day = 0; schedule("45 59 23 * * *", function () { setState("Messwerte.0.Stromzaehler.Summenwerte.Tagesendbezug"/*Tagesendbezug*/, getState("Messwerte.0.Stromzaehler.Summenwerte.Tagesbezug").val, true); setStateDelayed("Messwerte.0.Stromzaehler.Summenwerte.Bezug_alt"/*Bezug_alt*/, getState("smartmeter.0.1-0:1_8_0__255.value").val, true, 1000, false); setState("Messwerte.0.Stromzaehler.Summenwerte.Tagesendeinspeisung"/*Tagesendeinspeisung*/, getState("Messwerte.0.Stromzaehler.Summenwerte.Tageseinspeisung").val, true); setStateDelayed("Messwerte.0.Stromzaehler.Summenwerte.Einspeisung_alt"/*Einspeisung_alt*/, getState("smartmeter.0.1-0:2_8_0__255.value").val, true, 1000, false); setState("Messwerte.0.Stromzaehler.Summenwerte.Tagesendverbrauch"/*Tagesendverbrauch*/, getState("Messwerte.0.Stromzaehler.Summenwerte.Tagesverbrauch").val, true); setState("Messwerte.0.Solaranlage.Summenwerte.Tagesendertrag"/*Tagesendertrag*/, getState("Messwerte.0.Solaranlage.Summenwerte.Tagesertrag").val, true); setStateDelayed("Messwerte.0.Stromzaehler.Summenwerte.Verbrauch_Vortag"/*Verbrauch_Vortag*/, getState("Messwerte.0.Stromzaehler.Summenwerte.Tagesendverbrauch").val, true, 1000, false); Next_day = (new Date().getDay() === 0 ? 7 : new Date().getDay()); Next_day = (typeof Next_day == 'number' ? Next_day : 0) + 1; console.warn((['Morgen ist der ',Next_day,'. '].join(''))); if (Next_day == 1) { setState("Messwerte.0.Stromzaehler.Summenwerte.Monatsbezug"/*Monatsbezug*/, getState("Messwerte.0.Stromzaehler.Summenwerte.Monatsbezug_kum").val, true); } });
Auf dem System habe ich noch nicht die neuen Blöcke (falls es da was besseres gab)
EDIT: neee - geht so nicht.
Hatte erst milliskeunden + 20000
Weiß aber nicht wie ich das dann auflöse nach Tag -
-
@paul53
Nee, nich?Bei Konvertierung habe ich Depp natürlich nicht gesucht :schäm:
Ich hatte mich mit einer Funktion versuchtDanke mal wieder !
-
Das müsste jetzt passen.
Das Skript
Hat gestern abend geschrieben:
2020-01-18 23:59:45.003 - warn: javascript.0 script.js.Energie.Tagesendsummen2: Morgen ist der 19.