Karta warunkowa

Witam. Zakładam nowy temat ponieważ nigdzie nie mogę znaleźć informacji na ten temat. Mam zrobione cztery obrazy. Czy jest możliwość wyświetlenia na podstawie stanu encji odpowiedniego obrazu w karcie warunkowej? jako panel (1 karta)

Zobacz sobie z tym co ja mam:

type: conditional
conditions:
  - entity: input_boolean.paczka_w_paczkomacie
    state: 'on'
card:
  type: picture-entity
  entity: input_boolean.paczka_w_paczkomacie
  image: /local/obrazki/paczkomaty.png
  show_state: false
  show_name: true
  theme: amoled
  name: Paczka umieszczona w paczkomacie

To jest na jeden obrazek ale może jak dopiszesz 2 raz w ten sam wzór to się uda - przepraszam nie mogę sprawdzić teraz u siebie, daj znać czy się coś udało. Zmień state: ‘on’ na state: ‘off’ itd no i adres obrazków.

Moim zdaniem tak się nie da, bo widok typu panel wyświetla zawsze tylko tą najwyżej skonfigurowaną kartę (niezależnie od jej stanu), a pozostałe ukrywa (również niezależnie od stanu), w dodatku od pewnego czasu wyświetlając trwałe ostrzeżenie o skonfigurowanej więcej niż jednej karcie w tym widoku (kiedyś to ostrzeżenie było dostępne tylko w trybie edycji).

Więc by rozwiązać ten problem trzeba raczej sięgnąć po jakiś komponent niestandardowy, ale nie mam pomysłu jaki.

można to zrobić Custom:button-card - tam można podmieniać obrazki w zależności od stanu encji.

1 Like

Ok. Tylko wszystkie moje próby to niepowodzenie. Może jakiś kod? chociaż żeby dwie karty współpracowały ze sobą.

wrzuć do siebie i popodmieniaj dane :slight_smile:
oczywiście mój przykład ma w stworzonego pomocnika input_number.testy
image
image
image

square: false
columns: 1
type: grid
cards:
  - type: custom:button-card
    show_entity_picture: true
    label: testowa
    entity: input_number.testy
    name: nazwa
    styles:
      card:
        - height: 200px
      label:
        - color: gray
        - font-size: 60%
      grid:
        - grid-template-areas: '"i" "n" "l"'
        - grid-template-rows: 1fr min-content min-content
    show_label: true
    state:
      - value: '0'
        entity_picture: /local/img/smieci/smieci_zmieszane3.png
      - value: '1.0'
        entity_picture: /local/img/smieci/smieci_bio2.png
      - value: '2.0'
        entity_picture: /local/img/smieci/smieci_all2.png
      - value: '3.0'
        entity_picture: /local/img/smieci/smieci_zielone2.png
  - type: entities
    entities:
      - entity: input_number.testy
        secondary_info: last-changed

PS, na szybko wklejałem kod tworząc odpowiedź, a zapomniałem edytować post wyżej - stąd post wyżej usunięty.

1 Like

Można wykorzystać picture-elements

Przykład:
Otwieram drzwi ogrodowe, zmienia się stan i zmienia się obraz
ezgif.com-gif-maker (2)

Kłódka jest tylko jako sygnalizator otwarcia, zamknięcia drzwi

type: picture-elements
image: /local/tv.jpg
elements:
  - type: conditional
    conditions:
      - entity: binary_sensor.on_off_ogrodowe_contact
        state: 'on'
    elements:
      - type: image
        entity: binary_sensor.on_off_ogrodowe_contact
        image: /local/kosiarka.jpg
        style:
          left: 44%
          top: 25%
          width: 50%
  - type: conditional
    conditions:
      - entity: binary_sensor.on_off_ogrodowy_contact
        state: 'off'
    elements:
      - type: image
        entity: binary_sensor.on_off_ogrodowy_contact
        image: /local/panele.jpg
        style:
          left: 44%
          top: 25%
          width: 50%
  - type: image
    entity: binary_sensor.on_off_ogrodowy_contact
    image: /local/zielony1.png
    state_image:
      'on': /local/kłódka-otwarta.png
      'off': /local/zielona-kłódka.gif
    state_filter:
      'on': brightness(130%) saturate(1.5) drop-shadow(2px 6px 12px red)
      'off': brightness(90%) saturate(0.8)
    style:
      top: 84%
      left: 84%
      width: 15%
      padding: 122px
1 Like

Dzięki Panowie. Jutro dopiero bedę w domu i sprawdzę. Dam znać. Przypomnę że chodzi o panel na całym ekranie jako jedna karta.

Widok typu panel akurat ma taką magiczną właściwość, że można na nim wyświetlić tylko jedną kartę i będzie ona “całoekranowa”.

Dziękuję wszystkim. Wszystko działa jak powinno :slight_smile:

Czyli jak? :slight_smile: Proszę podziel się końcowym kodem karty.

Tok ok. Może są jakieś błędy ale działa. Oczywiście resztę zrobię w nodered. W sumie jest czterech pomocników. 3 Fazy i agregat i teraz tylko pobrać stany z encji zasilania Mew01 i z gniazda które jest wpięte do agregatu.

A jeszcze wróce do tego tematu. Do agregatu mam podpięte gniazdo wifi Tuya z którego odczytuję w czasie pracy napięcie, moc, natężenie, i stan. Czy da sie jakoś zliczyć czas pracy agregatu?

Da się:

Później możesz sobie wyciągnąć np wartości dzienne, tygodniowe, miesięczne za pomocą:

No ok ale ja mam napięcie natężenie i moc. Jak to zliczyć to wiem , ale mi potrzebny jest czas pracy.

Masz podpięte gniazdko wifi które raportuje tez stan on i off.

Licz jak długo jest on lub jeżeli jest cały czas włączone zliczaj czas w którym moc jest większa od 0.

Ok. A mógłbyś podeslać kod zeby zliczalo gdy jest moc większa niż zero? Bo nie bardzo wiem jak to zrobić z tym czasem

2 sensory:
Pierwszy kiedy wartość przekracza 5W - będzie “ON”, drugi zlicza czas od 00:00:00 do teraz

W sensor.yaml

  - platform: template
    sensors:
      testeronoff:
        friendly_name: "Tester On/Off"
        value_template: >-
            {% if states('sensor.ac_lacaltuyawatt')|int(0) > 5  %} 
               on 
            {% else %}
               off
            {% endif %}
            
  - platform: history_stats
    name: Tester czas pracy
    entity_id: sensor.testeronoff
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"  

Dziękuję bardzo. Jest ok