Aïe Aïe Aïe… Quelques petites précisions !
Pour commencer : merci d’avoir partagé ton retour d’expérience car cela permet de voir les difficultés rencontrés par les nouveaux utilisateurs .
Ca c’est parce que dans le champ libre de remplissage de ton modèle (template) tu as commencé et fini par le caractère "
. C’est effectivement le caractère d’englobement des modèles mais l’interface graphique va te les ajouter pour toi donc les deux \"
sont en faite la combinaison de \
(qui est le caractère d’évitement, signalant à l’interpréteur de code de ne pas tenir compte du caractère suivant, mais de l’afficher tout de même à l’utilisateur) et du caractère "
(qui est non pris en compte grâce au caractère le précédent).
Ce fichier n’a pas pour vocation d’être édité à la main. Ce fichier est géré par l’interface graphique et est généralement pollué d’information graphique.
Par exemple :
value_template: "\"{{\n ((as_timestamp(states.calendar.<moncalendrier>.attributes.start_time)\n\
\ - as_timestamp(now())) < 60) and\n ((as_timestamp(states.calendar.<moncalendrier>.attributes.start_time)\n\
\ - as_timestamp(now())) > 0) }}\""
équivaut à (au saut de ligne près):
value_template: |
{{
(
(as_timestamp(states.calendar.<moncalendrier>.attributes.start_time) - as_timestamp(now())) < 60
)
and
(
(as_timestamp(states.calendar.<moncalendrier>.attributes.start_time) - as_timestamp(now())) > 0
)
}}
Tu as des informations uniquement utilisées par l’interface graphique qui polluent la lecture.
Par contre, si tu passe par l’interface graphique pour afficher le code que tu présente, tu n’as plus de pollution avec les \n
et les évitements :
Je t’ai conseillé d’utiliser state_attr
pour récupérer la valeur d’un attribut.
Tu devrais relire la documentation au calme pour utiliser également states(<entité>)
au lieu de states.<entité>.state
comme le préconise ladite documentation, elle t’indique également que le type de donnée récupérée est une chaine de caractère (string).
Je viens de l’expliquer juste dessus que le type récupéré est une chaine de caractère donc effectivement tu dois utiliser un filtre (filter) pour le convertir en un nombre.
|int
fonctionne dans ton cas, mais tu soustrait un float
avec un integer
. tu devrais utiliser la même base pour tout ton calcule :
{{ ((as_timestamp(state_attr('calendar.<moncalendrier>', 'start_time')) - as_timestamp(now()))|int < (states.input_number.minavant.state | int)*60) and ((as_timestamp(state_attr('calendar.<moncalendrier>', 'start_time')) - as_timestamp(now()))|int > 0)}}
J’ai fini mes remarques qui n’ont pour but que de te faire progresser !
Je salue encore une fois t’a démarche de recherche et de partage