;;; Nur noch an eigene Umgebung anpassen
let plus1_34_ip = "192.168.8.34";
let uni_25_ip = "192.168.8.25";
let plus1_36_ip = "192.168.8.36";
let plus1_34_status = false;
let uni_25_status = false;
let plus1_36_status = false;
let plus1_34_off_timer = null;
function checkAndControl() {
Shelly.call("HTTP.GET", { url: "http://" + plus1_34_ip + "/status" }, function (res, err, details) {
if (res && res.code === 200) {
plus1_34_status = JSON.parse(res.body).relays[0].ison;
Shelly.call("HTTP.GET", { url: "http://" + uni_25_ip + "/status" }, function (res, err, details) {
if (res && res.code === 200) {
uni_25_status = JSON.parse(res.body).relays[0].ison;
// Einschalten
if (plus1_34_status
uni_25_status) {
if (!plus1_36_status) {
Shelly.call("HTTP.GET", { url: "http://" + plus1_36_ip + "/relay/0?turn=on" });
plus1_36_status = true;
print("Shelly Plus 1 (192.168.8.36) eingeschaltet.");
}
if (plus1_34_off_timer) {
clearTimeout(plus1_34_off_timer);
plus1_34_off_timer = null;
}
}
// Ausschalten
else if (!plus1_34_status && !uni_25_status) {
if (!plus1_34_off_timer) {
plus1_34_off_timer = setTimeout(function () {
Shelly.call("HTTP.GET", { url: "http://" + plus1_36_ip + "/relay/0?turn=off" });
plus1_36_status = false;
print("Shelly Plus 1 (192.168.8.36) nach Verzögerung ausgeschaltet.");
plus1_34_off_timer = null;
}, 420000); // 420 Sekunden = 7 Minuten
print("Ausschaltverzögerung gestartet.");
}
}
}
});
}
});
}
// Regelmäßige Überprüfung alle 5 Sekunden
Timer.set(5000, true, function () {
checkAndControl();
});
// Erste Ausführung
checkAndControl();