Daten aus Array im State vergleichen

Moin,

Ich habe einen Sensor, dessen State ein Array ist.

['F1', 'F2', 'F3', 'F4', 'F5', '.']	

(Wo der Punkt am Ende herkommt, weiß ich nicht…muss aber auch nicht verglichen werden)

Nun möchte ich in einer Custom Button Card 4 Bilder ausgeben. Sie sind immer ausgegraut (einfach nur ein schwarz/weiß png). Wenn ein Wert in dem State enthalten ist, soll dieses png farbig werden.

  [[[
    var state = entity.state
    if (state == "F1")
      return '/local/images/f/1.png'
    else
      return '/local/images/f/1sw.png'
  ]]]

Nun wird ja nur geprüft, ob in dem State F1 steht, was ja nicht der Fall ist (ich gehe davon aus, dass der ganze Inhalt übereinstimmen muss).
Es soll verglichen werden, ob F1 in dem State enthalten ist. Eine Anpassung auf stateattr hat nicht wirklich was gebracht.

Wo liegt mein Fehler?

Besten dank!

vg
sven

Damit sollte es funktionieren.

{{ 'F1' in state }}

Zumindest funktioniert das als Template, ob die Custom Button Card damit umgehen kann, kann ich Dir leider nicht sagen.


{% set state = ['F1', 'F2', 'F3', 'F4', 'F5', '.'] %}

{{ 'F1' in state }}

Gruß
Osorkon

Moin,

stimmt. Das funktioniert.
Aber ich brauche das eigentlich in Java für die Custom Button Cards.

Ich habe mir nun geholfen, in dem ich einen Template-Sensor Helfer gebaut habe, der dann True oder False auswirft und dann mit meiner obrigen if-Abfrage der Ergebnis gehabt (Natürlich nicht nach F1 sonder True).
Vermutlich ist das ein wenig umständlich, funktioniert aber :wink:

Besten Dank!