DomoLab

Documentation de recherche en domotique

#06/11/2025

Automatisation et les helpers

Principe de base

Notions

Les helpers ("entrées") sont des outils qui permettent de stocker et de manipuler des données ou des états de manière persistante ou temporaire. Ils servent à simplifier l'automatisation en offrant des variables, des compteurs, des sélecteurs, des bascules (toggle), etc...

Les templates, délimités par {{ }}, permettent d'injecter dynamiquement des valeurs, d'effectuer des calculs ou de manipuler des données en temps réel. Ils utilisent le langage de templating Jinja2 et peuvent être employés dans les automatisations, les scripts, ou même les cartes Lovelace pour afficher ou traiter des informations de manière conditionnelle ou calculée.

...

Exemple

...

On va réaliser un Minuteur de pause café dynamique, on a besoin de trois helpers.
Pour les créer: Paramètres Appareils et services Entrées

On a besoin d'un nombre, d'un interrupteur (boolean) et d'une Date et heure (datetime):

...

L'interrupteur:

...

La date et heure

...

Nous avons donc les trois helpers suivants:

  • input_datetime.debut_pause_cafe
  • input_number.duree_pause_cafe
  • input_boolean.pause_cafe_active

On va maintenant créer deux automatisation, une pour démarrer la pause café et la seconde pour la fin de pause. (Paramètres Automatisations et scènes )

Première automatisation:

alias: ☕ Démarrer pause café
description: Lance le compte à rebours quand on active le toggle
triggers:
  - entity_id: input_boolean.pause_cafe_active
    to: "on"
    trigger: state
actions:
  - target:
      entity_id: input_datetime.debut_pause_cafe
    data:
      datetime: "{{ now() }}"
    action: input_datetime.set_datetime
  - data:
      title: ☕ Pause café lancée !
      message: >
        Profite bien de ta pause de {{ states('input_number.duree_pause_cafe') |
        int }} minutes. Retour prévu à {{ (now() +
        timedelta(minutes=states('input_number.duree_pause_cafe') |
        int)).strftime('%H:%M') }}.
      notification_id: pause_cafe
    action: persistent_notification.create

Deuxième automatisation:

alias: ☕ Fin pause café
description: Alerte quand le temps est écoulé
triggers:
  - trigger: time_pattern
    seconds: /30
conditions:
  - condition: state
    entity_id: input_boolean.pause_cafe_active
    state: "on"
  - condition: template
    value_template: >
      {% set debut = states('input_datetime.debut_pause_cafe') | as_datetime |
      as_local %} {% set duree = states('input_number.duree_pause_cafe') | int
      %} {% set fin = debut + timedelta(minutes=duree) %} {{ now() >= fin }}
actions:
  - target:
      entity_id: input_boolean.pause_cafe_active
    action: input_boolean.turn_off
  - data:
      title: ⏰ C'est l'heure de reprendre !
      message: Ta pause café est terminée. Bon courage pour la suite ! 💪
      notification_id: pause_cafe_finie
    action: persistent_notification.create

Pour la card, au niveau du dashboard ajouter la carte suivante:

type: entities
title: ☕ Pause Café
entities:
  - entity: input_number.duree_pause_cafe
  - entity: input_boolean.pause_cafe_active
  - entity: input_datetime.debut_pause_cafe

Il ne reste plus qu'à tester, en début et fin de pause une notification doit se déclencher:

...

On peut paramétrer le temps de la pause via l'interface (sans modifier les scripts d'automatisation).

Conclusion

Les helpers sont des alliés indispensables pour créer des automatisations puissantes et flexibles dans Home Assistant. En combinant des entrées simples (nombres, interrupteurs, dates) avec la puissance des templates Jinja2, on peut construire des scénarios complexes sans écrire une seule ligne de code dans un langage de programmation traditionnel.

L'exemple du minuteur de pause café démontre parfaitement cette approche : avec trois helpers et deux automatisations, nous avons créé un système complet qui gère le temps, envoie des notifications contextuelles et s'adapte dynamiquement aux préférences de l'utilisateur. Le tout sans toucher au code des automatisations pour changer la durée de la pause.

Les avantages clés des helpers :

  • Séparation entre logique et données (modification des valeurs sans toucher aux automatisations)
  • Interface utilisateur intuitive pour ajuster les paramètres en temps réel
  • Persistance des états même après un redémarrage de Home Assistant
  • Réutilisabilité dans plusieurs automatisations et dashboards