Trigger d'une variable

Bonjour,
Je ne trouve pas de réponse dans le forum
J’ai deux éléments qui peuvent déclencher un scénario dont le changement d’état d’une variable, en l’occurrence l’état de la variable quand le soleil se lève ou se couche
ma variable #variable(Soleil)# déclenche bien mon scénario, mon portail aussi par exemple
Si trigger(#[Sécurité Portes et Fenêtres][Portail][Ouverture]#) ==1 ET variable(Soleil) == 0
mais trigger(#variable(Soleil)#) ==1 ET variable(Soleil) == 1 n’est pas pris en compte
J’ai essayé d’autres solutions d’écriture du trigger de la variable mais soit ce n’est pas reconnu soit pas pris en compte car ça me donne 0=1 alors que mon portail quand il s’ouvre me donne bien 1=1, c’est bien lui qui a déclenché le scénario.
Pourtant c’est bien la variable qui a déclenché mais je ne veux pas que quand c’est le portail il s’occupe de la partie déclenchée par le soleil
Je ne sais pas si je suis assez clair !
Mais je vous remercie d’avance pour vos infos la dessus, peut-être on ne peut pas trigger une variable tout simplement

Bonjour,
En bloc code
https://community.jeedom.com/t/bloc-code-utilisation-fonction-triggervalue/82041
et comme je suis souvent dans cas j’utilise une petite fonction

function Trig_Infos($scenario, $debug){	//Fonction de recupé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];
  if($debug==true){
  	$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']);
  	$scenario->setLog('- - - - - Fonction Fin');
  }
  return $trig;
}

c’est gentil de ta part, mais comme pour moi c’est du chinois et que ça ne concerne que ce scénario, si on ne peut pas nativement trigger une variable , j’ai plus vite fait de créer un virtuel qui change d’état sur la variable soleil et du coup je saurai trigger le virtuel.
C’est juste pour savoir si c’est censé fonctionner ou pas prévu

OK
regarde par là https://community.jeedom.com/t/problemme-trigger-dans-scenario/22815

Sinon une recherche te donnera surement la solution

1 « J'aime »

Bonjour,

Je ne connais pas le but de votre scénario, mais vous pouvez vous y prendre plus facilement.
Sachant que, par exemple, le plugin Météo, sait l’heure du lever et du coucher du soleil à l’avance (pour la journée).
Il suffit tout simplement de créer un scénario qui se déclenche de manière programmé, tous les jours à 04h00 du matin.
Avec :
un bloc A : #[Météo][votreville][Lever du soleil]#
et un autre :
Bloc A : #[Météo][votreville][Coucher du soleil]#

Et vous placez les actions de lever ou coucher sous ces blocs.

C’est tout !

1 « J'aime »

à oui, je peux aussi faire comme ça, merci je vais regarder.
Mais ça ne me dit pas si à l’avenir je voulais utiliser la fonction trigger si je peux y mettre une variable.
Si ce n’est pas possible, ok, je fais autrement

Pour savoir pour le Trigger, regardez le fichier de log de votre scénario.
C’est la donnée qui est présente au début à chaque déclenchement.

Bonjour,

1er moyen de contournement :

Si trigger(#[Sécurité Portes et Fenêtres][Portail][Ouverture]#)

SINON

Pour résumer si c’est pas le portail le trigger ,c’est forcément la variable.

2ème moyen de contournement :
Utilisation de la fonction trigger sans valeur, celle-ci ne renvoie plus un binaire mais le nom du trigger :

SI trigger() == variable(Soleil)

oui moi j’ai ça et ça marche aussi avec la télécommande

je suis passé par un petit virtuel qui prend en compte le changement de la variable et ça marche nickel, comme ça mes spots sont commandés par un seul scénario, soit par le portail qui s’ouvre soit par le passage jour nuit

je note cette fonction !