Da ich noch keine Hilfe erhalten habe, habe ich das Script etwas abgeändert. Leider erhalte ich in meinem Script immer den Wert "(null)" für den Datenpunkt "Tagesarbeitszahl".
Mein Script lautet:
var W_thermisch_gesamt, W_elektrisch_gesamt, W_elektrisch_Vortag, w_thermisch_Vortag;
// Speichere Vortageszählerstände
schedule("49 17 * * *", async function () {
// Setzte die Variablen für die Tagesdaten.
W_thermisch_gesamt = parseFloat(parseFloat(getState("nibeuplink.0.UNIT_0.HEAT_METER.HEATING_COMPR_ONLY_EP14").val)) + parseFloat(getState("nibeuplink.0.UNIT_0.HEAT_METER.HOTWATER_COMPR_ONLY_EP14").val);
W_elektrisch_gesamt = parseFloat(parseFloat(getState("sonoff.0.Tasmota_Stromzaehler_Heizung.Heizung_zahlstand_HT").val)) + parseFloat(getState("sonoff.0.Tasmota_Stromzaehler_Heizung.Heizung_zahlstand_NT").val);
// wenn Vortageswerte 0 sind, dann speichere aktuelle Tagesdaten als Vortagesdaten
if (getState("0_userdata.0.Heizung.Wel_Vortag").val == 0) {
setState("0_userdata.0.Heizung.Wel_Vortag"/*Wel_Vortag*/, W_elektrisch_gesamt, true);
}
if (getState("0_userdata.0.Heizung.Wth_Vortag").val == 0) {
setState("0_userdata.0.Heizung.Wth_Vortag"/*Wth_Vortag*/, W_thermisch_gesamt, true);
}
// ermittle rechnerisch die Vortageswerte
setState("0_userdata.0.Heizung.Wel_Vortag"/*Wel_Vortag*/, (parseFloat(W_elektrisch_gesamt) - getState("0_userdata.0.Heizung.Wel_Vortag").val), true);
setState("0_userdata.0.Heizung.Wth_Vortag"/*Wth_Vortag*/, (parseFloat(W_thermisch_gesamt) - getState("0_userdata.0.Heizung.Wth_Vortag").val), true);
});
// Berechnet Tagesarbeitszahl
schedule("50 17 * * *", async function () {
W_elektrisch_Vortag = Math.round(getState("0_userdata.0.Heizung.Wel_Vortag").val*100)/100;
w_thermisch_Vortag = Math.round(getState("0_userdata.0.Heizung.Wth_Vortag").val*100)/100;
setState("0_userdata.0.Heizung.Tagesarbeitszahl"/*Tagesarbeitszahl*/, (parseFloat(w_thermisch_Vortag) / W_elektrisch_Vortag), true);
sendTo("telegram.0", "send", {
text: (['Tagesarbeitszahl:',getState("0_userdata.0.Heizung.Tagesarbeitszahl").val,'W_elektrisch; W_thermisch:',W_elektrisch_Vortag,w_thermisch_Vortag].join(''))
});
});
Alle Datenpunkte besitzen reale Werte.
Blockly sieht so aus:
[image: 1676999719312-screenshot-2023-02-21-181114.jpg]