Zmiana koloru poprzez nacisnięcie przycisku

Witam.

Ogarniam Home Assistant’a i Node RED’a już od kilku dni. Czas najwyższy spytać na forum bo moje rozwiązania są zazwyczaj dosyć skomplikowane. Był już jeden podobny temat na forum ale bez szczegółów, dlatego chcę dopytać.

Otóż chcę za pomocą jednego przycisku (oferuje pojedyncze, podwójne, potrójne itp. przyciśnięcie) zmienić kolor żarówki. Wiem, że muszę odczytać stan aktualnego koloru za pomocą “current state” ale nie wiem jak to zrobić. Załączam swój kod, który do tej pory zrobiłem. Uprzedzam, że nie jestem jakoś bardzo obeznany z fachową terminologią więc trzeba tłumaczyć jak dziecku :slight_smile:

Ktoś ma jakiś pomysł? Wiem jak reagować na dany “current state” ale nie wiem jak poprawnie ustawić warunek, który ma odczytać wartość atrybutu “rgb_color”.

[{"id":"118dabded9d09c9b","type":"server-state-changed","z":"77d7482ee14af714","name":"Przycisk","server":"596fc9d0.d3e778","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.s1_click","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":80,"y":300,"wires":[["650fdb65c7ccc850"]]},{"id":"650fdb65c7ccc850","type":"switch","z":"77d7482ee14af714","name":"Rodzaj naciśnięcia?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"single","vt":"str"},{"t":"eq","v":"double","vt":"str"},{"t":"eq","v":"triple","vt":"str"},{"t":"eq","v":"quadruple","vt":"str"},{"t":"eq","v":"many","vt":"str"},{"t":"eq","v":"long","vt":"str"},{"t":"eq","v":"long_release","vt":"str"}],"checkall":"true","repair":false,"outputs":7,"x":280,"y":300,"wires":[["3d479135799e3d6f"],["eb4222ec2b25ca1b"],[],[],[],[],[]]},{"id":"eb4222ec2b25ca1b","type":"api-current-state","z":"77d7482ee14af714","name":"Obecny kolor?","server":"596fc9d0.d3e778","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"light.o4","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":500,"y":280,"wires":[["078ecb0af33c0d45"]]},{"id":"078ecb0af33c0d45","type":"switch","z":"77d7482ee14af714","name":"Zmiana loloru","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"\"[255,255,255]\"","vt":"str"},{"t":"eq","v":"\"[0,255,255]\"","vt":"str"},{"t":"eq","v":"\"[255,255,0]\"","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":700,"y":280,"wires":[["bb5edd7d648ab3be"],["102a8e45d1dbe8e3"],["b2046b4856e73f74"]]},{"id":"bb5edd7d648ab3be","type":"api-call-service","z":"77d7482ee14af714","name":"Kolor 1","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o4","data":"{\"rgb_color\":\"[0,255,255]\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":880,"y":240,"wires":[[]]},{"id":"3d479135799e3d6f","type":"api-call-service","z":"77d7482ee14af714","name":"Włącz - biały","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.o4","data":"{\"rgb_color\":[255,255,255]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":490,"y":220,"wires":[[]]},{"id":"102a8e45d1dbe8e3","type":"api-call-service","z":"77d7482ee14af714","name":"Kolor 2","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o4","data":"{\"rgb_color\":\"[255,255,0]\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":880,"y":280,"wires":[[]]},{"id":"b2046b4856e73f74","type":"api-call-service","z":"77d7482ee14af714","name":"Kolor 3","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o4","data":"{\"rgb_color\":\"[255,255,255]\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":880,"y":320,"wires":[[]]},{"id":"596fc9d0.d3e778","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

Na wyjściu noda “Obecny kolor?” dołącz debug. Za jego pomocą dowiesz się jak wygląda payload - co do typy i formy otrzymywanych dany. Na tej podstawie będziesz w stanie ustawić właściwy warunek switcha " Zmiana loloru".
W Twoim flow payload nie zawiera kolorów. Info o kolorach maszw:
R - msg.data.attributes.rgb_color[0]
G - msg.data.attributes.rgb_color[1]
B - msg.data.attributes.rgb_color[2]

Tak zrobiłem ale nie wiem jak się do tego odwołać. Wydaje mi się, że chodzi o “data.attributes.rgb_color”

{"payload":"on","data":{"entity_id":"light.o4","state":"on","attributes":{"min_mireds":153,"max_mireds":588,"effect_list":["Strobe color","Police","Christmas","RGB","Random Loop","Fast Random Loop","LSD","Slowdown","Night Mode","Date Night","Movie","Sunrise","Sunset","Romance","Happy Birthday","Disco","Strobe epilepsy!","Alarm","Police2","WhatsApp","Facebook","Twitter","Home","Candle Flicker","Slow Temp","Stop"],"supported_color_modes":["color_temp","hs","rgb"],"color_mode":"rgb","brightness":255,"hs_color":[0,0],"rgb_color":[255,255,255],"xy_color":[0.323,0.329],"flowing":false,"music_mode":false,"friendly_name":"Światło - Salon TV","supported_features":44},"last_changed":"2021-12-15T21:58:06.311073+00:00","last_updated":"2021-12-15T21:58:06.326152+00:00","context":{"id":"72111af26cb6ed2542f0306ba5fed4c6","parent_id":null,"user_id":"eee3275f3df243269a64334f05ca233f"},"timeSinceChangedMs":4854,"original_state":"on"},"topic":"sensor.s1_click","_msgid":"b55081fb9ed231d3"}

Dokładnie tak … przeczytaj jeszcze raz mój poprzedni wpis.

Hmmm… to, ze są 3 atrybuty określające kolor to już coś. Myslałem, że wszystko zawiera sie jako jeden atrybut: “data.attributes.rgb_color: [255,255,255]”. Jeżeli dobrze kombinuję to powinienem w switchu “Zamiana koloru” powołać się na msg.data.attributes.rgb_color ale nie wiem jak to zrobić :confused:

Próbowałem czegoś takiego ale nie działa:

aaa

data.attributes.rgb_color jest tablicą (array) trzech elementów typu number.
Switch nie ma możliwości porównywania tablic.
Pozostaje sprawdzać kolory osobno, albo przeliczyć na 24 bity K=(((R*256)+G)*256)+Brgb

Czyli muszę mieć 3 switch’e, oddzielne dla każdego atrybutu? Kombinuje dalej ale z marnym skutkiem :slight_smile: Każdemu atrybutowi RGB dałem 2 wyjścia “0” i “255”. Tylko w określonej kombinacji powinny włączyć inny (następny) kolor. Niestety nadal nie działa. Tak jak wspominałem w pierwszym poście, ja się tym pierwszy raz “bawię” więc mogę czegoś od razu nie załapać. Muszę mieć wytłumaczone jak dziecku :slight_smile:

[{"id":"118dabded9d09c9b","type":"server-state-changed","z":"77d7482ee14af714","name":"Przycisk","server":"596fc9d0.d3e778","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.s1_click","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":80,"y":300,"wires":[["650fdb65c7ccc850"]]},{"id":"650fdb65c7ccc850","type":"switch","z":"77d7482ee14af714","name":"Rodzaj naciśnięcia?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"single","vt":"str"},{"t":"eq","v":"double","vt":"str"},{"t":"eq","v":"triple","vt":"str"},{"t":"eq","v":"quadruple","vt":"str"},{"t":"eq","v":"many","vt":"str"},{"t":"eq","v":"long","vt":"str"},{"t":"eq","v":"long_release","vt":"str"}],"checkall":"true","repair":false,"outputs":7,"x":280,"y":300,"wires":[["3d479135799e3d6f"],["eb4222ec2b25ca1b"],[],[],[],[],[]]},{"id":"eb4222ec2b25ca1b","type":"api-current-state","z":"77d7482ee14af714","name":"Obecny kolor?","server":"596fc9d0.d3e778","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"light.o4","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":500,"y":280,"wires":[["078ecb0af33c0d45","da6bf2a446191b0e","7a6915454744d90b"]]},{"id":"078ecb0af33c0d45","type":"switch","z":"77d7482ee14af714","name":"rgb_color[0]","property":"data.attributes.rgb_color[0]","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"255","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":690,"y":220,"wires":[["102a8e45d1dbe8e3"],["b2046b4856e73f74","bb5edd7d648ab3be"]]},{"id":"bb5edd7d648ab3be","type":"api-call-service","z":"77d7482ee14af714","name":"Kolor 1","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o4","data":"{\"rgb_color\":\"[0,255,255]\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":900,"y":240,"wires":[[]]},{"id":"3d479135799e3d6f","type":"api-call-service","z":"77d7482ee14af714","name":"Włącz - biały","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.o4","data":"{\"rgb_color\":[255,255,255]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":490,"y":220,"wires":[[]]},{"id":"102a8e45d1dbe8e3","type":"api-call-service","z":"77d7482ee14af714","name":"Kolor 2","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o4","data":"{\"rgb_color\":\"[255,255,0]\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":900,"y":280,"wires":[[]]},{"id":"b2046b4856e73f74","type":"api-call-service","z":"77d7482ee14af714","name":"Kolor 3","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o4","data":"{\"rgb_color\":\"[255,255,255]\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":900,"y":320,"wires":[[]]},{"id":"da6bf2a446191b0e","type":"switch","z":"77d7482ee14af714","name":"rgb_color[1]","property":"data.attributes.rgb_color[1]","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"255","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":690,"y":280,"wires":[[],["b2046b4856e73f74","102a8e45d1dbe8e3","bb5edd7d648ab3be"]]},{"id":"7a6915454744d90b","type":"switch","z":"77d7482ee14af714","name":"rgb_color[2]","property":"data.attributes.rgb_color[2]","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"255","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":690,"y":340,"wires":[["b2046b4856e73f74"],["102a8e45d1dbe8e3","bb5edd7d648ab3be"]]},{"id":"596fc9d0.d3e778","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

PS. Teraz widzę, że edytowałeś poprzednią wiadomość. Chyba dobrze kombinuję ale muszę jeszcze trochę nad tym posiedzieć.

Dobrze kombinujesz, ale przesadziłeś :slight_smile: … patrz wyżej.

Niestety na tym forum obowiązują takie zasady - musisz być czujny i sam ogarniać ten bałagan.

1 Like

Ale docelowo chcę mieć więcej kombinacji pomiędzy R, G i B. Może 10 różnych kolorów docelowych, które muszą się zmieniać po kolei. Dla przykładu użyłem tylko trzech, żeby nie komplikować sprawy.

Ja w kolorach mam już gotowy pełny atrybut RGB w formacie {“rgb_color”:"[0,255,255]"} więc nie do końca rozumiem jak jeden switch (np. R=0?) może decydować o tym, który kolor włączyć.

To zmienia postać, nie było wcześniej o tym mowy - wymaga to innego podejścia. Musisz zrobić sobie licznik do 10 i na tej podstawie przełączać. Nie potrzebujesz wtedy znać stanu obecnego RGB a każde kliknięcie zwiekszy licznik o 1… do 10 i następnie znów 0. O tym jednak jutro.

Gdzieś już w jakimś przykładzie widziałem taki licznik ale miałem nadzieję, że da się to łatwiej ogarnąć.

Już jest jutro :slight_smile: A tak serio to dzięki za pomoc, postaram się jeszcze coś z rana poszukać, może znajdę ten przykład z licznikiem i ogarnę jak go zaimplementować.

Póki co mam to rozwiązane inaczej. Klikam podwójnie i uruchamiam pętle ze zmianą kolorów co 2 sekundy. Pojedyncze naciśnięcie uruchamia node API, który zmienia ręcznie atrybuty przycisku i dzięki temu blokuje dalszą zmianę kolorów. Niestety ma to swoją jedną wadę. Jeżeli nacisnę dwukrotnie 2 razy z rzędu, kolory zaczynają się zmieniać jak szalone bo pętla idzie podwójnie. Dlatego kombinuję jak to obejść.
Załączam screen jako ciekawostkę :slight_smile:

Pewnie znajdziesz podręcznikową aplikację licznika modulo(n).
W tym przypadku można upiec dwie “pieczenie” na raz.

Pięknie utkany przepływ Ci się udał - taki nie za łatwy :slight_smile: , miałby jednak uwagi:

  1. Unikaj tworzenia pętli
  2. Unikaj delay

Pozwoliłem sobie zmienić tylko fragment przepływu. Starałem się to zrobić nie pisząc nawet linijki kodu.
Przeanalizuj i postaraj się zrozumieć działanie. Dowiesz się jak używać zmiennych kontekstowych.
Umyślnie nie zrobiłem gotowca i pozostawiłem do dokończenia sterowanie.

Z niewiadomych przyczyn nie mogę dołączyć plików, więc wyślę (spróbuję) Ci na priv.

Niestety na priv też nie da się załączyć plików.
Jeśli Ci zależy do możesz dać inny namiar lub czekać.
flows (7).json (7,2 KB)

Dobra, udało się. Znalazłem gdzieś trochę inny sposób na implementację licznika, użyłem noda “function”. Jeszcze raz: wielkie dzięki za pomoc!!!

Załączam kod i screen z workflow dla potomnych.

[{"id":"118dabded9d09c9b","type":"server-state-changed","z":"77d7482ee14af714","name":"Przycisk","server":"596fc9d0.d3e778","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.s1_click","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":80,"y":220,"wires":[["8b8c1b02326d7ae1"]]},{"id":"559658ca884fc81c","type":"switch","z":"77d7482ee14af714","name":"Zmiana koloru","property":"counter","propertyType":"flow","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"}],"checkall":"true","repair":false,"outputs":5,"x":680,"y":220,"wires":[["d6070437efa8b590"],["9f2cb7e9eb72ba74"],["495ab84327a5f6d4"],["2e27f7160c2c6f1e"],["c4f15e41c5eaae3c","f21c1ede80a2473e"]]},{"id":"5d1593a910b98449","type":"function","z":"77d7482ee14af714","name":"Licznik","func":"var counter = flow.get(\"counter\") || 0\ncounter ++\nflow.set(\"counter\", counter) \nmsg.payload = counter\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":490,"y":220,"wires":[["559658ca884fc81c"]]},{"id":"c4f15e41c5eaae3c","type":"change","z":"77d7482ee14af714","name":"Reset licznika","rules":[{"t":"set","p":"counter","pt":"flow","to":"-1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":340,"wires":[[]]},{"id":"8b8c1b02326d7ae1","type":"switch","z":"77d7482ee14af714","name":"Rodzaj kliknięcia","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"single","vt":"str"},{"t":"eq","v":"double","vt":"str"},{"t":"eq","v":"triple","vt":"str"},{"t":"eq","v":"quadruple","vt":"str"},{"t":"eq","v":"many","vt":"str"},{"t":"eq","v":"long","vt":"str"},{"t":"eq","v":"long_release","vt":"str"}],"checkall":"true","repair":false,"outputs":7,"x":270,"y":220,"wires":[["0928759313666fea"],["5d1593a910b98449"],[],[],[],[],[]]},{"id":"0928759313666fea","type":"api-call-service","z":"77d7482ee14af714","name":"On/Off","server":"480a9002.9b992","version":3,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.o5_ambilight","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":490,"y":160,"wires":[[]]},{"id":"d6070437efa8b590","type":"api-call-service","z":"77d7482ee14af714","name":"Color 0,255,0","server":"596fc9d0.d3e778","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o5_ambilight","data":"{\"rgb_color\":[0,255,0]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":940,"y":140,"wires":[[]]},{"id":"9f2cb7e9eb72ba74","type":"api-call-service","z":"77d7482ee14af714","name":"Color 0,255,255","server":"6e5c65cb.c3223c","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o5_ambilight","data":"{\"rgb_color\":[0,255,255]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":940,"y":180,"wires":[[]]},{"id":"495ab84327a5f6d4","type":"api-call-service","z":"77d7482ee14af714","name":"Color 0,0,255","server":"6e5c65cb.c3223c","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o5_ambilight","data":"{\"rgb_color\":[0,0,255]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":940,"y":220,"wires":[[]]},{"id":"2e27f7160c2c6f1e","type":"api-call-service","z":"77d7482ee14af714","name":"Color 255,0,255","server":"6e5c65cb.c3223c","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o5_ambilight","data":"{\"rgb_color\":[255,0,255]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":940,"y":260,"wires":[[]]},{"id":"f21c1ede80a2473e","type":"api-call-service","z":"77d7482ee14af714","name":"Color 255,255,0","server":"6e5c65cb.c3223c","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.o5_ambilight","data":"{\"rgb_color\":[255,255,0]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":940,"y":300,"wires":[[]]},{"id":"596fc9d0.d3e778","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30},{"id":"480a9002.9b992","type":"server","name":"Home Assistant","version":2,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30},{"id":"6e5c65cb.c3223c","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":false,"heartbeat":false,"heartbeatInterval":30}]

PS.

Pięknie utkany przepływ Ci się udał - taki nie za łatwy :slight_smile:

Właśnie dlatego chciałem go uprościć :wink: