NEWS
MiHome Gateway LED automatischer Farbwechsel Fade
-
Hallo zusammen,
ich bin auf der Suche nach einer Möglichkeit wie die LED von meinem MiHome Gateway einen automatischen Farbwechsel (FADE) durchführen kann. Ich habe bis jetzt so noch keinen Ansatz gefunden, daher denke ich das es über ein Script laufen müsste.
Hat jemand hierzu eine Idee oder einen Lösungsanatz wie das umgesetzt werden kann?
-
Unterstützt der Hub das überhaupt? Bisher habe ich nur Blinken gesehen und hin bekommen. in der Mi App habe ich auch nix gefunden das er Fade kann
-
Na da musst eben ein Script verfassen, das die Farbe in Hex ändert und dem entsprechenden DP zuführen. Welcher Hex Wert welche Farbe entspricht, dazu gibts standard Farbtabellen. Bleibt als einzige Schwierigkeit am Script die Funktion, den Hex Wert passend ändern zu lassen. Ich bin Anfänger hier, hätte dazu aber schon eine Idee.
Dem Hub ist es auch egal, was Du da mit einem Script am DP werkelst, der macht stur das was im befohlen wird.
-
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.