Karty wizualizacji pogody lub alertów pogodowych

Poniżej print screeny z integracji z Burze.dzis.net: czy jest możliwość dopasowania tego do istniejącej czcionki, rozmiaru karty bo wygląda to trochę “za duże”:

albo inny pomysł jak zrobić coś podobnego z dodatkowymi kolejnymi atrybutami np. do kiedy obowiązuje ostrzeżenie? Sorry ale w kwestii wizualizacji danych jest zielony jak pietruszka, po prostu tego nie czuję a jak wiadomo, że oprócz tego, że działa musi jeszcze ładnie wyglądać :wink:

Cześć! Jestem twórcą wyżej wymienionego projektu MeteoalarmCard. Aktualnie karta nie wspiera żadnych customizacji, nie możesz edytować rozmiaru czcionki ani innych typowo wglądowych rzeczy.

To że nie zdecydowałem się na wyświetlanie innych atrybutów to zabieg celowy. Zamysłem projektu jest mała, prosta i minimalistyczna karta. Jakiekolwiek fajerwerki wizualne są ograniczone do minimum.

Jeśli macie jakieś problemy albo pytania to możecie śmiało pisac tutaj albo zrobić nowy issue.

4 polubienia

Nie używając żadnej niestandardowej karty, posługując się kartą “entity-filter”, która jest integralną częścią HA i odpowiednio modyfikując jej wygląd można uzyskać coś takiego:

burze

1 polubienie

Ciekawie wygląda. Sporo danych. Mógłbyś podzielić się kodem tej karty?

Ładnie to wygląda, pytanie czy w przypadku poziomu 2 (level=2) tło będzie czerwone tylko dla wybranej encji? Pytam bo dzisiaj miałem taki przypadek: temperatura poziom=1, burza poziom=2. Należałoby także ładnie podzielić string: deszcz od 41 do 70 mm/wiatr w porywach od 91 do 110 km/h/grad od 2 do 5 cm na osobne linie:

deszcz od 41 do 70 mm
wiatr w porywach od 91 do 110 km/h
grad od 2 do 5 cm

Jak dodać kolejny argument to (do kiedy)?

Kod karty wygląda następująco:

type: conditional
conditions:
  - entity: binary_sensor.grupa_burze_dzis_net
    state: 'on'
