einmal für die Nachwelt im Nachfolgenden dokumentiert, wie das Skript für mich nun über einen longpush funktioniert und alle 3 Jalousien (Rademacher) bedient. Ich denke, dass man die Struktur so auch für beliebige andere HTTP PUT Befehle umsetzen kann:
Code
// Funktion, die den PUT Request sendet
function sendPUTRequest(deviceID) {
let url = "http://192.168.178.65/devices/" + deviceID; // Ziel-URL dynamisch für jedes Gerät
let headers = {"Content-Type": "application/json"}; // Header für den Request
let data = JSON.stringify({
name: "GOTO_POS_CMD",
value: 100
}); // JSON-Daten, die gesendet werden
// HTTP-Anfrage via Shelly.call ausführen
Shelly.call(
"HTTP.REQUEST",
{
method: "PUT",
url: url,
headers: headers,
body: data
},
function (res, error_code, error_msg, user_data) {
if (error_code === 0) {
print("Request erfolgreich an Gerät " + deviceID + " gesendet:", res.code);
} else {
print("Fehler bei Gerät " + deviceID + ":", error_code, error_msg);
}
}
);
}
// Event-Handler für Input 0 (Long Push)
Shelly.addEventHandler(function(e) {
if (e.component === "input:0") { // Überprüft, ob Input 0 ausgelöst wurde
if (e.info.event === "long_push") { // Überprüft auf den Long Push Event
print("Input 0 Long Push erkannt");
sendPUTRequest(2); // PUT Request an Gerät 1 Sofa
sendPUTRequest(3); // PUT Request an Gerät 2 Essen
sendPUTRequest(4); // PUT Request an Gerät 3 Küche
}
}
});
Alles anzeigen
Und nun hätte ich gern Lob