Geöffnete Fenster inkl. Öffnungszeiten / Makros und deren zentrale Wiederverwendbarkeit machen Templating effizienter

Angeregt durch diesen schönen “Fenster auf/zu seit Code” in einer Mushroom-template-card wollte ich wissen, ob man hier auch über das obige Makro die Seit-Abfrage zentralisieren könnte und ja es geht.

Screenshot 2024-12-24 092144

Hier der Code der ersten Karte

type: custom:mushroom-template-card
primary: Kühlschrank ist seit
secondary: >-
  {% set fenster_entity = 'binary_sensor.aqara_unten_sensor_kuehlschrank_tuer_contact' %}
  {%- from 'macros.jinja' import macro_timediff_now_last_changed as macro_get_time -%}
  {% set status = states(fenster_entity) %}
  {# Setzt voraus, dass Makro wie oben hinterlegt wurde #}
  {% set seit = macro_get_time(fenster_entity) | trim %}
  {% if status == "on" %}
    {{ seit }} geöffnet
  {% elif status == "off" %}
    {{ seit }} geschlossen
  {% else %}
    Fenster Sensor nicht verfügbar
  {% endif %}
icon: >-
  {% set fenster_entity = 'binary_sensor.aqara_unten_sensor_kuehlschrank_tuer_contact' %}
  {% if states(fenster_entity) == "off" %}
    mdi:window-closed
  {% else %}
    mdi:window-open
  {% endif %}
icon_color: >-
  {% set fenster_entity = 'binary_sensor.aqara_unten_sensor_kuehlschrank_tuer_contact' %}
  {{ 'green' if states(fenster_entity) == 'off' else 'red' }}
entity: "{{ fenster_entity }}"

Alternativ könnte natürlich den Code des Autors in jede Fenster/Tür Karte packen und den Entity Namen anpassen und es wird funktionieren!
Alternativ kann man das Makro im Code übernehmen und bei irgendeiner späteren Änderung der Seit-Abfrage braucht man nur einmal das Makro ändern.

3 „Gefällt mir“