card:
  type: entity-filter
  entities:
    - entity: binary_sensor.burze_dzis_net_heat_warning
      type: attribute
      attribute: description
      secondary_info: true
      style:
        hui-generic-entity-row:
          $: |
            .text-content {
              font-size: 14px;
            }
            .info .secondary {
              color: black;
            }
            .info .secondary::before {
              content: "Poziom: ";
              color: white;
              font-size: 12px;
            }
            .info .secondary::after {
              content: "{{state_attr(config.entity,'level')}}";
              color: black;
              font-size: 12px;
            }
        style: |
          :host {
            --paper-item-icon-color: yellow;
          }
    - entity: binary_sensor.burze_dzis_net_frost_warning
      type: attribute
      attribute: description
      secondary_info: true
      style:
        hui-generic-entity-row:
          $: |
            .text-content {
              font-size: 14px;
            }
            .info .secondary {
              color: black;
            }
            .info .secondary::before {
              content: "Poziom: ";
              color: white;
              font-size: 12px;
            }
            .info .secondary::after {
              content: "{{state_attr(config.entity,'level')}}";
              color: black;
              font-size: 12px;
            }
        style: |
          :host {
            --paper-item-icon-color: white;
          }
    - entity: binary_sensor.burze_dzis_net_wind_warning
      type: attribute
      attribute: description
      secondary_info: true
      style:
        hui-generic-entity-row:
          $: |
            .text-content {
              font-size: 14px;
            }
            .info .secondary {
              color: black;
            }
            .info .secondary::before {
              content: "Poziom: ";
              color: white;
              font-size: 12px;
            }
            .info .secondary::after {
              content: "{{state_attr(config.entity,'level')}}";
              color: black;
              font-size: 12px;
            }
        style: |
          :host {
            --paper-item-icon-color: grey;
          }
    - entity: binary_sensor.burze_dzis_net_precipitation_warning
      type: attribute
      attribute: description
      secondary_info: true
      style:
        hui-generic-entity-row:
          $: |
            .text-content {
              font-size: 14px;
            }
            .info .secondary {
              color: black;
            }
            .info .secondary::before {
              content: "Poziom: ";
              color: white;
              font-size: 12px;
            }
            .info .secondary::after {
              content: "{{state_attr(config.entity,'level')}}";
              color: black;
              font-size: 12px;
            }
        style: |
          :host {
            --paper-item-icon-color: #00afff;
          }
    - entity: binary_sensor.burze_dzis_net_storm_warning
      type: attribute
      attribute: description
      secondary_info: true
      style:
        hui-generic-entity-row:
          $: |
            .text-content {
              font-size: 14px;
            }
            .info .secondary {
              color: black;
            }
            .info .secondary::before {
              content: "Poziom: ";
              color: white;
              font-size: 12px;
            }
            .info .secondary::after {
              content: "{{state_attr(config.entity,'level')}}";
              color: black;
              font-size: 12px;
            }
        style: |
          :host {
            --paper-item-icon-color: #00afff;
          }
    - entity: binary_sensor.burze_dzis_net_storms_nearby
      type: attribute
      attribute: distance
      secondary_info: true
      style:
        hui-generic-entity-row:
          $: |
            .text-content {
              font-size: 14px;
            }
            .text-content.pointer:not(.info)::before {
              content: "Odległość:";
              color: white;
            }
            .info .secondary {
              color: black;
            }
            .info .secondary::before {
              content: "Kierunek: ";
              color: white;
              font-size: 12px;
            }
            .info .secondary::after {
              content: "{{state_attr(config.entity,'direction')}}";
              color: black;
              font-size: 12px;
            }
        style: |
          :host {
            --paper-item-icon-color: #00afff;
          }
    - entity: binary_sensor.burze_dzis_net_tornado_warning
      type: attribute
      attribute: description
      secondary_info: true
      style:
        hui-generic-entity-row:
          $: |
            .text-content {
              font-size: 14px;
            }
            .info .secondary {
              color: black;
            }
            .info .secondary::before {
              content: "Poziom: ";
              color: white;
              font-size: 12px;
            }
            .info .secondary::after {
              content: "{{state_attr(config.entity,'level')}}";
              color: black;
              font-size: 12px;
            }
        style: |
          :host {
            --paper-item-icon-color: black;
          }
  state_filter:
    - 'on'
  card:
    type: entities
    title: Burze.dziś.net
    card_mod:
      style: |
        ha-card .card-header {
          font-size: 25px;
          color: white;
        }
        ha-card {
          color: black;
          --mdc-icon-size: 40px;
          font-size: 18px;
          background: #ffd200;
        }

Ponieważ funkcjonuje jako karta warunkowa więc wymaga wyzwalacza, którym tu jest sensor binarny utworzony z grupy wszystkich encji integracji burze.

Jeżeli chodzi o dodawanie informacji z kolejnych atrybutów encji to raczej mija się to z celem bo powoduje, że karta, która i tak już jest mało czytelna, staje się zupełnie nieczytelna. I wynika to niestety głównie z niepotrzebnego natłoku informacji jaki jest dostarczany przez integrację burze. Aczkolwiek jak ktoś chce to może sobie w prosty sposób kartę dopasować do własnych potrzeb. Ja obecnie myślę nad czymś zupełnie innym.

1 polubienie

Jak utworzyć ten wyzwalacz jako sensor?

Np. w pliku groups.yaml coś takiego (nie wiem czy dokładnie tak ma to wyglądać wywnioskowałem z kodu karty), oczywiście ten plik musi być w include (ewentualnie można to też zrobić w pliku configuration.yaml bezpośrednio)

grupa_burze_dzis_net:
  name: Burze.dzis.net - Ostrzeżenie
  entities:
    - binary_sensor.burze_dzis_net_storms_nearby
    - binary_sensor.burze_dzis_net_storm_warning
    - binary_sensor.burze_dzis_net_precipitation_warning
    - binary_sensor.burze_dzis_net_wind_warning
    - binary_sensor.burze_dzis_net_tornado_warning
    - binary_sensor.burze_dzis_net_heat_warning
    - binary_sensor.burze_dzis_net_frost_warning
  all: false
  icon: mdi:alert

