Récupérer un nom dans les commandes (trigger)

Bonjour,
Avec une fonction trigger dans un scenario, je souhaite récupérer une partie du nom de la commande afin d’être notifié avec une certaine partie du nom de la commande du trigger déclencheur. Voici le scenario :

Par exemple avec le trigger : #[Buanderie][Porte frigo buanderie][Etat]# , je souhaite récupérer uniquement #Porte frigo buanderie# et être notifié

J’ai tenté strtolower(substr(#trigger#,1,strpos(#trigger#, ']')-1)) mais ca récupère #buanderie# au lieu de #Porte frigo buanderie#

Une idée ?

Hello, tu peux le faire avec la fonction name(eqLogic,#[Buanderie][Porte frigo buanderie][Etat]#)

voici l’explication de la documentation (https://doc.jeedom.com/fr_FR/core/4.0/scenario):

  • name(type,commande) : Permet de récupérer le nom de la commande, de l’équipement ou de l’objet. Type : cmd, eqLogic ou object.

Mathieu

Merci de ta réponse. Dans mon scénario j’ai 3 déclencheurs…du coup comment je mets cela dans ma commande pour être notifié ?

Bonjour,
il faut jumeler la fonction trigger() et name().
ajoute simplement ceci :
name(eqLogic,trigger())

Bonjour
Une autre solution (avec un nom personnalisable à souhait)
Est de découper ton premier si en 3
Si trigger(porte1)==1
Alors tag : Porte :toto 1

Si ………. Porte 2 == 1
……… tag : porte : toto 2

Si
…………… tag : Porte : toto 3

Dans ton message tu écris ensuite
« Porte tag(Porte) blablabla »

(Tu n’as pas besoin d’une variable ici / il faut pas utiliser de variable inutilement = ca consomme. Tu n’échanges pas avec d’autres parties de Jeedom. Il faut utiliser une variable disons…. Local et non mémorisée en dur (valable que dans l’instance du scenario en cours. Également dans celle des bloc Dans / A ) : c’est le tag / voir doc scénario)

Bonne recherche !

Ps: ce lancer sans avoir lu et relu la doc… c’est pas évident. Je t’invite a le faire. Voir les évidemment l’utilisation des tags mais également du trigger. #trigger# est déprécié il faut mieux trigger()…

Merci de vos réponses :slight_smile: . Je vais testé tt ça des que j’ai un peu de temps.

bonsoir,
je le fait en bloc code si cela peux t’aider voici la fonction que j’utilise:

function Trig_Infos($scenario){	//Fonction de récupération des informations du trigger du scénario
  	$trig['Id'] = str_replace('#', '',$scenario->getRealTrigger());
  	$trig['Human'] = str_replace('#', '',cmd::cmdToHumanReadable($scenario->getRealTrigger()));
  	$trigArray = explode(']', str_replace('[', '', $trig['Human']));
  	$trig['Groupe']=$trigArray[0];
  	$trig['Name']=$trigArray[1];
  	$trig['Info']=$trigArray[2];
  	$scenario->setLog('Fonction Trig_Infos :');
  	$scenario->setLog('-id = '.$trig['Id']);
  	$scenario->setLog('-human = '.$trig['Human']);
  	$scenario->setLog('-groupe = '.$trig['Groupe']);
  	$scenario->setLog('-name = '.$trig['Name']);
  	$scenario->setLog('-info = '.$trig['Info']);
  	return $trig;
}
1 « J'aime »

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