NEWS
Regenbogen Script
-
ich hab hier zwei kleine Scripte wo einmal alle Lampen/Gruppe zeigleich die Farbewechselt und dann noch ein wo 3 Leuchten im Kreis nach einander die Farbe wechselt
alle Lampen
function HSVtoRGB(h, s, v) { var r, g, b, 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: r = v, g = t, b = p; break; case 1: r = q, g = v, b = p; break; case 2: r = p, g = v, b = t; break; case 3: r = p, g = q, b = v; break; case 4: r = t, g = p, b = v; break; case 5: r = v, g = p, b = q; break; } return { r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255) }; } function componentToHex(c) { var hex = c.toString(16); return hex.length == 1 ? "0" + hex : hex; } function rgbToHex(r, g, b) { return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b); } function sleep(ms) { return new Promise((fnResolve) => { setTimeout(() => fnResolve(), ms); }); } var speed = 100; var refreshRate = 1500; //new color every 10ms var i = 0; var loop = async function() { while (getState('0_userdata.0.Regenbogen').val == true) { await sleep(refreshRate); var color = HSVtoRGB(i, 1, 1); var hexColor = rgbToHex(color.r, color.g, color.b); setState('zigbee.0.group_4.color', hexColor) ; i += 1 / 10000 * speed; if (i > 1) { i = 0; } } }; loop();
und hier wo man 3 Leuchten hat
function HSVtoRGB(h, s, v) { var r, g, b, 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: r = v, g = t, b = p; break; case 1: r = q, g = v, b = p; break; case 2: r = p, g = v, b = t; break; case 3: r = p, g = q, b = v; break; case 4: r = t, g = p, b = v; break; case 5: r = v, g = p, b = q; break; } return { r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255) }; } function componentToHex(c) { var hex = c.toString(16); return hex.length == 1 ? "0" + hex : hex; } function rgbToHex(r, g, b) { return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b); } function sleep(ms) { return new Promise((fnResolve) => { setTimeout(() => fnResolve(), ms); }); } var speed = 150; var refreshRate = 2000; //new color every 10ms var i1 = 0; var i2 = 0.2; var i3 = 0.4; var loop = async function() { while (getState('0_userdata.0.Regenbogen').val == true) { await sleep(refreshRate); var color1 = HSVtoRGB(i1, 1, 1); var hexColor1 = rgbToHex(color1.r, color1.g, color1.b); var color2 = HSVtoRGB(i2, 1, 1); var hexColor2 = rgbToHex(color2.r, color2.g, color2.b); var color3 = HSVtoRGB(i3, 1, 1); var hexColor3 = rgbToHex(color3.r, color3.g, color3.b); setState('zigbee.0.b40ecfd053650000.color', hexColor1) ; setState('zigbee.0.b40ecfd139860000.color', hexColor2) ; setState('zigbee.0.b40ecfd080ef0000.color', hexColor3) ; i1 += 1 / 10000 * speed; if (i1 > 1) { i1 = 0; } i2 += 1 / 10000 * speed; if (i2 > 1) { i2 = 0; } i3 += 1 / 10000 * speed; if (i3 > 1) { i3 = 0; } } }; loop();
-
@leovandavart zumindest bei den meisten Zigbee-Leuchten (leider aktuell nicht bei den Gruppen) geht das ganze viel einfacher:
Es gibt den Datenpunkt hue_move. Wenn man hier eine Zahl (<>0) einträgt dann gibt die Zahl die Geschwindigkeit vor mit der die Farbe gewechselt wird. Das gilt natürlich nur für Geräte die auch per hue/sat eingestellt werden können - das sollten inzwischen aber die meisten sein.Zum anhalten einfach den Wert 0 eintragen.
-
@asgothian meine haben das halt nicht und das ist daraus geworden
-
@asgothian ich habe mal nachgeforscht nach dem hue/sat wert angeblich haben die das aber der zigbee adapter hat die leuchten falsch erkannt
kein plan wie ich ich das richtig hinbekomme oder wie ich das anders programieren kann
-
@leovandavart sagte in Regenbogen Script:
@asgothian ich habe mal nachgeforscht nach dem hue/sat wert angeblich haben die das aber der zigbee adapter hat die leuchten falsch erkannt
kein plan wie ich ich das richtig hinbekomme oder wie ich das anders programieren kann
Du kannst die Lampen in die ausschlussliste eintragen - (eigene Seite in der Adapter Konfiguration), danach den Adapter neu starten und einen ‘State cleanup’ durchführen.
Danach solltest Du die passenden datenpunkte haben.
A.
-
@asgothian hat nix gebracht werden immer noch mit der falschen lampe erkannt
laut zigbee adapter eine e27 leuchtmittel aber es ist eine gu10
-
@leovandavart poste mal die Details zu dem Gerät. (Bezeichnung, zigbee-Model usw.)
A.
-
@asgothian dies wird erkannt in zigbee
es ist eine ewlink gu10 smart
und eigendlich sollte es diese sein https://www.zigbee2mqtt.io/devices/GL-S-007Z.html
kann man nicht probieren eine payload zu senden ? ich muss sagen ich hab davon leider null plan
-
@leovandavart sagte in Regenbogen Script:
@asgothian dies wird erkannt in zigbee
es ist eine ewlink gu10 smart
und eigendlich sollte es diese sein https://www.zigbee2mqtt.io/devices/GL-S-007Z.html
Lt. Der Daten die die Leuchte schickt ist die Zuordnung im Adapter korrekt. Eine Gledopto Leuchte ist es sicher nicht - das sagt auch schon der Hersteller den die Leuchte meldet (eWeLink)
kann man nicht probieren eine payload zu senden ? ich muss sagen ich hab davon leider null plan
Das kannst du auf verschiedene Arten versuchen. Zunächst solltest du schauen ob die Leuchte Hue überhaupt unterstützt:
Zunächst musst du die Leuchte auf Farbe einstellen. Dann kannst du die folgenden Schritte versuchen.
Dazu öffnest du die Konfiguration des Zigbee Adapters (nicht den Tab), und wechselst auf die Entwickler Ansicht.
An Stelle des gelben im Screenshot musst du deine Leuchte auswählen.
An Stelle des roten gehört 1 rein - der Endpunkt der den Cluster unterstützen soll
Dann auf ausführen flicken und 30 s warten ob es im schwarzen Feld eine Meldung gibt.Diese mal posten. Wenn da success steht kannst du versuchen den currentHue auch zu beschreiben (umstellen auf Write, needs value auswählen, wert angeben (0<x<350) und schauen ob du die Farbe anpassen kannst.
Mit dem Ergebnis können wir dann weiter schauen.
A.
P.s. Willkommen im Wahnsinn von TuYa. Gleiche Dinge melden sich unterschiedlich, und unterschiedliche Dinge melden sich gleich.
Nachtrag; TuYa und ich werden keine Freunde, da viele TuYa Geräte Support von zigbee clustern melden, diesen aber unvollständig implementieren und statt dessen am Standard vorbei einen sonder weg gehen. Insbesondere bei leuchten ist das doof.
A. -
@asgothian leider kommt immer
undefined "attributes.map is not a function"
aber die meldung kommt auch bei hue lampen die das untersützen
-
@leovandavart sagte in Regenbogen Script:
@asgothian leider kommt immer
undefined "attributes.map is not a function"
aber die meldung kommt auch bei hue lampen die das untersützen
Mist. Das muss ich mir im Code anschauen - das kann ich aber in den nächsten 6 Wochen wahrscheinlich nicht.
Wie schon oben geschrieben gehe ich davon aus das die Leuchte zwar von außen wie die gledopto als sieht, aber im inneren genau die zigbee Steuereinheit verbaut hat wie die Erwerber Leuchte.
A.
Nachtrag: ein Issue auf github ist erstellt.A.
-
@asgothian okay weiß ich erst mal bescheid