-
Autor
Hallo.
Ich bin noch neue in dem Thema und komme leider nicht weiter.
Mein Plan war eine Katzenklingel zu bauen mit einem shelly blu motion und einer shelly plus plug s.
Heißt wenn Katze an der Tür sitzt, erkennt der motion eine Bewegung und schaltet den plug ein, in dem eine Lampe steckt. Hab dafür eine Szene gemacht und funktioniert soweit auch ganz gut.
Jetzt hatte ich zur besseren Sichtbarkeit aber gerne, dass die Lampe blinkt. Also das der shelly für 3 Sekunden ein und dann für 2 Sekunden wieder ausgeschaltet wird. Mit einer Szene hab ich das nicht umgesetzt bekommen. Also hab ich chatgpt gefragt. Nach vielen probieren und testen klappt es aber immer noch nicht.
Kann mir jemand von euch helfen?
Hier mal das Skript, was ich mit Hilfe von chatgpt erstellt habe. Plan war, das eine Szene das Skript startet. Funktioniert aber nicht. Wenn ich das Skript manuell starte, läuft es.
Wenn jemand eine bessere Lösung weiß, bin ich nicht abgeneigt.
let cycle = 0;
let maxCycles = 5;
print("Skript gestartet");
function runCycle() {
print("runCycle aufgerufen! Zyklus " + cycle);
if (cycle >= maxCycles) {
print("Alle Zyklen abgeschlossen. Plug bleibt aus.");
Shelly.call("Switch.Set", { id: 0, on: false }, function(result, error) {
if (error) {
print("Fehler beim Ausschalten nach allen Zyklen:", JSON.stringify(error));
} else {
print("Plug wurde nach allen Zyklen erfolgreich ausgeschaltet.");
}
});
return;
}
cycle++;
print("Zyklus " + cycle + ": Plug EIN");
Shelly.call("Switch.Set", { id: 0, on: true }, function(result1, error1) {
if (error1) {
print("Fehler beim Einschalten:", JSON.stringify(error1));
return;
}
print("Plug erfolgreich eingeschaltet!");
// Hier können wir den Timer besser nachvollziehen
print("3-Sekunden Timer gestartet...");
Timer.set(3000, false, function() {
print("Timer abgelaufen - Plug AUS");
Shelly.call("Switch.Set", { id: 0, on: false }, function(result2, error2) {
if (error2) {
print("Fehler beim Ausschalten:", JSON.stringify(error2));
} else {
print("Plug erfolgreich ausgeschaltet!");
}
// Bestätigung, dass der Plug ausgeschaltet wurde
print("2-Sekunden-Wartezeit für nächsten Zyklus...");
Timer.set(2000, false, function() {
print("Nächster Zyklus startet...");
runCycle(); // Starte den nächsten Zyklus
});
});
});
});
}
// Starte den ersten Zyklus
runCycle();
Alles anzeigen