Ah okay sorry
Code
let POWER_THRESHOLD = 2; // Watt
let ACTIVE_DURATION = 10 * 60; // 10 Minuten in Sekunden
let OFF_DURATION = 60 * 60 * 1000; // 60 Minuten in Millisekunden
let highPowerSeconds = 0;
let monitoring = true;
function scheduleReenable() {
print("Steckdose wird in 60 Minuten wieder eingeschaltet.");
Timer.set(OFF_DURATION, false, function () {
Shelly.call("Switch.Set", { id: 0, on: true });
highPowerSeconds = 0;
monitoring = true;
print("Steckdose wieder eingeschaltet.");
});
}
Timer.set(5000, true, function () {
if (!monitoring) return;
let status = Shelly.getComponentStatus("switch:0");
let power = status.aenergy?.act_power || 0;
print("Aktuelle Leistung: ", power, "W");
if (power > POWER_THRESHOLD) {
highPowerSeconds += 5;
print("Über 2W seit ", highPowerSeconds, " Sekunden");
if (highPowerSeconds >= ACTIVE_DURATION) {
print("Leistung >2W seit 10 Minuten – Steckdose AUS.");
Shelly.call("Switch.Set", { id: 0, on: false });
monitoring = false;
scheduleReenable();
}
} else {
if (highPowerSeconds > 0) {
print("Verbrauch unter 2W – Zähler zurückgesetzt.");
}
highPowerSeconds = 0;
}
});
Alles anzeigen