Changement sur la partie trigger des scénarios : LIEN
triggerId() est maintenant deprecated et sera retiré dans les futures mises à jour du core
trigger() est maintenant deprecated et sera retiré dans les futures mises à jour du core
triggerValue() est maintenant deprecated et sera retiré dans les futures mises à jour du core
#trigger# : Peut être :
api si le lancement a été déclenché par l’API,
TYPEcmd si le lancement a été déclenché par une commande, avec TYPE remplacé par l’id du plugin (ex virtualCmd),
schedule s’il a été lancé par une programmation,
user s’il a été lancé manuellement,
start pour un lancement au démarrage de Jeedom.
#trigger_id# : Si c’est une commande qui a déclenché le scénario alors ce tag prend la valeur de l’id de la commande qui l’a déclenché
#trigger_name# : Si c’est une commande qui a déclenché le scénario alors ce tag prend la valeur du nom de la commande (sous forme [objet][équipement][commande])
#trigger_value# : Si c’est une commande qui a déclenché le scénario alors ce tag prend la valeur de la commande ayant déclenché le scénario
#trigger_message# : Message indiquant l’origine du lancement du scénario
Dans certains de mes scénarios avec plusieurs déclencheurs je testais pour savoir quel déclencheur avait lancé le scénario de cette manière
trigger(#[Home][ShellyVRChambre][Online]#) == 1
Si je lance mon scénario manuellement dans le log j’ai
[2024-10-01 11:45:33][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[Home][ShellyVRChambre][Online]#) == 1
[2024-10-01 11:45:33][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
Jusque là pas de souci comme le scénario a été lancé manuellement le résultat est OK
Mais du coup avec les nouveaux je ne sais pas quoi mettre.
Avant pour savoir ce qui avait déclenché le scénario on faisait (enfin moi)
If trigger(#[Home][ShellyVRChambre][Online]#) == 1
Donc je savais que c’était la commande #[Home][ShellyVRChambre][Online]# qui avait déclenché
Avec les nouveaux trigger je suis perdu je ne sais pas quoi utiliser et si je tente la proposition de Mips, en exécution manuelle j’ai des expression non valide
Je vais prendre mon scénario plus complexe
Voilà mes déclencheurs
Voici mes tests pour savoir ce qui a déclenché
Voici le log
[2024-10-01 12:36:25][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[Multimédias][Dark Vador][Online]#) == 1
[2024-10-01 12:36:25][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2024-10-01 12:36:25][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-10-01 12:36:25][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[Multimédias][Dark Vador][Code Erreur]#) == 1
[2024-10-01 12:36:25][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2024-10-01 12:36:25][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-10-01 12:36:25][SCENARIO] - Exécution du sous-élément de type [condition] : if trigger(#[Multimédias][Dark Vador][Etat]#) == 1
[2024-10-01 12:36:25][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
La doc 4.5 dit
trigger() est maintenant deprecated et sera retiré dans les futures mises à jour du core
Donc par quoi remplacer mes tests ? Car tout ce que j’ai essayé génère des erreurs dans le log
C’est dans le changelog si tu veux comparer au nom c’est #trigger_name# = nom_commande (sans les #) c’est bien décris dans le changelog et la doc. Si c’est par l’id c’est #trigger_id# = id_commande.
[2024-10-01 12:44:17][SCENARIO] **-- Début :** . Tags : {"#trigger#":"user","#trigger_value#":"Luis","#trigger_message#":"Scénario lancé manuellement"}
[2024-10-01 12:44:17][SCENARIO] - Exécution du sous-élément de type [condition] : if '#trigger_name#' == '[Multimédias][Dark Vador][Online]'
[2024-10-01 12:44:17][SCENARIO] Evaluation de la condition : ['#trigger_name#' == '[Multimédias][Dark Vador][Online]'] = Faux
OK la c’est bon.
Je sais que je ne suis pas hyper doué en programmation mais là je pense qu’il va falloir des exemples dans la doc sinon il va y avoir un paquet de demande.
Merci Mips, Merci Loïc pour votre aide et votre temps
J’en ai deja rajouté pas mal et la documentation en donne aussi. Après n’hesitez pas a faire des PRs si vous pensez que ca suffit pas mais pour moi il y a ce qu’il faut (j’en ai encore rajouté après le commit en lien tout a l’heure).
Vu le peu de personnes qui lisent la doc, j’espère me tromper mais il va y avoir pas mal de questions remontées sur la communauté. Parce que ce n’est pas intuitif comme syntaxe (et peu courant dans le reste de Jeedom).
J’imagine qu’il n’y a pas d’autres solutions techniques donc on va s’adapter.
Je cite la documentation :
Si vous avez trigger(#[cuisine][lumiere][etat]#) == 1
il faut le remplacer par '#trigger_name#' == '[cuisine][lumiere][etat]'
Mais comment tester si c’est un état 0 ou 1 ou truc ?