Š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

FiltrVýznamPří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_customFormá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.

Související: Webhooky · Entita sensor