NEWS
SetState wird überschrieben (?)
-
Ich habe das Script von hier: https://forum.iobroker.net/topic/17309/gelöst-kwh-berechnen-und-fortlaufend-speichern/4.
const idPowerHausverbrauch = 'modbus.0.holdingRegisters.40072_Hausverbrauch_Leistung'; // cur_power const idEnergyHausverbrauch = '0_userdata.0.Solar.Hausverbraucht_heute'; // kWh // Energie-Datenpunkt erzeugen createState(idEnergyHausverbrauch, 0, {type: 'number', unit: 'kWh'}); // Anfangswert anpassen ! var energyHausverbrauch = 1000 * getState(idEnergyHausverbrauch).val; // Wh, erzeugt beim ersten Skripstart Fehler on({id: idPowerHausverbrauch}, function(dp) { energyHausverbrauch = energyHausverbrauch + dp.state.val * (dp.state.ts - dp.oldState.ts) / 3600000; // Wh setState(idEnergyHausverbrauch, Math.round(energyHausverbrauch) / 1000, true); // kWh mit 3 Nachkommastellen }); schedule("0 0 * * *", function () { setState(idEnergyHausverbrauch, 0); });Danke @paul53 das funktioniert super. Nun möchte ich, dass die Werte um 0:00 Uhr auf 0 zurück gesetzt werden. Das habe ich mit:
schedule("0 0 * * *", function () {
setState(idEnergyHausverbrauch, 0);
});
am Ende des Skriptes gelöst. Nun kann ich um 0 Uhr beobachten wie der Wert des Datenpunktes auf 0 gesetzt wird und einen Augenblick später steht wieder der vorherige Wert drin.
Derzeit muss ich das Skript stoppen, den Wert manuell auf 0 setzen und das Skript wieder starten. Dann geht's. -
Ich habe das Script von hier: https://forum.iobroker.net/topic/17309/gelöst-kwh-berechnen-und-fortlaufend-speichern/4.
const idPowerHausverbrauch = 'modbus.0.holdingRegisters.40072_Hausverbrauch_Leistung'; // cur_power const idEnergyHausverbrauch = '0_userdata.0.Solar.Hausverbraucht_heute'; // kWh // Energie-Datenpunkt erzeugen createState(idEnergyHausverbrauch, 0, {type: 'number', unit: 'kWh'}); // Anfangswert anpassen ! var energyHausverbrauch = 1000 * getState(idEnergyHausverbrauch).val; // Wh, erzeugt beim ersten Skripstart Fehler on({id: idPowerHausverbrauch}, function(dp) { energyHausverbrauch = energyHausverbrauch + dp.state.val * (dp.state.ts - dp.oldState.ts) / 3600000; // Wh setState(idEnergyHausverbrauch, Math.round(energyHausverbrauch) / 1000, true); // kWh mit 3 Nachkommastellen }); schedule("0 0 * * *", function () { setState(idEnergyHausverbrauch, 0); });Danke @paul53 das funktioniert super. Nun möchte ich, dass die Werte um 0:00 Uhr auf 0 zurück gesetzt werden. Das habe ich mit:
schedule("0 0 * * *", function () {
setState(idEnergyHausverbrauch, 0);
});
am Ende des Skriptes gelöst. Nun kann ich um 0 Uhr beobachten wie der Wert des Datenpunktes auf 0 gesetzt wird und einen Augenblick später steht wieder der vorherige Wert drin.
Derzeit muss ich das Skript stoppen, den Wert manuell auf 0 setzen und das Skript wieder starten. Dann geht's.@streit187 sagte in SetState wird überschrieben (?):
energyHausverbrauch
Die Variable hat noch den alten Wert:
schedule("0 0 * * *", function () { setState(idEnergyHausverbrauch, 0); energyHausverbrauch=0; }); -
@streit187 sagte in SetState wird überschrieben (?):
energyHausverbrauch
Die Variable hat noch den alten Wert:
schedule("0 0 * * *", function () { setState(idEnergyHausverbrauch, 0); energyHausverbrauch=0; });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden