NEWS
[Gelöst mit Script]: YAHKA Konfiguration für Lightify LED
-
Hallo
Hat jemand vielleicht eine YAHKA Konfiguration zur Steuerung eines OSRAM Lightify LED Streifens (RGBW)
zur Hand?
Einfacher Screenshot wäre super, ich brauche "nur" die Daten für den Service.
Danke!
Gruß daNick
-
Hallo,
wenn man erstmal weiß, wonach man suchen muss, hat man ja eine Chance
Hier mal meine Anleitung, vielleicht hilft es ja jemanden (es gibt sicher andere Wege, ich war dankbar, dass das hier klappt erstmal)
- Unter dem Lightify Objekt zwei neue Datenpunkte manuell anlegen: "hue" und "sat", jeweils "Datenpunkt" und "Zahl"
-
Script (siehe Text am Ende, AUS FORUM BEITRAG ÜBERNOMMEN, KEINE EIGENE ENTWICKLUNG) als neues Script im Scripteditor einbauen, dabei Name des Zigbee-Objekts auf eigenes Gerät anpassen (also "zigbee.0.7cb03eaa00b021f2" auf "zibee.x.xxxxxxx").
-
In YAHKA, die Werte "hue" und "sat" mit den neuen Datenpunkten verbinden.
- Mögliche Abwandlungen für andere Geräte
- Lightify nutzt im Zigbee-Adapter für Helligkeit und Farbe die Objekte ".color" und ".brightness".
Das kann bei andere Geräten anders sein (ich habe etwa ".bri" und ".rgb" gesehen). - Der nötige Farbcode kann ein anderes Format haben:
Wenn ein vorangestelltes "#" und ein "00" am Ende benötigt werden, hieße die letzte Zeile etwa:
setState('zigbee.0.7cb03eaa00b021f2.color', '#' + toHex(r) + toHex(g) + toHex(b) + '00');
Die Farben sind allerdings etwas "weißlich"/ "Hell" (ich schaffe es etwa nicht, "#fe0000" per Yahka als rot einzustellen), da mache ich mich eventuell noch dran, aber erstmal reicht es(GELÖST, DANKE FÜR DIE HILFE AN @Supaamensch !)Viel Spaß
////////////////Variablen///////////////// var h, s, v, r, g, b ////////////////Funktionen//////////////// //HSVtoRGB function HSVtoRGB() { var r1, g1, b1, i, f, p, q, t; i = Math.floor(h * 6); f = h * 6 - i; p = v * (1 - s); q = v * (1 - f * s); t = v * (1 - (1 - f) * s); switch (i % 6) { case 0: r1 = v, g1 = t, b1 = p; break; case 1: r1 = q, g1 = v, b1 = p; break; case 2: r1 = p, g1 = v, b1 = t; break; case 3: r1 = p, g1 = q, b1 = v; break; case 4: r1 = t, g1 = p, b1 = v; break; case 5: r1 = v, g1 = p, b1 = q; break; } r=Math.round(255 * r1); g=Math.round(255 * g1); b=Math.round(255 * b1); } //In HEX konvertieren 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; } ///////////////////Variablenzuweisung////////////////// // Bei Farbänderung oder Helligkeitsänderung on(["zigbee.0.7cb03eaa00b021f2.hue","zigbee.0.7cb03eaa00b021f2.sat","zigbee.0.7cb03eaa00b021f2.brightness"] , function (dp) { h = getState("zigbee.0.7cb03eaa00b021f2.hue").val / 360; s = getState("zigbee.0.7cb03eaa00b021f2.sat").val / 100; v = getState("zigbee.0.7cb03eaa00b021f2.brightness").val / 100; HSVtoRGB(); setState('zigbee.0.7cb03eaa00b021f2.color', toHex(r) + toHex(g) + toHex(b)); });
-
Das Problem mit den "weißlichen Farben liegt einfach daran, dass du in Zeile 37 durch 255 und nicht durch 100 teilst.
Mit 100 funktioniert es bei mir einwandfrei.