Das Shelly RGBW Plus PM schaltet zwei LED Lampen via Bluetooth Buttons. Die Eingänge sind somit frei für andere Aufgaben. Soweit zumindest mein Gedanke. Die Schalter sollen dazu genutzt werden, das System zu steuern, wenn wir an einem Ort ohne Internetzugriff sind.
Aha, so wird ein Schuh draus. Ja klar, das geht - entweder via den von Flutschi angeregten Aktionen oder via Skript, wie bereits im Prinzip beschrieben.
Flutschi Wenn du mit "hier" die KVS Lösung von Tom-DD meinst, ja. Ansonsten wird weder beim lesen eines Zustandes (RPC Lesemethode) noch beim schreiben in eine Skript Variable in den nichtflüchtigen Speicher geschrieben.
Tom-DD Das Schreiben in den nichtflüchtigen Speicher ist nur dann relevant, wenn die Schreibdichte relativ hoch ist, also an einem Tag viele Schreibzugriffe erfolgen. Bekanntermaßen altert der nichtflüchtige Speicher mit schreiben erheblich schneller als der flüchtige Speicher. Mit Bezug auf deine KVS-Skript Lösung kann ich dir noch den Tipp geben, bei Bedarf statt KVS die Methode "Script.Eval" zu verwenden. Mit dieser kann der aufgerufenen Skriptfunktion ein Wert (hier ein boolescher Wert) via Parameter übergeben werden, welcher in einer globalen Skriptvariablen abgelegt wird. Von dieser kann deine Funktion checkPumpeAndSwitch unmittelbar lesen und braucht dazu das KVS System nicht. Nur wenn eine persistente Speicherung des booleschen Wertes zweckmäßig sein sollte, hat die Nutzung des KVS den entsprechenden Vorteil, was ich in deiner Anwendung nicht sehe.
Beispiel:
let PumpEn = false; // Globale Variable zum freigeben/sperren des Pumpen Einschaltens.
function enPumpe(en) { PumpEn = en; } // Via Methode "Script.Eval" remote aufzurufen.
function checkPumpeAndSwitch() {
if(PumpEn) {
Shelly.call("Switch.Set", { id: relay_id, on: true });
//...
}
// ...
}
Zusätzlich kannst du per Schedule Job bspw. alle 60s via "Script.Eval" eine andere Skriptfunktion aufrufen lassen, die den aktuellen Eingangszustand des RGBW Shelly abfragt ...
Deine Fehlermeldung '"http" is not defined' deutet auf einen Tippfehler deinerseits hin. Du kannst alle Methoden, welche dein RGBW Shelly unterstützt mit der Methode "Shelly.ListMethods" anzeigen lassen. Ich bin davon überzeugt, dass sich die Eingänge des RGBW abfragen lassen, kann dies aber nicht testen.