HomeAssistant - NodeRed - zmiana koloru ikon w HA inicjowana z NR

Bardzo proszę o pomoc, bo trafiłem na problem. Powiedzmy że w HomeAssistant posiadam jakąś Karte, czy też Button z wizerunkiem dowolnej ikony. Natomiast w node-red mam nod-a który puszcza mi ping na server i w przypadku gdy jest odpowiedź to ma ustalić kolor zielony ikony w HA a kiedy brak odpowiedzi na ping to kolor inny. Mam z tym problem nie wiem jakim nod-em wysłać polecenie zmiany koloru lub wyglądu ikony w HA np. w wybranym Button-ie który nie wykonuje żadnej encji tylko wyświetla ikonę i ma reagować zmianą koloru na informacje z Node-Red. Myślę że jakoś zrozumiale opisałem problem :slight_smile: Proszę o jakiś przykład jak to zrobić z góry dziękuje.

Ustawiasz sobie albo pomocnika w HA albo w NR entity do HA i zapisujesz wartość pinga. A w HA na podstawie wartości ustawiasz sobie kolor. Nawet jak dobrze pokombinujesz, to możesz mieć różne kolory w różnym zakresie pinga.

A coś bliżej ? np. ustawiajac pomocnika, to powinienem wybrać w moim przypadku przycisk, czy np. przełącznik ? Jakim nodem przesłac do tego pomocnika w HA informacje z NR. mozesz podać dla pomocnika jakiś kod w yaml ? i nazwe noda którego użyć ?

W NR wynik pinga, bo rozumiem ze to masz zrobione na jakimś juz nodzie, dajesz np. do czegos takiego:
image
Ten nod tworzy ci sam encje w HA o odpowiedniej wartości. Zależy jak go skonfigurujesz. U mnie to tak:


I mam encje w HA net_ping o wartości w ms

Merytorycznie juz działa to jak chcę ale jeszcze jeden drobiazg mnie irytuje, czy da się zmienić też kolor ikony na karcie z listą encji z poziomu NR. Moge zmienić rodzaj ikony itd. ale w zaden sposób nie mogę zmienić koloru ikony, a chciałbym w stanie serwera ON była zielona.

jeżeli zmienna typu BOOL wystarczy

state_color: true

jeżeli sensor i chcesz kontrolować kolor to już wyższa szkoła jazdy i template.

Osobiście stosuję do takich zabaw custom:button-card często w połączeniu z auto-entities:
image
wtedy można się dowolnie bawić stylami:

    styles:
      icon:
        - color: |
            [[[ if (entity.state == 'off') return 'red';
                if (entity.state == 'on') return 'green';
                else return 'grey';]]]
      icon:
        - color: |
            [[[ if (entity.state >= variables.level_warning) return 'green'
                if (entity.state >= variables.level_danger) return 'rgba(255, 214, 10, 1)'
                else return 'red'; ]]]