Am Wochenende habe ich lange danach gesucht, wie man Einstellungen des Plug S Plus per Script verändert kann.
Mit SetConfig können folgende Einstellungen per Script geändert werden:
-Farbmodus der LED-Anzeige
-LED-Anzeige Nachtmodus
-Schalter abtrennen
-Gerätename
Nur den Gerätenamen ändern:
Code
Shelly.call(
"Switch.SetConfig",
{ id: 0, config:{"name":"Steckdose 01"}},
function (result, code, msg, ud) {
},
null
);
Nur den Farbmodus Switch, Power oder off ändern:
Code
Shelly.call(
"PLUGS_UI.SetConfig",
{ id: 0, config:{"leds":{"mode":"power"}}},
function (result, code, msg, ud) {
},
null
);
nur LED-Farben ändern:
RGB-Werte gehen aber nur bis 100, für [255,150,0] muss man [100,60,0] einsetzen:
Code
Shelly.call(
"PLUGS_UI.SetConfig",{ id:0, config:{"leds":{"mode":"switch","colors":
{"switch:0":
{"on":{"rgb":[100,60,0],"brightness":100},
"off":{"rgb":[0,0,0],"brightness":0}}}}}},
function (result, code, msg, ud) {
},
null
);
Alle möglichen Einstellungen wie mode, colors, night_mode, controls ändern:
Code
Shelly.call(
"PLUGS_UI.SetConfig",{ id:0, config:{"leds":
{"mode":"switch",
"colors":{"switch:0":
{"on":{"rgb":[100,100,0],"brightness":100},
"off":{"rgb":[0,100,0],"brightness":50}
},
"power":{"brightness":100}},
"night_mode":{"enable":true,"brightness":10,"active_between":["20:00","08:00"]}},
"controls":{"switch:0":{"in_mode":"momentary"}}}
},
function (result, code, msg, ud) {
},
null
);
Alles anzeigen
Und zum Schluss einfach aus Spass noch ein Script, das im Sekunden-Takt die LED-Farbe ändert:
Code
var i = 0;
var r = 0;
var g = 0;
var b = 0;
// RGB-Farbkreis (Array)
const colors = [
[0,100, 0], [0,100,50], [0,100,100], [0,50,100], [0,0,100], [50,0,100],
[100,0,100], [100,0,50], [100,0,0], [100, 50,0], [100,100,0], [50,100,0]
];
function setRGB() {
r = colors[i][0];
g = colors[i][1];
b = colors[i][2];
// Wenn Ende des Arrays erreicht wude (colors.length) Farbwerte wieder von vorne i=0 durchlaufen
if (i < (colors.length-1)) { i++; } else { i = 0; };
Shelly.call(
"PLUGS_UI.SetConfig",{ id:0, config:{"leds":{"mode":"switch","colors":
{"switch:0":
{"on":{"rgb":[r,g,b],"brightness":100},
"off":{"rgb":[0,0,0],"brightness":0}},
"power":{"brightness":100}},"night_mode":{"enable":true,"brightness":10,"active_between":["20:00","08:00"]}},
"controls":{"switch:0":{"in_mode":"momentary"}}}
},
function (result, code, msg, ud) {
},
null
);
}
function startTimer() {
timer1 = Timer.set(1000, true, setRGB, null); // true: Timer wird periodisch ausgeführt
}
// Alternativ kann in Shelly.call für die RGB-Werte [r,g,b] auch ein Zufallswert eingegeben werden: getRandomInt(10)
function getRandomInt(max) {
return Math.round(Math.floor(Math.random() * max * 10)/10)*10;
}
startTimer();
Alles anzeigen