Kolor ikon zależnie od stanu

Sorry za odkopywanie starego tematu ale nie zmienia mi koloru ikon tak jak bym chciał.

style: |
  :host {
    --paper-item-icon-color:
     {% if states('sensor.lumi_lumi_weather_temperature')|int >= 20 %}
       red
     {% elif states('sensor.lumi_lumi_weather_temperature')|int >= 21 %}
       green
     {% elif states('sensor.lumi_lumi_weather_temperature')|int >= 17 %}
       grey
     {% else %} grey
     {% endif %}
     ;
   }

Przy 21 stopniach powinno zmienić kolor a nie zmienia ?

Po pierwsze od grudniowej aktualizacji musisz określić wartość domyślną miedzy innymi funkcji

int

po drugie masz zdublowany wpis “grey”

po trzecie warunek:

{% else %}

nie jest potrzebny.

@robert_00 tak jak @rafkan piszę ustawiasz wartość domyślną dla “int” dodatkowo wyrzucasz “else” a dodatkowo kolejność.

style: |
  :host {
    --paper-item-icon-color:
     {% if states('sensor.lumi_lumi_weather_temperature')|int(0) >= 21 %}
       red
     {% elif states('sensor.lumi_lumi_weather_temperature')|int(0) >= 20 %}
       green
     {% elif states('sensor.lumi_lumi_weather_temperature')|int(0) >= 17 %}
       grey
     {% endif %}
     ;
   }
2 polubienia

Cześć
Podpowiecie jak wpisać kod pod encją:

type: glance
entities:
  - entity: device_tracker.desktop_3sivm65state_color: false
show_state: false
title: SIEĆ DOMOWA - podłączone urządzenia

aby ikona zmieniała kolor - czerwony dla odłączonego urządzenia, zielony dla podłączonego.
Encja ma wartość: “home” lub “not_home”

Tutaj masz przykład:

  • Klucz “entities.0.card_mod” nie jest oczekiwany lub nie jest obsługiwany przez edytor wizualny.
  • Wprowadzona wartość dla “entities.0” nie jest obsługiwana przez edytor wizualny. Obsługujemy (string), a otrzymaliśmy ({“entity”:“device_tracker.desktop_3sivm65”,“card_mod”:{“style”:":host {\n --card-mod-icon: \n {% if is_state(’ device_tracker.desktop_3sivm65’, ‘home’) %} \n mdi:lan-connect;\n {% else %}\n mdi:lan-disconnect;\n {% endif %}\n --card-mod-icon-color:\n {% if is_state(’ device_tracker.desktop_3sivm65’, ‘not_home’) %}\n green;\n {% else %}\n red;\n {% endif %}\n}\n"}}).

Dodatek card-mod masz zainstalowany?

Tak - dla jednej ikony zadziałało… a jak zrobić dla całej sekcji ikon? (pod każdą encją osobno taki cały wpis?

type: glance
entities:
  - entity: device_tracker.desktop_3sivm65
    state_color: false
    card_mod:
      style: |
        :host {
         --card-mod-icon: 
           {% if is_state(' device_tracker.desktop_3sivm65', 'home') %} 
             mdi:lan-connect;
           {% else %}
             mdi:lan-disconnect;
           {% endif %}
         --card-mod-icon-color:
           {% if is_state(' device_tracker.desktop_3sivm65', 'not_home') %}
             green;
           {% else %}
             red;
           {% endif %}
        }
    secondary_info: last-changed
  - entity: device_tracker.leon_pc
  - entity: device_tracker.lgwebostv
state_color: false
show_state: false
title: SIEĆ DOMOWA - podłączone urządzenia

Poczytaj dokumentację card-mod czy jest możliwość dla sekcji ikon.

Da się zmienić kolor ikon dla sekcji - ale niestety coś z tym kodem nie tak chyba - nie bierze pod uwagę stanu encji tylko przy kodzie jak wyżej wszystkie ikony robi czerwone i z ikoną “rozłączone” (pomimo że urządzenie połączone)…

Masz spację nie w tym miejscu, więc zawsze warunek nie jest spełniony (z powodu błędu składni).
Wklejając kod stosuj linijkę z 3 odwrotnymi apostrofami ``` (znak ` spod klawisza tyldy) - zobacz jak zmodyfikowałem posty powyżej.

Dzięki serdeczne za pomoc - temat ogarnięty.

Chciałem u siebie zmienić kolor ikon, tylko podczas sprawdzania konfiguracji wyskakują mi błędy: Integration type, style, entities not found.
Wiem, że błahostka, ale jestem początkujący.
Prośba o pomoc jak dodać te integracje.