Dokumentacja, bo powyższy yaml jest w przestarzałym stylu (jakkolwiek działa)

Grupy teraz można dodawać w GUI

Zrobiłem w pomocnikach, też zadziałało

Edit:

Chcę zrobić własną kartę pogody (jak w załączniku) na potrzeby nawadniania ogrodu.
Potrzebuję zwizualizować opady deszczu w nadchodzących dniach i dlatego potrzebuję wyciągnąć wartości o opadach z sensora pogodowego w HA
Rozumiem, że do tego przyda mi się entity-filter
O ile proste wartości wiem jak wyciągnąć o tyle nie wiem jak wyciągnąć wartość “precipitation” która pojawia się wielokrotnie dla poszczególnych dni. Jak wyciągnąć dla jutra, pojutrza i tak do końca?
Tak sobie w międzyczasie pomyślałem , że może jest możliwość wyciągnięcia wartości dla pierwszego występującego słowa precipitation, dla drugiego występującego precipitation i tak dalej ale czy tak można?
Oto przykład mojego sensora weather.dom"

temperature: 9.2
temperature_unit: °C
humidity: 73
pressure: 1009.5
pressure_unit: hPa
wind_bearing: 315.4
wind_speed: 16.2
wind_speed_unit: km/h
visibility_unit: km
precipitation_unit: mm
forecast:
  - condition: partlycloudy
    datetime: '2023-04-26T10:00:00+00:00'
    wind_bearing: 295.5
    temperature: 9.7
    templow: 3.7
    wind_speed: 24.5
    precipitation: 0.2
  - condition: rainy
    datetime: '2023-04-27T10:00:00+00:00'
    wind_bearing: 284.1
    temperature: 10.4
    templow: 1.9
    wind_speed: 19.4
    precipitation: 0.6
  - condition: cloudy
    datetime: '2023-04-28T10:00:00+00:00'
    wind_bearing: 173.9
    temperature: 14.4
    templow: 2.6
    wind_speed: 14.8
    precipitation: 0.1
  - condition: cloudy
    datetime: '2023-04-29T10:00:00+00:00'
    wind_bearing: 292.8
    temperature: 14
    templow: 8.9
    wind_speed: 19.8
    precipitation: 5.3
  - condition: cloudy
    datetime: '2023-04-30T10:00:00+00:00'
    wind_bearing: 90.4
    temperature: 16.2
    templow: 10.2
    wind_speed: 11.2
    precipitation: 0
attribution: >-
  Weather forecast from met.no, delivered by the Norwegian Meteorological
  Institute.
friendly_name: Forecast Dom

Z góry dzięki za poświęcony czas

Edit:

Pomału buduję szablon. Główny problem wyciągania danych pozostaje ale szablon już istnieje :slight_smile:

Jeśli tylko do wykresu możesz podeprzeć się tym postem.

Jeśli chcesz wartość do automatyzacji możesz zrobić sensor przez template.
Pobaw się w Narzędzia deweloperskie > Szablon
{{ state_attr('weather.dom', 'forecast')[1].precipitation }}

Cześć, mam problem z tym “szablonem” nie pokazuje mi się secendary_info a przez to nie działa styl z hui-generic-entity-row

Od jakiegoś czasu karta z MeteoalarmCard z integracją Burze.dzis.net wyświetla komunikat:
image
Sensory z Burze.dzis.net są dostępne w HA dlatego nie wiem z czego może wynikać ten komunikat.

nowa wersja burze a stara metealarm, którego autor nie ma czasu rozwijać

Nie wiem, u mnie działa z opisanym gdzieś na forum obejściem (zmiana nazw encji na takie jak w karcie poniżej)

type: custom:meteoalarm-card
override_headline: true
hide_when_no_warning: true
integration: burze_dzis_net
entities:
  - entity: binary_sensor.burze_dzis_net_ostrzezenie_burza_storm_warning
  - entity: binary_sensor.burze_dzis_net_ostrzezenie_opad_precipitation_warning
  - entity: binary_sensor.burze_dzis_net_ostrzezenie_traba_tornado_warning
  - entity: binary_sensor.burze_dzis_net_ostrzezenie_wiatr_wind_warning
  - entity: binary_sensor.burze_dzis_net_ostrzezenie_upal_heat_warning
  - entity: binary_sensor.burze_dzis_net_ostrzezenie_mroz_frost_warning
