Ja genau, das muss per Script erfolgen…
ich hab mir mal was dazu zusammengebastelt:
var state1 = "javascript.0.Allgemein.RGB_Farbwechsel";
var dev1_power = "mihome.0.devices.gateway_7811dcdae11a.on"/*Light*/;
var dev1_rgb = "mihome.0.devices.gateway_7811dcdae11a.rgb";
var dev2_power = "wifilight.0.192_168_0_212.on";
var dev2_rgb = "wifilight.0.192_168_0_212.rgb";
var bri = "mihome.0.devices.gateway_7811dcdae11a.dimmer";
var interval;
var debug = true;
function farbwechsel() {
var min = 0;
var max = 255;
var R = Math.round(Math.random() * (max - min)) + min;
var G = Math.round(Math.random() * (max - min)) + min;
var B = Math.round(Math.random() * (max - min)) + min;
if (debug) log(R + ' ' + G + ' ' + B);
if (debug) log ('#' + toHex(R) + toHex(G) + toHex(B));
setState(dev1_rgb, '#' + toHex(R) + toHex(G) + toHex(B));
setState(dev2_rgb, '#' + toHex(R) + toHex(G) + toHex(B));
}
function toHex(number) {
if (number < 0) number = 0xFFFFFFFF + number + 1;
var n = number.toString(16).toUpperCase();
if (n.length == 1) {
n = '0' + n;
}
return n;
}
on({id: state1, val: true, change: "ne"}, function() {
if (debug) log ("Starte LED Farbwechsel");
interval = setInterval(farbwechsel, 120000);
setState (dev1_power, true);
setState (dev2_power, true);
farbwechsel();
setState(dev1_rgb, '#FFFFFF');
setState(dev2_rgb, '#FFFFFF');
setStateDelayed(bri, 20, 1000);
});
on({id: state1, val: false, change: "ne"}, function() {
if (debug) log ("Beende LED Farbwechsel");
setState (dev1_power, false);
setState (dev2_power, false);
clearInterval(interval);
});
Funktioniert soweit besten, sogar mit dem wifilight Adapter.
Jetzt bekomme ich durch Zufall eine Farbe ausgewählt welche dann im Intervall von 2min geändert wird.
Damit bin ich soweit auch zufrieden, aber eigentlich wollte ich einen weichen Farbübergang, wie es beim faden so üblich ist.
Hierzu müsste ich aber irgendwie dieses Vordefinieren, wo ich allerdings absolut keine Idee zu habe.