Automation mit Variablen

Hallo zusammen,
ich habe auf meiner UI meine beiden Wallboxen dargestellt und möchte nun eine Automation erstellen, welche je nach angeschlossenem Fahrzeug mir das passende Fahrzeugbild ausgibt.

Das angeschlossene Fahrzeug wird mir via mqtt von evcc bereits in einer Entitiät übermittelt.

Meine Automationsidee wäre also wie folgt:

Trigger: Änderung der Entitiät “Fahrzeug Titel”

Aktion:

  1. Wenn “Fahrzeug Titel” leer, dann definiere Variable “Wallbox Icon” url /wallbox.png
  2. Wenn “Fahrzeug Titel” = “VW eGolf”, dann definiere Variable “Wallbox Icon” url /golf.png
  3. Wenn “Fahrzeug Titel” = "“Audi Q4”, dann definiere Variable “Wallbox Icon” url /audi.png

Nun meine Fragen:

  1. Wie kann ich in der Variable definieren?
  2. Wie kann ich die Variable in der UI (Kopfzeile) wieder ausgeben? (Siehe Screenshot)

Wer kann hier helfen oder hat eventuell einfachere Ideen das umzusetzen?

Danke und Grüße
Timo

Warum nicht ne Bedingungs Karte.

Wenn Bedingung a, zeige Karte a
Wenn Bedingung b, zeige Karte b
Wenn Bedingung c, zeige Karte c

Also 3 Karten mit jeweils einer anderen Bedingung das sie angezeigt wird.

Oder mit custom button-card, eine Karte erstellen und dann das entity Bild mit ner Variablen ändern.

Ich mach das für meinen Heimkino.

Code Schnipsel

entity_picture: |-
  [[[
     if (entity.state == "Stereo") return "/local/avr/2.1.png";
     else if (entity.state == "Stereo + Dolby Surround") return "/local/avr/7.1.4.png";
     else if (entity.state == "Stereo + DTS Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "Multi CH Stereo") return "/local/avr/7.1.4.png";
     else if (entity.state == "Dolby Audio - Dolby Digital Plus") return "/local/avr/5.1.png";
     else if (entity.state == "Dolby Audio - DD+ + DSur") return "local/avr/7.1.4.png";

Danke für den Tipp, leider funktioniert das nicht sauber, da das Icon immer im Cache vermute ich bleibt und sich dadurch nicht verlässlich ändert.

Wo packe ich denn den Codeschnipsel rein? Und .state wäre der Name der Entität, die sich bei mir ändert? Sprich .fahrzeug_titel ?

Danke und Grüße

Wenn die Bilder Unterschiedliche Namen haben sollten sie eigentlich immer wechseln.
Wie hast du es den nun versucht?

Den Code Schnipsel musst in ne Button-card einbauen. entity.state bezieht sich auf den Sensor der bei entity: angegeben wird.

Die ganze Karte sieht bei mir so aus.

type: custom:button-card
entity: sensor.denon_sound_mode_raw
show_name: false
show_state: false
show_icon: false
name: sound mode
size: 100%
tap_action:
  action: call-service
  service: input_boolean.toggle
  data: {}
  target:
    entity_id: input_boolean.lovelace_sound
show_entity_picture: true
entity_picture: |-
  [[[
     if (entity.state == "Stereo") return "/local/avr/2.1.png";
     else if (entity.state == "Stereo + Dolby Surround") return "/local/avr/7.1.4.png";
     else if (entity.state == "Stereo + DTS Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "Multi CH Stereo") return "/local/avr/7.1.4.png";
     else if (entity.state == "Dolby Audio - Dolby Digital Plus") return "/local/avr/5.1.png";
     else if (entity.state == "Dolby Audio - DD+ + DSur") return "local/avr/7.1.4.png";
     else if (entity.state == "Dolby Audio - DD+ + Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "Dolby Audio - Dolby Surround") return "/local/avr/5.1.png";
     else if (entity.state == "Dolby Audio - DD + DSur") return "/local/avr/7.1.4.png";
     else if (entity.state == "Dolby Audio - DD + Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "Dolby Audio - Dolby Digital") return "/local/avr/5.1.png";
     else if (entity.state == "Dolby Audio - Dolby TrueHD") return "/local/avr/7.1.png";
     else if (entity.state == "Dolby Audio - TrueHD") return "/local/avr/7.1.png";
     else if (entity.state == "Dolby Audio - TrueHD + Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "Dolby Audio - TrueHD + Dsur") return "/local/avr/7.1.4.png";
     else if (entity.state == "Dolby Atmos") return "/local/avr/7.1.4.png";
     else if (entity.state == "DTS Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "DTS Surround") return "/local/avr/5.1.png";
     else if (entity.state == "DTS + Dsur") return "/local/avr/7.1.4.png";
     else if (entity.state == "DTS + Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "DTS:X MSTR") return "/local/avr/7.1.4.png";
     else if (entity.state == "DTS-HD MSTR") return "/local/avr/7.1.png";
     else if (entity.state == "DTS-HD + Neural:X") return "/local/avr/7.1.4.png";
     else if (entity.state == "DTS-HD + DSur") return "/local/avr/7.1.4.png";
     else if (entity.state == "Multi Ch In 7.1") return "/local/avr/7.1.png";
     else if (entity.state == "Multi In + DSur") return "/local/avr/7.1.4.png";
     else if (entity.state == "Multi In + Neural:X") return "/local/avr/7.1.4.png";
     return '/local/avr/off.jpg';
  ]]]

Je nachdem was der sensor.denon…ausgibt wechselt das Bild.

Wenn man sich da mal reingefuchst hat, kann man damit fast alles umsetzten.