Bonjour a tous.
J’ai créé deux automatisations destinées a effectuer des actions sur receptions de codes IR de télécommandes.
Les messages IR sont receptionnés via un dongle IR Flirc.
Le Dongle est bien reconnu et les messages bien recus. Il est configuré comme suit dans configuration.yaml
En fait tout fonctionne bien sauf que…la deuxième automatisation ne se déclenche qu’une fois sur deux ou 3… alors que la première se declenche bien a chaque fois…!
Elles ont pourtant le meme trigger…
Lorsque mes lights sont allumées par exemple et que j’appuie sur le bouton de la telecommande pour les eteindre, la premiere automatisation recoit bien le message et change bien le input_texte.mykeycode, mais la deuxième automatisation ne se declenche QUE si j’appuie une deuxième ou troisième fois sur le bouton…
J’ai testé avec tout les modes possible l’automatisation 2 (redemarrage, file d’attente, parallèle…)
…idem…
Je sui preneur de conseils!
Merci!
J’ai testé en integrant l’automatisation 1 a l’automatisation 2 mais la ca ne fonctionne plus du tout…
le input_text.mykeycode est bien changé, mais les actions suivantes ne s’effectuent pas
Le mode restart ça veut dire que l’automatisation s’arrête et repart de 0 quand il y a un nouveau déclencheur
Tu as une unique valeur de input_text.mykeycode pour l’ensemble donc le dernier code reçu ecrase le précédent, donc même en paraléllisant ça va coincer
Tu as mis plein de choose (et des conditions) dans la même automatisation. Donc techniquement tu ne mins facilement pas jouer en parallèle 2 commandes avec cette organisation. C’est d’autant plus vrai que potentiellement si le temps d’exécution est long.
Perso je ferai autant d’automatisations que de choose avec des conditions qui se basent sur la valeur trigger (qui elle est spécifique à l’automatisation courante)
C’est ce que je voulais aussi. L’automatisation commande un groupe de lumière, qui ne peut être que dans un seul et unique etat à la fois. Donc un seul input_text…Et ca coince quelque soit le mode…
Alors oui je me suis demandé si le code n’était pas trop « lourd » ou « long », et que le temps d’execution impactait le changement de valeur de l’input_text. Mais il y a un comportement etrange de l’automatisation 2 : meme si j’attends plusieurs minutes pour appuyer a nouveau sur un bouton l’input_text change bien, l’automatisation 1 est lancée avec la bonne valeur de l’input_text; l’automatisation 2 est lancée mais l’input_text n’a pas changé! (uniquement dans cette automatisation…)
J’y ai pensé mais je trouve ca un peu lourd de faire 6 ou 7 automatisations là ou on peut n’en faire qu’une seule… d’autant plus qu’elle n’a pas l’air si lourde.
Avoir un seul et unique état à l’instant X c’est pas exactement pareil que de dire : j’ai pas fini de tout faire (donc arrivé dans un état stable/connu) et je demande déjà à faire autre chose. Je dirais même que c’est l’inverse puisque potentiellement tu es a un moment donné, dans un état complétement différent (un truc à mi-chemin) de ceux que tu as toi-même défini.
Je ne l’utilise pas mais j’ai l’impression que ce que tu veux c’est des scénes
Tu as les traces et donc les durées des actions pour vérifier, mais 4 commandes rest avec un timing de 60s par défaut, ça fait déjà un long temps d’exécution.
C’est une question de point de vue mais 1 grosse automatisation versus 6 ou 7 petites, on ne peut pas dire que c’est plus lourd. Tu as une liste plus longue certes, mais les actions (et les conditions) seront exactement les même. Le gros avantage c’est que comme c’est moins long, c’est plus facile à debugger et plus facile à corriger (comprendre moins d’effet de de bord)
d’ou le mode restart…ca sert bien a ca non? si appel de l’automatisation alors qu’un premier appel n’est pas encore fini, j’arrete le premier et j’execute le deuxième?
j’apelle des scenes justement dans l’automatisation… y a t’il un autre moyen que l’automatisation pour apeller des scenes?
je vais essyaer comme ca pour voir…
Mais vraiment ce que je ne comprends pas c’est pourquoi meme lorsque je laisse le temps a l’automatisation de se terminer, l’input_text change bien sur nouvel appel de bouton SAUF dans l’automatisation 2 ?
Ca ressemble a un bug pour moi…
Oui, c’est pas tellement là le souci, c’est plus que les actions qui découle de la 1ere action ne sont pas toutes réalisées (certes sont faites/d’autres sont en cours et d’autres ne seront jamais faites). C’est une façon peu conventionnelle de faire dans une environnement évènementiel …
Pas que … rest, c’est pas une scene, et puis ça pourrait même être des actions de groupe puisque tu as 4 fois la même action
Sur le principe, je pense aussi que ça devrait finir. Mais tu as les traces pour vérifier si c’est bien la cas. C’est pas forcement le cas ici, mais le plus souvent le bug c’est l’humain dans l’affaire.
Et la j’ai le meme comportement : l’automatisation se declenche bien avec le trigger « keyboard_remote_command_received », mais elle ne voit pas le changement de valeur de l’input_text qui a changé…pour moi ca ressemble fortement à un bug meme si nos amis informaticiens situent souvent le problème entre la chaise et le clavier!
Je pense que je devrais changer de trigger et mettre comme trigger le changement de valeur de l’input_text.
qu’entends tu par
ou je trouve les traces? dans l’historique d’execution de l’automatisation?
ah mais non je ne peux pas faire comme ca : si j’allume ou eteints les lumières manuellement, l’input_text ne changera pas et au prochaine appui sur la telecommande la valeur de l’input text sera la meme…
De toute facon le trigger n’est pas le problème vu que l’automatisation se declenche à chaque appui. Le soucis c’est VRAIMENT que l’automatisation ne voit pas le changement de valeur de l’input_text une fois sur deux…
j’ai splitté la configuration : une automatisation par scene. pour l’instant uniquement ON et OFF.
comportement tres etrange:
lorsque je clique sur ON de la telecommande, uniquement la scene OFF se declenche. Et comme le keycode ne correspond pas, rien ne se passe. Si j’appuie une deuxième fois sur ON : l’automatisation ON se declenche et pas la OFF. les lumières s’allument…
comportement exactement inverse lorsque j’appuie sur le OFF de la telecommande…
Tres etrange…
Automatisation OFF :
Tu es le seul à pouvoir le savoir.
La condition c’est comme un filtre, l’automatisation n’est valable (et lancée) que quand la condition l’est aussi.
Dans ton exemple qui marchote, le code de la condition du trigger est différent (15 ou 38), donc quand ta télécommande envoie la valeur 15, ça doit déclencher l’ automatisation 15 et pas la 38. Quand c’est l’inverse et qu’elle envoie 38, ça doit déclencher l’automatisation 38 et pas la 15.
Bref c’est pas un bug, c’est le comportement demandé, regarde l’état de l’input au moment du déclenchement Puisque tu mets le code dans l’input APRES (tu l’as même oublié dans l’exemple), c’est normal de déclencher avec 1 tour de retard
Bon j’ai trouvé la solution ici : https://community.home-assistant.io/t/automation-with-choose-action/394400
En fait il faut spécifier CHAQUE trigger et assigner une ID a chacun d’entre eux. Ensuite c’est l’ID qui declenche l’action dans les conditions de l’option choose.
C’est un peu plus lourd comme code, mais au moins il n’y a qu’une seule automatisation.
Si cela peut servir a quelq’un je partage le code qui fonctionne parfaitement. @Pulpy-Luke Merci pour tes précieux conseils!