disable_swiper: false
scaling_mode: headline_and_scale

wersje
burze_dzis_net v2.0.1
meteoalarm-card v2.6.0
HA core 2024.2.5 lub chyba wszystkie stabilne pomiędzy, ale pewien nie jestem lub 2024.5.1

Faktycznie działa, idąć tym tropem encje muszą być “english” np. taka zmiana nazwy też jest poprawna entity: binary_sensor.qwerty_storm_warning, w związku z tym jak zmusić HA aby przy dodawaniu integracji dodał nazwy english a nie polish? Próbowałem zmienić język aplikacji na angielski ale nie pomogło.

Chodzi o dawne końcówki nazw encji (po nich karta rozpoznaje encje), HA takich nie doda (były zmiany w integracji w okolicy v2.x), trzeba zmienić ręcznie przez edycję każdej encji burze_dzis_net.
Skopiuj sobie nazwy encji lub same końcówki z tego YAMLa wyżej.

Być może zmieniając kraj język instalacji HA w ustawieniach ogólnych doszedłbyś do celu, ale to kilka czy kilkanaście kliknięć by zmienić nazwy bez zmiany języka instalacji i po robocie.

Testowałem różne kombinacje, niestety nie ma to wpływu na nazwy encji, jest issue do tego sensor translate · Issue #28 · PiotrMachowski/Home-Assistant-custom-components-Burze.dzis.net · GitHub

Wyżej @MariuszT podał kod do karty warunkowej, działa i wygląda jak meteoalarm.

Obecnie do obsługi integracji Burze.dziś.net mam zupełnie inną kartę, wkomponowaną u mnie co prawda w panel informacyjny, ale może działać także samodzielnie. Obsługuje wszystkie sensory, które zwraca aktualna wersja integracji. Bo, jak pewnie większość zauważyła, oprócz sensora ostrzeżenia o np. nadchodzącej burzy mamy także informację w postaci kolejnego sensora mówiącego, że burza jest aktualnie.
Moja karta obsługuje to, wyświetlając najpierw kafelek wywoływany sensorem o ostrzeżeniu, a kiedy zdarzenie przechodzi w stan aktualny kafelek zmienia się na wywoływany sensorem aktualnie występującego zdarzenia. Kafelki obsługują zmianę kolorów i pokazują odpowiednie do poziomu zagrożenia informacje.
Każdy z kafelków pojawia się tylko wtedy gdy zaistnieje zdarzenie (karta warunkowa), więc generalnie karta zazwyczaj nie pokazuje niczego. Dlatego też obecnie nie mam za bardzo możliwości zaprezentowania jej wyglądu, jeśli ktoś chce zobaczyć przykładowy widok to może zmienić warunek pokazania któregokolwiek kafelka na przeciwny.
Poniżej kod karty:

type: custom:mod-card
card_mod:
  style: |
    ha-card {
      background: none;
      box-shadow: none;
    }  
