Šablony (Jinja2)
Šablony dělají z Richpear Home opravdu chytrou domácnost. Pomocí jazyka Jinja2 můžete dynamicky vytvářet text, počítat hodnoty a rozhodovat podle stavu zařízení.
Kdekoli v konfiguraci nebo automatizaci, kde je povolena šablona, můžete použít výrazy uzavřené do {{ }} (vrací hodnotu) nebo {% %} (řídicí konstrukce, např. podmínky a cykly).
Stav a atributy entit
{# Stav entity #}
{{ states('sensor.teplota_obyvak') }}
{# Atribut entity #}
{{ state_attr('climate.loznice', 'temperature') }}
{# Je světlo zapnuté? #}
{{ is_state('light.kuchyn', 'on') }}
Podmínky a text
{% if states('sensor.teplota_venku') | float < 5 %}
Venku mrzne, obleč se teple.
{% else %}
Venku je příjemně.
{% endif %}
Filtr float a default
Stav entity je vždy text. Pro výpočty jej převeďte filtrem | float nebo | int. Vždy doplňte výchozí hodnotu, ať šablona nespadne: {{ states('sensor.x') | float(0) }}.
Čas a datum
{{ now().strftime('%H:%M') }} {# aktuální čas #}
{{ now().hour }} {# hodina 0–23 #}
{{ (now() - states.sensor.x.last_changed) }} {# jak dlouho beze změny #}
Praktický příklad v automatizaci
alias: Uvítací zpráva
trigger:
- platform: state
entity_id: person.jan
to: "home"
action:
- service: notify.mobile_app_telefon
data:
message: >
Vítej doma! Venku je
{{ states('sensor.teplota_venku') | float(0) | round(1) }} °C.
Praktické filtry
| Filtr | Význam | Příklad |
|---|---|---|
round(n) | Zaokrouhlení | {{ 3.14159 | round(2) }} → 3.14 |
float(d) | Převod na číslo (s výchozí hodnotou) | {{ '5' | float(0) }} → 5.0 |
default(d) | Náhrada za prázdnou hodnotu | {{ x | default('—') }} |
timestamp_custom | Formát času | {{ ts | timestamp_custom('%d.%m.') }} |
Vývojářské nástroje
Šablony si pohodlně vyzkoušíte v Vývojářské nástroje → Šablony. Výsledek se přepočítává v reálném čase, takže snadno doladíte výraz dřív, než jej vložíte do automatizace.