Fonction trigger() retourne la valeur 'scenario'

Bonjour,

Je déclenche un scénario B à partir d’un scénario A.

Scénario A :

  • ne fait rien d’autre que lancer une action : Déclencher scénario B

Scénario B :

  • Test si trigger(scénario A)
    . * si test est ok, alors afficher : « condition si déclenchée. trigger() »
    . * sinon, alors afficher : « condition sinon déclenchée. trigger() »

Le truc est que je tombe toujours sur le sinon.
et la fonction trigger() retourne le mot ‹ scenario › !

N’est elle pas censée retourner le chemin du scénario A qui a déclenché ce scénario B ???

Merci pour votre aide

Avant de tagguer bug sur le post ce serait bien de lire la doc ou faire ses recherches.

1 « J'aime »

Bonjour,

Quelle version de Jeedom ?
Tu peux montrer des captures de ce que tu as fait et les logs du scénario ?

La fonction trigger() est sensé retourné dans ce cas le nom scénario qui l’a appelé sans les # donc par exemple [Aucun][Aucun][scenario A]

1 « J'aime »

Merci pour cette recherche effectuée à ma place.
Effectivement je n’ai pas pensé à faire des recherches avant de solliciter la communauté. Quel idiot je suis !

Bonjour Bison,

Je suis en Jeedom 4.3.17.

Je suis d’accord avec ton raisonnement. Je m’attendais aussi à recevoir [Trigger][Zhe config][Scenario A]

Voici quelques captures d’écran.

Scénario A:

Scénario B:

Résultat déclenchement scénario A:

Ai-je raté quelque chose ?
Merci pour ton aide, et bonne soirée.

1 « J'aime »

A l’exécution du scenario b, le log donne quoi?

Car le si trigger est pas censé avoir un egal quelque chose ?

D’après ce que j’ai compris

trigger() retourne le nom du trigger.
trigger(#[ma][commande][info]#) retourne vrai ou faux .
triggerValue() retourne la valeur de la commande info.

La doc dit :

#trigger# (déprecié, mieux vaut utiliser trigger()) : Peut être le nom de la commande qui a déclenché le scénario :
api si le lancement a été déclenché par l’API,
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_value# (déprecié, mieux vaut utiliser triggerValue()) : Pour la valeur de la commande ayant déclenché le scénario

Donc en l’état,
SI trigger() == « scenario »
on sait que le scénario a été exécuté par un scénario mais on ne sait pas lequel !

triggerValue() ne fonctionne pas car je n’ai pas le nom du scénario cela reste none

A mon avis dans son cas, plus vite fait de passer par un tag :wink:

1 « J'aime »

Salut,

Bon j’avais du rater un épisode, je viens de vérifier et effectivement trigger() retourne « scenario » lorsque c’est un scénario qui l’a exécuté.
Donc tu n’as pas le choix, il faut passer par un tag comme proposé par prflaken

Concrètement :

  • sur ton scénario A dans la case Tags du met : sc=A
  • dans le bloc SI de ton scénario B tu oublies la fonction trigger : SI tag(sc) == "A" ALORS Message "Condition SI déclenché par scénario A"
1 « J'aime »

@anon53349806 @Bison merci pour votre aide.

En suivant vos conseils, j’ai effectivement réussi à faire fonctionner les scénarios.

Scénario A corrigé :

Scénario B corrigé :

Résultat: C’est la condition SI qui est déclenchée .

Sujet clos :slight_smile:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.