Karta `button-card` - jak uzależnić kolor ikony na przycisku od skutku wywołania akcji `call_service`

Zaadoptowałem fragment Twojego kodu na kartę button-card, niestety również bez sukcesu. Wciąż wywala ten sam błąd… Wnioskuję z tego, że moja pierwotna składnia jest OK co do zasady, ale z jakiegoś powodu sama karta nie przetwarza jej poprawnie… lub po prostu jej nie rozumie.

Ale przyszedł mi do głowy pewien workaround w postaci zdefiniowania templatki w następujący sposób:

    - name: Dostępność Philips
      state: "{{ states('media_player.philips_tam8905') is defined }}"

W kodzie karty button-card, zamiast sprawdzać stan media_player.philips_tam8905 (kóra w pewnych sytuacjach może w ogóle nie istnieć), będę chciał sprawdzać stan sensora sensor.dostepnosc_philips, który, dzięki templatce, powinien ZAWSZE istnieć i przyjmować jedną z dwóch wartości logicznych: true lub false.
Nie wiem jeszcze tylko, czy ten pomysł się sprawdzi…

…Z ostatniej chwili: TADAAAM! Mój pomysł zadziałał! Karta poprawnie reaguje na dostępność media_player’a i wyświetla jego ikonę dokładnie w kolorach, jakie zadałem i w warunkach, jakie określiłem w swoim pierwotnym kodzie. Ostatecznie wygląda on tak:

icon:
  - color: |
      [[[
        if (states["sensor.dostepnosc_philips"].state == 'True')
         {
           if (states["media_player.philips_tam8905"].state == 'playing') return 'lime'
           else return 'dimgray'
         }
        else return 'var(--primary-background-color)'
      ]]]

  - animation: |
      [[[
        if (states["sensor.dostepnosc_philips"].state == 'True')
         {
           if (states["media_player.philips_tam8905"].state == 'playing') return 'rotating 2.5s linear infinite'
           else return 'null'
         }
        else return 'null'
      ]]]

Gdy player jest dostępny => jeśli odtwarza - kolor ikony ‘lime’ z obracającą się ikoną, lub jeśli nie odtwarza - kolor ‘dimgray’ z ikoną nieruchomą, w zależności od funkcji realizowanej w danej chwili przez media_player’a;
Gdy player jest niedostępny => ikona staje się niewidoczna.

Pomysł do wykorzystania!

1 polubienie