Musisz mieć zainstalowany HACS i to z niego instalujesz potrzebne Integracje, Lovelace, Template.

1 polubienie

Pokaż, z jakich integracji chcesz korzystać, jakich encji brakuje…Pokaż też kod zmiany koloru ikony.
Jeśli dopiero zaczynasz zabawę i jeszcze nic nie masz, to najłatwiej ogarniesz ten temat instalując button-card z poziomu HACS, jak napisał @artpc Tutaj masz tutorial do HACS, a tutaj masz kilkuodcinkowy (z uwagi na ogrom możliwości tej integracji) tutorial do button-card.

# Czujniki tymczasowe
sensor:
  - platform: template
    sensors:
# Czujniki Rolety
       mk_roleta_kuchnia:
          value_template: >-
            {% if is_state('binary_sensor.mk_rol_kuchnia', 'on')  %}
            otwarta
            {% else %}
            zamknięta
            {% endif  %}
          icon_template: >-
            {% if is_state('binary_sensor.mk_rol_kuchnia', 'on') %} 
             mdi:window-shutter-open
            {% else %}
             mdi:window-shutter
            {% endif %}
            entities:
              - entity: mk_roleta_kuchnia:
            style: |
              :host {
                --paper-item-icon-color:
                  {% if is_state('mk_roleta_kuchnia:', 'on') %} red {% else %} green {% endif %};
              }
             state_color: false
             type: glance

Edit:

Taki kod wrzuciłem. Po tej operacji - zniknęła ikona rolety. Kolory też się nie zmieniają.

A gdzie ten kod wrzuciłeś ? to konfiguracja sensora czy karty ? Jeśli to karta, masz kilka postów wyżej przykład, skopiuj i podstaw swoje encje.

Ta notacja nie jest już wspierana od kilku wersji wstecz.
Templatki pisze się teraz w pliku configuration.yaml przy użyciu dyrektywy template:. Żeby mieć porządek w plikach, możesz zrobić np. tak:

template: !include templates.yaml

a templatki sensorów umieścić w pliku templates.yaml:

- sensors:
...
  - name: mk_roleta_kuchnia
    state: {% if is_state('binary_sensor.mk_rol_kuchnia', 'on') %} otwarta {% else %} zamknięta {% endif %}

Następnie w kodzie karty (np. button-card) odwołaj się do stanu sensora, w zależności od którego ustawisz kolory ikony i dodatkowo np. jej animację, którą również możesz uzależnić od stanu sensora:

type: custom:button-card
entity: sensor.mk_roleta_kuchnia
styles:
  icon:
    - color: [[[ if (entity.state == "zamknięta") return 'red' else return 'blue' ]]]
    - animation: # tutaj definicja animacji, np.: blink 1s linear infinite
...

Wkleiłem w konfiguracji karty.
Teraz kod wygląda tak- przy takiej konfiguracji zmieniają się kolory wszystkich encji zamiast pojedynczej.

Zmieniając nazwę karty na custom:button-card- pojawia się błąd.

type: entities
entities:
  - entity: sensor.mk_roleta_pok_gosc
    name: Roleta P Gościnny
  - entity: sensor.mk_roleta_pok_dziecka1
    name: Roleta Dziecka 1
  - entity: sensor.mk_roleta_pok_dziecka2
    name: Roleta Dziecka 2
  - entity: sensor.mk_roleta_lazienka
    name: Roleta Łazienka
  - entity: sensor.mk_roleta_sypialnia
    name: Roleta Sypialnia
  - entity: sensor.mk_roleta_taras
    name: Roleta Taras
  - entity: sensor.mk_roleta_kuchnia
    name: Roleta Kuchnia
state_color: true
title: Rolety
show_header_toggle: false
card_mod:
  style: |
    :host {
        --paper-item-icon-color:
         {% if is_state('binary_sensor.mk_rol_kuchnia', 'off') %}
               orange
         {% else %}
               blue
         {% endif %}
             ;
          }

A masz zainstalowaną tę integrację? Nie możesz bezkarnie zmieniać samego typu karty bez adaptacji jej kodu, bo każda z nich ma swoją unikalną notację syntaktyczną i aby z niej skorzystać, musisz mieć ją zainstalowaną i “zintegrowaną” z HA. Dlatego nazywa się to integracją.

Przy okazji: zmieniałeś nie nazwę karty tylko jej typ. Nazwę karty zwykle definiuje się dyrektywą title: (u Ciebie: Rolety) a nie type: (u Ciebie: entities).

2 polubienia