Szybkie porady - Przykład użycia color extractor

Zapraszam do dyskusji na temat:

Konfiguracja podana na filmie:

homeassistant:
  allowlist_external_dirs:
    - /sciezka/lokalna
  allowlist_external_urls:
    - "https://adres_serwera_ha:8123"

color_extractor:

Fragment procesu z filmu: color_extractor.json (2,8 KB)

Przeglądając kod integracji widać, że wykorzystuje ona ColorThief do wyciągania dominującego koloru. Potestowałem na stronie projektu ze statycznymi obrazkami i wydaje się, że ten wyciągnięty kolor dominujący, wygląda w miarę sensownie na ekranie monitora.
Może to kwestia różnic i interpretacji barw przez same żarówki?

1 polubienie

@Marek dzięki za analizę.
Ciekawi mnie tylko ta różnica między kartą playera, a color extractor’em. Bo to całkowicie inne kolory w większości przypadków.

pomożecie, chcę wyciągnąć link do obrazka z dekodera, widzę ze generuje co kilka sekund nowy link , przykładowe poniżej, w nr mam tak ale z tego otrzymuje tylko wiadomosc “on”

{
“data”:
{
“color_extract_url”:“http://192.168.31.215:8123”+msg.data.attributes.entity_picture,
}
}
return msg;

linki generowane z dekodera:

entity_picture: >-
/api/media_player_proxy/media_player.zgemmah92s_local?token=87aee7b0aa01e73751bd9406c1fcaadfbbdfd4c2651e3347666ece05f0a06a7c&cache=795980bc27c7d617

entity_picture: >-
/api/media_player_proxy/media_player.zgemmah92s_local?token=87aee7b0aa01e73751bd9406c1fcaadfbbdfd4c2651e3347666ece05f0a06a7c&cache=f7970882164fcf3b
supported_features: 7613

wiadomosc z nr

2.01.2021, 17:07:02node: a8578305.def0fmsg.payload : string[2]

“on”

@Jaro_bwo nie bardzo rozumiem z czym mam pomóc bo już wyciągnąłeś link

problem w tym ze link zwraca tylko wiadomosc on, a nie link do obrazka…

nie do końca opisałem , linki generowane z dekodera opisane powyżej widze tylko w narzędziach deweloperskich

@Jaro_bwo ale to co w narzędziach dev to samo jest w NR. Zobacz pełny obiekt ustawiając debug na complete message.
Wtedy powinieneś znaleźć wszystkie informacje. W tej chwili wyświetlasz tylko wartość właściwości payload, a tam oprócz tego jest wiele więcej.

fakt:) zatem to problem w dalszej części , próbuje na podstawie tego obrazka przekazać kolor na integracje wled ,…póki co nie włączają się, podejrzewam ze trzeba razem z “on” wysłać jakiś atrybut… masz jakis pomysł? używasz wled?

@Jaro_bwo color_extractor z wywołaniem turn_on przyjmuje wszystkie parametry które normalnie przyjmuje encja typu light. Natomiast wszystkie parametry możesz podać albo w nodzie call_service, w którym wywołujesz color_extractora albo w poprzedzającym go nodzie funkcji.

ok zrobione, drobny błąd w config miałem https natomiast w msg http dlatego nie włączały sie ledy , działa całkiem całkiem prawie ambilight:) no prawie bo obrazki mam co 7 sek i przy szybkich akcjach trochę ma opóźnienie…

@Jaro_bwo gratuluje!!! Nagraj jakiś krótki film jak to wszystko się zmienia i umieść tu to może inni zobaczą i też zrobią :slight_smile:

Nie jestem pewien czy dokładnie zrozumiałem kwestie tych kolorów - rozumiem, że patrząc na okładkę, sam oceniasz, ze LEDy powinny być niebieskie. Po czym HA pokazuje Ci, że światła powinny być żółte, po czym zapala LEDy na żółto?

Jeśli tak jest, to być może błąd jest w interpretacji komunikatu od ColorExtractora - kolor żółty w palecie RGB, to [255, 255, 0], niebieski do [0, 0, 255] - ten zestaw wygląda bardzo podejrzanie, jakby jeden był dopełnieniem drugiego. Możliwe, że ColorExtrator opisuje kolory odwrotnie niż HA i żarówki, można to łatwo rozwiązać odpowiednią funkcją, np.

function swap_color(rgb_color_array) { 
  return rgb_color_array.map(x => 255-x)
} 

console.log(swap_color([255, 255, 0])) 
console.log(swap_color([123, 123, 1])) 
console.log(swap_color([15, 2, 50])) 

Efekt:
image

Alternatywnym, ale dość zbliżonym problemem może być kolejność pól w tablicy kolorów. Jeśli ColorExtractor wysyła je w kolejności R, G, B, a HA rozumie je jako B, G, R, to też mogą dziać się takie cuda niestworzone.

Może warto spróbować pokombinować?

Moją uwagę @artur przykuła karta z regulacją i wyświetlaniem temperatury. Czy było w filmach omawiane jak zrobić taką kartę?? Filmik z ColorExtractor-em bardzo fajny:) Pozdrawiam

@Dodomimo zobacz do tego wątku i polecam oglądnąć filmy z tego wątku i przeczytać dyskusję

@pawelwaz dziekuję za trop. Zabieram się za lekturę:)