card:
  type: vertical-stack
  cards:
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_burza
          state: 'on'
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza
          state_not: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_burza
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '1')
              return "deszcz od 15 do 40 mm"+"<br>"+"wiatr w porywach od 60 do 90 km/h"+"<br>"+"grad poniżej 2 cm"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '2')
              return "deszcz od 41 do 70 mm"+"<br>"+"wiatr w porywach od 91 do 110 km/h"+"<br>"+"grad od 2 do 5 cm"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '3')
              return "deszcz powyżej 70 mm"+"<br>"+"wiatr w porywach powyżej 110 km/h"+"<br>"+"grad powyżej 5 cm"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_burza'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
              margin-top: 5px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza
          state: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '1')
              return "deszcz od 15 do 40 mm"+"<br>"+"wiatr w porywach od 60 do 90 km/h"+"<br>"+"grad poniżej 2 cm"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '2')
              return "deszcz od 41 do 70 mm"+"<br>"+"wiatr w porywach od 91 do 110 km/h"+"<br>"+"grad od 2 do 5 cm"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '3')
              return "deszcz powyżej 70 mm"+"<br>"+"wiatr w porywach powyżej 110 km/h"+"<br>"+"grad powyżej 5 cm"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_burza'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_wyladowania_w_poblizu
          state: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_wyladowania_w_poblizu
        label: |
          [[[
            return "wyładowania: "+states['binary_sensor.burze_dzis_net_wyladowania_w_poblizu'].attributes.number+"<br>"+"odległość: "+states['binary_sensor.burze_dzis_net_wyladowania_w_poblizu'].attributes.distance+"<br>"+"kierunek: "+states['binary_sensor.burze_dzis_net_wyladowania_w_poblizu'].attributes.direction
          ]]]
        styles:
          card:
            - background-color: yellow
            - color: black
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_opad
          state: 'on'
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad
          state_not: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_opad
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '1')
              return "deszcz 25 - 40 mm w ciągu 24h"+"<br>"+"śnieg 10 - 15 cm w ciągu 24h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '2')
              return "deszcz 41 - 70 mm w ciągu 24h"+"<br>"+"śnieg 16 - 30 cm w ciągu 24h"+"<br>"+"śnieg 10 - 15 cm w ciągu 12h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '3')
              return "deszcz powyżej 70 mm w ciągu 24h"+"<br>"+"śnieg powyżej 30 cm w ciągu 24h"+"<br>"+"śnieg powyżej 15 cm w ciągu 12h"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_opad'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad
          state: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '1')
              return "deszcz 25 - 40 mm w ciągu 24h"+"<br>"+"śnieg 10 - 15 cm w ciągu 24h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '2')
              return "deszcz 41 - 70 mm w ciągu 24h"+"<br>"+"śnieg 16 - 30 cm w ciągu 24h"+"<br>"+"śnieg 10 - 15 cm w ciągu 12h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '3')
              return "deszcz powyżej 70 mm w ciągu 24h"+"<br>"+"śnieg powyżej 30 cm w ciągu 24h"+"<br>"+"śnieg powyżej 15 cm w ciągu 12h"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_opad'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_upal
          state: 'on'
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal
          state_not: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_upal
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '1')
              return "od 30 do 34°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '2')
              return "od 35 do 38°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '3')
              return "powyżej 38°C"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_upal'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal
          state: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '1')
              return "od 30 do 34°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '2')
              return "od 35 do 38°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '3')
              return "powyżej 38°C"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_upal'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_mroz
          state: 'on'
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz
          state_not: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_mroz
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '1')
              return "od -20 do -25°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '2')
              return "od -26 do -30°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '3')
              return "poniżej -30°C"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_mroz'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz
          state: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '1')
              return "od -20 do -25°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '2')
              return "od -26 do -30°C"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '3')
              return "poniżej -30°C"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_mroz'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_wiatr
          state: 'on'
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr
          state_not: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_wiatr
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '1')
              return "w porywach od 70 do 90 km/h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '2')
              return "w porywach od 91 do 110 km/h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '3')
              return "w porywach powyżej 110 km/h"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_wiatr'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr
          state: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '1')
              return "w porywach od 70 do 90 km/h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '2')
              return "w porywach od 91 do 110 km/h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '3')
              return "w porywach powyżej 110 km/h"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_aktywne_wiatr'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            }
    - type: conditional
      conditions:
        - entity: binary_sensor.burze_dzis_net_ostrzezenie_traba
          state: 'on'
      card:
        type: custom:button-card
        template: burze_dziś_net
        entity: binary_sensor.burze_dzis_net_ostrzezenie_traba
        label: |
          [[[
            if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '1')
              return "w porywach od 70 do 90 km/h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '2')
              return "w porywach od 91 do 110 km/h"
            else if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '3')
              return "w porywach powyżej 110 km/h"
            else
              return "OK"
          ]]]
        styles:
          card:
            - background-color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '1')
                    return 'yellow'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '2')
                    return 'orange'
                  else if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '3')
                    return 'red'
                  else
                    return 'lightgreen'
                ]]]
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '3')
                    return 'white';
                  else return 'black'
                ]]]
          icon:
            - color: |
                [[[
                  if (states['binary_sensor.burze_dzis_net_ostrzezenie_traba'].attributes.level == '3')
                    return 'white'
                ]]]
        card_mod:
          style: |
            ha-card {
              height: 95px;
            } 
3 polubienia

a możesz podać jeszcze:

template: burze_dziś_net
bo mi krzyczy że nie mam takiego template