Liebe SmartHome for Dummies Gemeinde.

Die phpBB Forum Software gehört nicht wirklich zu den modernsten seiner Art.
Ich habe mich an einer Migration zu Discourse versucht und bin leider kläglich gescheitert.

Möchte aber trotzdem einen Neuanfang auf einer modernen Plattform starten.
Gerne möchte ich Euch animieren das neue Discourse Forum zu benutzen.
Bestehenden Usern bleibt es leider nicht erspart, sich auf der neuen Platform neu anzumelden.

Das Forum hier, bleibt selbstverständlich Online. Ich würde versuchen einiges händisch zu migrieren.
Da fallen mir die Rubriken "Template Sammlungen" oder "Best Practice Automatisierungen" ein.

SmartHome for Dummies Discourse Platform.

Macros für Templates - ab 2023.4

Die Unterkategorie Templates Sammlungen ist im Lesemodus.
Hier geht es im neuen Kleid weiter https://community-discourse.smarthome-f ... ammlung/12


Forumsregeln

Hier geht es im neuen Kleid weiter https://community-discourse.smarthome-f ... ammlung/12

Antworten
Benutzeravatar
Osorkon
Administrator
Beiträge: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 times
Kontaktdaten:

Macros für Templates - ab 2023.4

Beitrag von Osorkon »

Ab der Home Assistant Version 2023.4 gibt es nun auch die Möglichkeit Macros zu schreiben die in den Templates verwenden werden können.
Dies ermöglicht es, immer wieder kehrende template Inhalte, nur ein mal zentral als Macro abzulegen und dann in Templates darauf zuzugreifen.
Siehe auch Release Notes

Ein schönes Bsp. ist z.B die Individuelle Formatierung des Zeitstempels, welches ich im Bereich Template Sammlungen vorgestellt habe.

Dieses Template lässt sich nun als Macro erstellen. Die Macros werden in /config/custom_templates/tools.jinja abgelegt.
Falls der Ordner custom_templates noch nicht existent ist, diese erstellen sowie die Datei tools.jinja

Die erstellten Macros kommen dann in die tools.jinja Datei

Code: Alles auswählen

{% macro user_datum(datum) %}
{% set wochentag = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"] %}
{% set monat = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"] %}
{% set wochentag = wochentag[datum.weekday()] %}
{% set monat = monat[datum.month - 1] %}
{{ wochentag }}, der {{ datum.day }} {{ monat }} {{datum.year}}
{% endmacro %}

Das Macro heisst in diesem Bsp. user_datum, übergeben wird dann die Variable datum
Diese Macro lässt sich nun überall im Template verarbeiten.

Code: Alles auswählen

{% from 'tools.jinja' import user_datum %}
{{ user_datum(now()) }}

Damit wird das Macro user_datum importiert und now() als Zeitstempel übergeben.

Das Template

Code: Alles auswählen

{{ now() }}

hat als Ergebnis
2023-04-05 19:45:35.427707+02:00

Die Verwendung der macros im Template dagegen:
Mittwoch, der 5 April 2023

Für Alle die gern und viel mit Templates arbeiten, ist es sicher eine sinnvolle Erweiterung.
Ein wenig vergleichbar mit den Blueprints. Ändert man einen Blueprint, hat das Auswirkungen auf alle Automatisierungen, die den Blueprint verwenden.
So verhält es sich auch bei den Template Macros.

Viel Spaß mit den Template Marcos ab Home Assistant 2023.4

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Antworten