Konwersja barw RGB <=> XY ...czyli gra w kolory

Posiadam 2 rodzaje kolorowego oświetlenia: typowe żarówki SmartLED Sonoff B-05 (WiFi) oraz sterowniki Zigbee do taśm RGB LED.
Do kodowania barw Sonoff używa standardu RGB (rgb_color można odczytać z atrybutów żarówki), ale sterownik Zigbee używa do tego celu jedynie standardu XY.
Moim zamysłem jest ustawianie barwy dla sterownika na podstawie barwy żarówki - i odwrotnie (czyli określam kolor i moc tylko dla jednego źródła światła, a wszystkie pozostałe ustawiają się na tę samą barwę i natężenie. Oczywistym jest, że należy:

  • odczytać parametry barwy światła źródłowego (np. dla Sonoff: state_attr('light.salon_okno', 'rgb_color')
  • dokonać konwersji tych parametrów na format XY
  • wywołać usługę light.turn_on z odpowiednio skonwertowanymi w poprzednim kroku parametrami XY dla sterownika taśmy LED

Sama konwersja nie wydaje się trudna, bo można to chyba ogarnąć pisząc odpowiednią templatkę. Gotowy kod javascript na samą konwersję znalazłem np. tutaj, ale do tego potrzebne są jakieś dodatkowe biblioteki Javascript (obecnie niedostępne):

Nie wiem, czy taka konwersja jest JEDYNYM sposobem na osiągnięcie celu. Może istnieją jakieś inne gotowe rozwiązania? W repozytorium HACS niczego takiego nie znalazłem…

Czy może ktoś z Was miał podobne potrzeby i ma to jakoś ogarnięte? Proszę, podzielcie się wiedzą…

Może lepiej zgrupować światła poprzez pomocnika grupa. Wówczas sterujesz różnymi źródłami światła jak jedną encją.

Jasne, tylko nadal pozostaje problem przekazywania między urządzeniami informacji o barwach zakodowanych w RÓŻNYCH standardach. Wydaje się, że konwersja między standardami jest nie do ominięcia…

Spróbować nie zaszkodzi.

Nie na temat, bo nie chodzi o XY, tylko o dołożenie temperatury barwowej do świateł które tego nie obsługują, ale może komuś się przyda (używam tego do Hue Bloom, które obsługuje tylko RGB)

A konwersję między XY a RGB chyba HA ogarnia wewnętrznie (ale pewny nie jestem, jakkolwiek kiedyś eksperymentowałem z Emulated Hue i w zasadzie wszystko działo się automagicznie).

https://github.com/mrdoob/three.js/blob/master/src/math/Matrix3.js

https://github.com/usolved/cie-rgb-converter/blob/master/cie_rgb_converter.js#L51

@artpc , czy mógłbyś zdradzić kilka szczegółów, jak korzystać z tych konwerterów?
Czy trzeba je doinstalować do HA? Jak? Jak z poziomu HA wywoływać funkcje w nich zawarte?