Sind alle Fenster und Türen geschlossen? Wenn nein, welche sind noch offen?

Damit die Heizung höchst mögliche effizient hat, sollten alle Fenster und Türen geschlossen sein. Der folgende Code erzeugt eine Ausgabe wie diese:

2/6 Türen geöffnet. Tür Fernsehzimmer, Tür Flur

Man kann also mit einem Blick sehen, ob und welche Türen noch geöffnet sind. Der Code kann unterschiedlich verwendet werden z.B. in der Markdown Card sowie in anderen Lovelace Cards, in den Sensor Templates und in den Benachrichtigungen.

Sie können den Code direkt verwenden und z.B. in den Developer Tools unter TEMPLATE ausprobieren!
Open your Home Assistant instance and show your template developer tools.

Code für Türen device_class: door

{{ states.binary_sensor
  | selectattr('state', 'eq', 'on')
  | selectattr('attributes.device_class', 'defined')
  | selectattr('attributes.device_class', '==', 'door')
  | map(attribute='entity_id')
  | list | count }}/{{ states.binary_sensor
  | selectattr('attributes.device_class', 'defined')
  | selectattr('attributes.device_class', '==', 'door')
  | map(attribute='entity_id')
  | list | count }} Türen geöffnet. {{ states.binary_sensor | selectattr('state', 'eq', 'on')
  | rejectattr('attributes.entity_id', 'defined')
  | selectattr('attributes.device_class', 'defined')
  | selectattr('attributes.device_class', '==', 'door')
  | map(attribute='name') | list | join(', ') }}

Code für Fenster device_class: window

{{ states.binary_sensor
  | selectattr('state', 'eq', 'on')
  | selectattr('attributes.device_class', 'defined')
  | selectattr('attributes.device_class', '==', 'window')
  | map(attribute='entity_id')
  | list | count }}/{{ states.binary_sensor
  | selectattr('attributes.device_class', 'defined')
  | selectattr('attributes.device_class', '==', 'window')
  | map(attribute='entity_id')
  | list | count }} Fenster geöffnet. {{ states.binary_sensor | selectattr('state', 'eq', 'on')
  | rejectattr('attributes.entity_id', 'defined')
  | selectattr('attributes.device_class', 'defined')
  | selectattr('attributes.device_class', '==', 'window')
  | map(attribute='name') | list | join(', ') }}

Heizungssteuerung

Dass die Heizung bzw. allgemeiner gesagt die climate.entity entsprechend geregelt wird, ist hier das entsprechende Blueprint zu finden.

Automation

Auch in den Automationen kann der Code direkt verwendet werden. Man kann z.B. eine Meldung erzeugen, wenn eine der Türen länger als z.B. 5 Minuten offen ist.

Das sieht danach etwa so aus

und erzeugt folgende Meldung auf dem iPhone