En pleine migration de mon Jeedom de production sur Raspberry Pi OS Bookworm et Jeedom v4.5 bêta.
- J’entreprend le changement d’usage des Trigger
Et là, je me pose une question sur un cas.
Un scénario avec plusieurs déclencheurs, dont (mais pas que) 4 passages à 1 sur la présence.
Avant, si le déclencheur était la présence d’un des 4 nut, je procédait ainsi, dans un bloc SI : trigger(#[Localisation][Chloé][Présence]#) == 1 || trigger(#[Localisation][Fabrice][Présence]#) == 1 || trigger(#[Localisation][Sylvie][Présence]#) == 1 || trigger(#[Localisation][Yaris][Présence]#) == 1
Je bute pour savoir comment faire avec les nouveaux Trigger ?
Avant : le contrôle du déclencheur était fait ainsi: trigger(état commande A) == 1
Maintenant, en regardant les logs des scénarios, j’ai l’impression que je ne peux plus avoir cela :
Tags : "#trigger#":"virtualCmd"
ou "#trigger_name#":"[Localisation][Fabrice][Présence]"
ou "#trigger_id#":17864
ou "#trigger_message#":"Scénario exécuté automatiquement sur événement venant de : [Localisation][Fabrice][Présence] (1)"
ou "#trigger_value#":1
En gros, je pense que celui qui me correspond, à savoir QUI a déclenché le 1; c’est le #trigger_message# (qui contient le nom et l’état) mais avec de la pollution.
Bonjour,
Tu as le déclencheur : trigger_name et la valeur avec trigger_value. Si tu veux que les déclenchement à 1 en haut du scénario tu met un if trigger_value =0 alors stop et ensuite tu peux dans la suite de ton scénario tester le déclencheur avec trigger_name en sachant que c’est forcement 1 la valeur du déclencheur.
En effet je me rappelle maintenant de la discussion sur le sujet.
Et du coup je dégainerai ta solution pour passer par #trigger_id# avec une relecture facile du scénario
Je vais faire comme @Madcow l’a indiqué : #trigger_name# == "[Localisation][Fabrice][Présence]" || les autres à la suite
Puis, un nouveau bloc (unique) en dessous :
SI #trigger_value# == 1
Et mon action
#trigger_value# : Si c’est une commande qui a déclenché le scénario alors ce tag à la valeur de la commande ayant déclenché le scénario. Astuce si vous voulez la valeur courante de la commande qui a déclencher le scénario (et non sa valeur au déclenchement) vous pouvez utiliser : ##trigger_id## (double #)
Ça serait pas ##trigger_value## plutôt ? Puisque id renvoi l’ID de la commande :
#trigger_id# : Si c’est une commande qui a déclenché le scénario alors ce tag à la valeur de l’id de la commande qui l’a déclenché. Exemple : #trigger_id# == 19
C’est une (la) bonne idée, mais pas triviale, mais cela ne donne pas non plus la valeur, il faut ajouter un bloc pour l’avoir.
Je ne demande rien, mais dans un cas pareil, il faudrait une liste déroulante qui permet de sélectionner les commandes (à la manière du menu rechercher ou remplacer) ce qui serait très lourd.
C’est ce que j’ai fait en fin de compte, ce n’est pas une histoire de complexité, c’est juste qu’avant, en utilisant les commandes #macommande#, on avait l’état en même temps et le coté dynamique en cas de changement de nom des objets, équipement ou commande.
Si, mais il y a de multiple déclencheurs, comme le changement d’un mode par exemple.
Ha, je note une erreur dans mon message d’origine, sur ce que tu as cité, ce n’est pas tout à fait exacte. A la place de déclencheur il faut lire : le control du trigger.