Hallo zusammen,
ich bin komplett neu in der Shelly Welt und wollte mit einem Shelly 1 Gen3 meine Zirkulationspumpe steuern.
Folgendes hätte ich gerne gehabt wenn ich das Shelly über die App, Alexa oder mit einem weitern Shelly über Wifi starte das die Zirkulation nur 10 Minuten läuft.
Wenn aber die Heizung das Warmwasser macht, dann hätte ich gerne über den Switch Eingang die Zirkulation so lange an gelassen wie die Warmwasserbereitung dauert.
Da ich keine Ahnung habe, habe ich das mal an ChatGPT übergeben.
Diese beiden Codes wurden angezeigt:
let timerDuration = 10 * 1000; // 10 Minuten in Millisekunden
let timerId = null; // Variable für den Timer
Shelly.addEventHandler(function (event) {
if (event.component === "relay:0" && event.info.output === true) {
print("Relais wurde eingeschaltet - Timer startet für 10 Minuten");
// Starte den Timer
timerId = Timer.set(timerDuration, false, function () {
let inputStatus = Shelly.getComponentStatus("input:0");
if (inputStatus && inputStatus.state) {
print("Switch ist noch an - Relais bleibt an.");
return; // Beende die Funktion, Relais bleibt an
}
print("Timer abgelaufen und Switch ist aus -> Relais wird ausgeschaltet");
Shelly.call("Switch.set", { id: 0, on: false });
});
}
});
// Überwache den physischen Schalter
Shelly.addEventHandler(function (event) {
if (event.component === "input:0") {
if (event.info.state === false) {
print("Switch wurde ausgeschaltet -> Relais aus.");
Shelly.call("Switch.set", { id: 0, on: false });
} else {
print("Switch wurde eingeschaltet -> Timer gestoppt.");
if (timerId !== null) {
Timer.clear(timerId);
timerId = null;
}
}
}
});
let timerDuration = 10 * 1000; // 10 Minuten in Millisekunden
let timerId = null; // Variable für den Timer
Shelly.addEventHandler(function (event) {
if (event.component === "relay:0" && event.info.output === true) {
print("Relais wurde eingeschaltet - Timer startet für 10 Minuten");
// Starte den Timer
timerId = Timer.set(timerDuration, false, function () {
let inputStatus = Shelly.getComponentStatus("input:0");
if (inputStatus && inputStatus.state) {
print("Switch ist noch an - Relais bleibt an.");
return; // Beende die Funktion, Relais bleibt an
}
print("Timer abgelaufen und Switch ist aus -> Relais wird ausgeschaltet");
Shelly.call("Relay.set", { id: 0, on: false });
});
}
});
// Überwache den physischen Schalter
Shelly.addEventHandler(function (event) {
if (event.component === "input:0") {
if (event.info.state === false) {
print("Switch wurde ausgeschaltet -> Relais aus.");
Shelly.call("Relay.set", { id: 0, on: false });
} else {
print("Switch wurde eingeschaltet -> Timer gestoppt.");
if (timerId !== null) {
Timer.clear(timerId);
timerId = null;
}
}
}
});
Keiner der beiden macht was ich mir erwartet hätte. Ich habe sie über diesen Link https://control.shelly.cloud eingetragen.
In der Shelly Smart Control App wird dann undefined bei beiden Skripts angezeigt.
Was mache ich falsch?
Ich habe die Zeit zum Testen auf 10 Sekunden reduziert.
Die weiteren Shellys die die Zirkulation für 10 Minuten durch einen Taster starten sollen sind noch nicht installiert.
Ich scheitere ja schon bei Dauernd an über Schaltern am Shelly direkt an der Zirkulation und 10 Min über App oder Alexa
Vielen Dank und habt Geduld und Nachsicht
Danke und einen schönen Abend
Grüße
Harry