Template binary sensor - et / ou d'autres sensors

Bonjour,

je viens de creer ma premiere template que je n’arrive pas a la mettre au point.
j’ai 2 entrees :

  • un binary-sensor « nuit » qui se met a ‹ on › lorsqu’il fait nuit
  • un input_boolean « lumieres_ext_activees » que j’active si je veux que mon eclairage soit actif
  • un input_select que je peux mettre a nuit, jour, ou off

je n’ai pas d’erreur mais rien ne se passe lorsque j’agis sur les inputs.
Voici mon code inséré dans configuration.yaml

template:
  - binary_sensor:
     - name: "allumage_lumext_activees"
       unique_id: allumage_lumext_activees
       state: >
        {is_state("input_boolean.lumieres_ext_activees", "on")
        and
         {is_state("binary_sensor.il_fait_nuit", "on")
           or is_state("input_select.force_nuit_jour", "nuit") }

Ou est mon erreur ?
merci d’avance

Bonjour,
As-tu essayé de créer ton template par l’UI?
Cela évitera les erreurs de syntaxe et d’indexation.
Tu peux aussi tester ta formule de calcul dans les outils de développement (Outils de développement → Modèle)

je ne connaissais pas le (Outils de développement → Modèle)
lorsque je mets le code j’ai le message suivant :
« Ce modèle n’écoute aucun événement et ne se mettra pas à jour automatiquement. »
Il manque un trigger ?

Salut

Les accolades { et les parenthéses ( ne sont pas bien …
3 { ouvrantes seulement 2 } fermantes et en plus tu confonds {} et () pour ton ou .
Et au final les doubles accolades, pour faire le calcul ne sont pas présentes

j’ai reussi a mettre au point la syntaxe avec vos messages et l’outil de developpement :

template:
  - binary_sensor:
     - name: "allumage_lumext_activees"
       unique_id: allumage_lumext_activees
       state: >
        {{ is_state("input_boolean.lumieres_ext_activees", "on")
        and
         (is_state("binary_sensor.il_fait_nuit", "on")
           or is_state("input_select.force_nuit_jour", "nuit") )
        }}

reste maintenant a mettre la bonne sequence. merci.

1 « J'aime »

bonjour,

il vaux mieux éviter de mettre des booléens dans un binary_sensor car bien souvent home assistant traite avec des chaines de caractères

Tu peux donc mettre l’état « on », « off » grace à une expression conditionnelle inline

state: "{{ 'on' if is_state('input_boolean.lumieres_ext_activees', 'on') and (is_state('binary_sensor.il_fait_nuit', 'on') or is_state('input_select.force_nuit_jour', 'nuit')) else 'off' }}"`