Message malformed: Entity {{ climate_entity_id }} is neither a valid entity ID nor a valid UUID for dictionary value @ data['sequence'][0]['if'][0]['entity_id']
Au final, j’ai un peu de mal à comprendre pourquoi ma variable est interprétée dans le then, mais pas dans le if sur un condition state…
Si vous aviez une explication claire (ou un lien vers la doc) ça serait top SVP, pour m’éviter de refaire la même erreur
Pourquoi ne pas utiliser l’interface graphique pour créer votre script? Vous pouvez mettre du YAML pour les cas non pris en charge. C’est bien plus simple pour trouver les erreurs.
J’ai fait un if then pour une de mes entités climate via l’interface et ensuite j’ai demandé de montrer la version YAML et ça me donne:
if:
- condition: state
entity_id: climate.bedroom
state: heat
then: []
Je ne suis pas sûr de comprendre ce qu’est « climate_entity_id » pour toi?
Justement, {{ climate_entity_id }} est en fait une variable, ce qui me permet d’appeler mon script pour plusieurs entités distinctes, et ça fonctionne dans le cas du premier script. Mais pas dans le cas du second, ce qui est mon problème
Je comprends le rejet de l’interface graphique, surtout quand on travaille avec des variables, donc des templates Mais c’est la direciton que prend HA alors qu’ils avaient une philosophie 100% à l’opposé il y a encore quelques années.
Néanmoins, j’ai copié tes scripts dans l’interface graphique de création d’home assistant en mode YAML depuis les 3 points en haut à droite, puis je suis repassé en mode graphique avant de sauvegarder.
Le script 1, aucun problème. Le script 2 effectivement il ne va pas. Voici la différence:
OK:
Ahhh excuse moi, en relisant je comprends mieux. J’ai fait des tests, j’ai d’abord cru que j’avais compris, j’ai commencé une explication puis en fait… non
Effectivement c’est louche. J’imagine que la façon dont les conditions sont interprêtées dans le code d’HA utilise une mécanique différente que dans les appels de services.
Salut,
je pense que la différence vient du fait que dans le script qui ne marche pas, tu ne passes pas l’entité mais une chaine de caractères et c’est ça qui ne passe pas.
Après interprétation il a pris en compte ça:
- condition: state
entity_id: "climate.salon"
state: "off"
Alors qu’il aurait aime ça:
- condition: state
entity_id: climate.salon
state: "off"
Et de la même, dans le script qui marche. La fonction states elle elle attend bien une chaine de caractère qui contient le nom d’une entité…
states("climate.salon") => OK
states(climate.salon) => PAS OK