Ich denke, einen template sensor anzulegen, etwa so:
sensor_module_failure:
value_template: true
Dass dort jetzt nur “true” steht, soll nur verdeutlichen, dass ich hiere mehrere Entitäten abfragen will um zu entscheiden, ob ein Fehler vorliegt. Wenn ja, dann soll der Sensor “true” sein, sonst false.
Dann möchte ich eine Chip-card anzeigen, aber nur, wenn der Sensor true ist. Das versuche ich so:
Vielleicht ist Sensor wirklich nicht das richtige.
Ich will eine Entität haben, die true oder false ist, je nachdem, ob ein Fehler vorliegt. Der Fehler ist leider nicht nur true/false, sondern ein Sensor hat eine bestimmte Zeit lang keine Werte mehr gesendet.
Und das soll eine Oder-Verknüpung mehrere solcher Sensoren sein. Dann woll ich den Chip anzeigen und dann ein detaillierteres Popup öffnen.
Das mit der Template-Bedingung ist nicht mein Problem.
In condition beim Chip kann ich nur so etwas wie “state” eingeben, “template” und dann “value_template” hat nicht funktioniert. Das wird auch, wenn man den UI-Editor für die Bedingung benutzt, nicht angezeigt. Also dachte ich einen Sensor (oder was auch immer) anzulegen, der alle Module prüft und zusammenfasst. Danach kann ich dessen State in der Condition auswerten.
Update:
Ich habe jetzt mal ChatGPT gefragt. Das Ergebnis ist erst einmal schlüssig, werde es probieren:
template:
- binary_sensor:
- name: "Entitäten hängen"
state: >
{% set timeout = 600 %} # Sekunden = 10 Minuten
{% set entities = [
'sensor.temperatur',
'sensor.luftfeuchtigkeit',
'sensor.stromzaehler'
] %}
{% for e in entities %}
{% if (now() - states[e].last_updated).total_seconds() > timeout %}
true
{% endif %}
{% endfor %}
false
device_class: problem
Womit ich nichts anfangen kann ist “device_class”. Woher weiß man, welche Klassen es gibt und was sie bewirken?
by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)
Du verwendest 3 Ausgaben durch {{xxx}}, es soll aber ein binary_sensor true/false sein.
Ein beliebter Fehler bei ChatGPT ist, daß es den Scope von Variablen nicht beachtet. Das muß man wissen oder durch debuggen herausfinden.
Wissen + ChatGPT = sehr gute Kombi
… + ChatGPT = geht meistens in die Hose
{% set timeout = 600 %}
{% set entities = [
'sensor.aqara_fenstersensor_mitte_bad_battery',
'sensor.aqara_oben_schreibtisch_plug_ventilator_power',
'sensor.aqara_temp_feucht_oben_battery'
] %}
{% set ns = namespace(result=false) %}
{% for e in entities %}
{% if (as_timestamp(now()) - as_timestamp(states[e].last_updated)) > timeout %}
{% set ns.result = true %}
{% endif %}
{% endfor %}
{{ ns.result }}