Récupérer le nom de l'équipement du trigger pour un scénario

Bonjour,

Dans un scénario je souhaite récupérer le nom de l’équipement qui a initié le lancement du scénario.
Dans le log j’ai par exemple

Citation – Début : Scenario execute automatiquement sur évènement venant de : [Energie][Clim Couloir][Consigne Chauffage Eco (Valeur)] (19.5).

Je souhaite donc récupérer la valeur « Clim Couloir » (l’équipement) qui me permettra dans le scénario d’actionner ou pas des élèments de contrôle

Je sais utiliser trigger(#[Energie][Clim Couloir][Consigne Chauffage Eco]#) == 1 dans un SI et également triggerValue() pour la valeur.
Etant donné que je vais avoir plus de 15 triggers pour ce scénario, je souhaite identifier l’équipement du trigger et ainsi simplifier grandement mes SI successifs.

Merci d’avance pour votre aide.
Je suis sur Jeedom 4.4.20

Bonjour

Autant passer à jeedom 4.5 et faire votre scénario en fonction de la discussion:

Le faire sous 4.4.20 est à mon sens une perte de temps.

Antoine

3 « J'aime »

Bonjour,

Oui j’ai bien vu cela dans les annonces.

Dans tous les cas cela ne va pas m’aider pour comprendre comment récupérer le nom de l’équipement sur le déclencheur du trigger. il suffira de changer uniquement la référence lorsque je passerai en 4.51 (je vais attendre une sous version avant de me lancer à migrer :wink: )

Sais tu comment extraire l’information de la valeur de la deuxième info entre « [ ] » sur le déclencheur du trigger ?
Je n’ai pas réussi dans le scénario lui même ni dans un bloc code, cela doit être tout simple lorsque l’on connait :slight_smile:

Merci d’avance.

Non, je ne sais pas et je n’ai pas non plus compris en quoi elle est nécessaire.
Si #[Energie][Clim Couloir][Consigne Chauffage Eco]# a provoqué une action, forcément clim couloir en est la source.

Justement comment identifier que c’est Clim Couloir

OK un peu plus de précision, J’ai 5 clim avec 9 déclencheurs par clim qui doivent lancer ce scénario. Donc 45 tests (SI)

Afin de rationaliser les actions, je souhaite tout simplement identifier quelle est la clim qui a initié le scénario et agir suivant cela. Donc 5 (SI)
Pour simplifier la code et les actions et faciliter également la maintenabilité dans le temps.

Bonsoir
Si avec trigger_name tu récupères "[Energie][Clim Couloir][Consigne Chauffage Eco]« , pour vérifier si le trigger provient bien de [Clim Couloir], pourquoi ne pas essayer avec la fonction matches ?
Du genre :
Si "[Energie][Clim Couloir][Consigne Chauffage Eco] » matches "/Clim Couloir/" alors…

Ça ne pourrait pas marcher ?

Bonsoir,

Il est en 4.4.20 et ce tag n’existe pas.

C’est pour ça que Tonio lui conseillait de passer en 4.5 :smile:

1 « J'aime »

Oui je sais, j’ai d’ailleurs commenté d’un :+1: le conseil de @Tonio16 .
Mais tôt ou tard, il faudra bien qu’il passe en 4.5 :wink:

Mon objectif est bien de passer en 4.5x, la 4.5 venant juste de sortir.
Merci pour les réponses, la fonction Matches est-elle arrivée avec la version 4.5 ?
Est-ce que cette fonction est utilisable directement dans le scénario sans bloc Code ?

Dans ce cas ça va être la solution à mettre en place car visiblement la plus simple :slight_smile:

Le fonction matches est presente dans jeedom depuis que la sécurité sociale est en déficit …

Oui, dans toutes les conditions … Un petit tour côté doc scénario ? :wink:

Sinon : Scenario utilisation de la fonction "matches" ? (Vérifier se termine par) - #2 par ngrataloup (mais ça ne remplace pas un bon RTFM)

4 « J'aime »

Voici un bloc code que j’utilise en version < 4.5 :

//nom de la commande déclencheuse
$t_cmde=cmd::cmdToHumanReadable($scenario->getRealTrigger()); 
//extraction des noms utiles
$objet=strtok($t_cmde,"#[]");
$equipmt=strtok("#[]");
$cmde=strtok("#[]");

$tags = $scenario->getTags();
$tags['#objet#'] = $objet;
$tags['#equipmt#'] = $equipmt;
$tags['#cmde#'] = $cmde;
$scenario->setTags($tags);

ensuite dans ton SI tu as juste a vérifier : tag(equipmt)

Bonjour,

Même pas besoin d’utiliser un bloc code ; dans un virtuel :

Merci à tous pour vos réponses cela répond totalement à mon besoin et en plus avec ou sans bloc code.
Je vais pouvoir finaliser d’intégrer mes blocs Clim

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