Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Connaître le trigger() d'un scénario

De l'installation à l'utilisation venez discuter de JEEDOM au quotidien
Avatar de l’utilisateur
fwehrle
Actif
Messages : 2824
Inscription : 01 juil. 2015, 11:03
Localisation : Strasbourg

Re: Connaître le trigger() d'un scénario

Message par fwehrle » 31 janv. 2018, 12:48

Pas mal..
Mais c'est souvent en posant la question qu'on trouve la réponse..

Envoyé de mon Nexus 6P en utilisant Tapatalk

Jeedom 3 sur Debian 9 en VM Proxmox 5 sur NUC Intel.
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea

Avatar de l’utilisateur
diving91
Timide
Messages : 372
Inscription : 08 mars 2015, 18:29
Localisation : Essonne (91)
Contact :

Re: Connaître le trigger() d'un scénario

Message par diving91 » 26 avr. 2018, 08:53

Bonjour,

A noter que #trigger# est vide quand le scenario est appelé via l'API http ( je suis en V3.1.7)

Code : Tout sélectionner

 http://#IP_JEEDOM#/core/api/jeeApi.php?apikey=#APIKEY#&type=scenario&id=#ID#&action=#ACTION#
diving
Diving91,
RPI2 + SSD 30MB - RfxTrx433E - Store Somfy - Led Milight - MySensors Gateway ESP8266 - Noeuds ESP Easy
Ma Station Météo sous Jeedom

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Connaître le trigger() d'un scénario

Message par loic » 26 avr. 2018, 09:50

Bonjour,
C'est normal faut etre en 3.2.X pour avoir le paramètre trigger.
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

Avatar de l’utilisateur
diving91
Timide
Messages : 372
Inscription : 08 mars 2015, 18:29
Localisation : Essonne (91)
Contact :

Re: Connaître le trigger() d'un scénario

Message par diving91 » 26 avr. 2018, 12:38

loic a écrit :
26 avr. 2018, 09:50
Bonjour,
C'est normal faut etre en 3.2.X pour avoir le paramètre trigger.
Bonjour,

OK - merci; j'avais bien vu dans le changelog que jeeAPI pour accéder aux variables est à partir de v3.2.x mais pas pour #trigger#

au passage, je pense que cela enrichirai la doc "scenario" si les différentes valeur de #trigger# étaient documenté comme fait dans le premier post de ce fil.

PS: je le propose seulement (un peu passif) car je ne sais pas faire, sinon, j'aurai soumis un "commit" (plus actif) sur la doc

diving
Diving91,
RPI2 + SSD 30MB - RfxTrx433E - Store Somfy - Led Milight - MySensors Gateway ESP8266 - Noeuds ESP Easy
Ma Station Météo sous Jeedom

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Connaître le trigger() d'un scénario

Message par loic » 26 avr. 2018, 12:40

Ben tu as soit schedule soit api soit le nom de la commande. Voila les valeurs possible
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

Avatar de l’utilisateur
diving91
Timide
Messages : 372
Inscription : 08 mars 2015, 18:29
Localisation : Essonne (91)
Contact :

Re: Connaître le trigger() d'un scénario

Message par diving91 » 26 avr. 2018, 16:31

loic a écrit :
26 avr. 2018, 12:40
Ben tu as soit schedule soit api soit le nom de la commande. Voila les valeurs possible
je trouvais le texte de masterfion assez sympa.
Lorsqu'un scénario est exécuté par un déclencheur alors le trigger est "[Nom du déclencheur]"
Lorsqu'un scénario est exécuté par une programmation alors le le trigger est "#schedule#"
Lorsqu'un scénario est exécuté manuellement alors le trigger est "user"
Lorsqu'un scénario est exécuté par une interaction alors le trigger est "interact"
Lorsqu'un scénario est exécuté à partir d'un autre scénario, le trigger est "[Groupe][Nom du scenario]"
Lorsqu'un scénario est exécuté par lui même à partir d'un bloc A puis un time_op "+5mn" alors le trigger est "[Groupe][Nom du scenario]"
Lorsqu'un scénario est exécuté par lui même à partir d'un bloc DANS "5mn", il n'existe aucun trigger puisque DANS génère une sous-tâche
il liste aussi interact, user et #schedule# (et pas schedule) (celui là je le vois aussi en V3.1.7)
Diving91,
RPI2 + SSD 30MB - RfxTrx433E - Store Somfy - Led Milight - MySensors Gateway ESP8266 - Noeuds ESP Easy
Ma Station Météo sous Jeedom

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Connaître le trigger() d'un scénario

Message par loic » 26 avr. 2018, 16:36

Effectivement j'en ai oublié quelqu'un c'est ajouté dans la doc. Par contre pour moi c'est schedule et plus #schedule#
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

Avatar de l’utilisateur
diving91
Timide
Messages : 372
Inscription : 08 mars 2015, 18:29
Localisation : Essonne (91)
Contact :

Re: Connaître le trigger() d'un scénario

Message par diving91 » 26 avr. 2018, 18:50

loic a écrit :
26 avr. 2018, 16:36
Effectivement j'en ai oublié quelqu'un c'est ajouté dans la doc. Par contre pour moi c'est schedule et plus #schedule#
Merci beaucoup.

en 3.1.7 je confirme que c'est #schedule# - donc ça doit être un changement 3.2 (et c'est mieux car plus cohérent avec le reste).
Je passerai en 3.2 une fois que j'aurai réglé mes widgets qui sont encore à l'ancienne sauce

Encore merci

diving
Diving91,
RPI2 + SSD 30MB - RfxTrx433E - Store Somfy - Led Milight - MySensors Gateway ESP8266 - Noeuds ESP Easy
Ma Station Météo sous Jeedom

Avatar de l’utilisateur
fwehrle
Actif
Messages : 2824
Inscription : 01 juil. 2015, 11:03
Localisation : Strasbourg

Re: Connaître le trigger() d'un scénario

Message par fwehrle » 06 mai 2018, 14:17

Question annexe : est-ce qu’on a une chance de revoir le tag user revenir? Pour savoir qui a lancé le scénario (via les interactions pas ex). Car j’ai vu qu’en 3.2, on pouvait associer une commande de notification à chaque utilisateur. Mais comment s’en servir ensuite?
Jeedom 3 sur Debian 9 en VM Proxmox 5 sur NUC Intel.
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea

Avatar de l’utilisateur
Theduck38
Helper
Messages : 2714
Inscription : 22 févr. 2015, 17:32
Localisation : Près de Grenoble
Contact :

Re: Connaître le trigger() d'un scénario

Message par Theduck38 » 20 mai 2018, 14:23

Hello,

En 3.2.7, le trigger pour le schedule s'écrit :
trigger()=="schedule"
ou
trigger(schedule)==1
@Masterfion, tu pourrais modifier le premier post STP ?
-- TD38 --
Helper Officiel Jeedom
Zimeteo sur Jeedom : http://www.meteo.lecoin.info
Jeedom Stable sur serveur custom
Le risque électrique - Afficheur leds RGB - Tablette Murale - Thermostat connecté

Avatar de l’utilisateur
Theduck38
Helper
Messages : 2714
Inscription : 22 févr. 2015, 17:32
Localisation : Près de Grenoble
Contact :

Re: Connaître le trigger() d'un scénario

Message par Theduck38 » 07 janv. 2019, 10:04

Bonjour,

J'ai un petit souci... un scénario qui se déclenche temporellement plus sur une remontée de température extérieure...

Si j'écris en condition :
trigger()=="schedule" => ça marche pour les schedules
MAIS
quand la température vaut zéro, j'obtiens :
0=="schedule" => TRUE !!!

En utilisant "matches", ça ne fonctionne pas du tout (ou alors je n'ai pas compris lusage, car sur mon évaluateur, "schedule" matches "/schedule/" donne toujours faux).

Quelqu'un sait résoudre ce cas ? J'ai triché en mettant dans ma condition un test sur la valeur des minutes mais ce n'est pas très élégant.
LA question, aussi, c'est pourquoi diable Jeedom pense que 0 est égal à "schedule"...

[Edit] Avec trigger(schedule)==1, ça marche... il n'empêche que la question précédente reste valable...
-- TD38 --
Helper Officiel Jeedom
Zimeteo sur Jeedom : http://www.meteo.lecoin.info
Jeedom Stable sur serveur custom
Le risque électrique - Afficheur leds RGB - Tablette Murale - Thermostat connecté

Avatar de l’utilisateur
tomdom
Actif
Messages : 925
Inscription : 14 nov. 2016, 05:46

Re: Connaître le trigger() d'un scénario

Message par tomdom » 08 janv. 2019, 06:57

Bonjour,

Pour répondre à ta question, PHP tente de transformer ta chaîne de caractère en numérique. Vu qu'il n'y a pas de chiffre, ta chaîne vos 0. Donc le résultat est vrai.

Code : Tout sélectionner

0=="1toto"  -> FAUX
0=="toto" -> VRAI
1=="1toto" -> VRAI
1=="toto" -> FAUX
Si tu ne veux pas de conversion, il faut utiliser ===
Il y a 10 catégories de personnes, celles qui connaissent le binaire et les autres
.

Avatar de l’utilisateur
Theduck38
Helper
Messages : 2714
Inscription : 22 févr. 2015, 17:32
Localisation : Près de Grenoble
Contact :

Re: Connaître le trigger() d'un scénario

Message par Theduck38 » 08 janv. 2019, 18:28

OK... je ne connaissais pas le truc du triple égal. Merci !
-- TD38 --
Helper Officiel Jeedom
Zimeteo sur Jeedom : http://www.meteo.lecoin.info
Jeedom Stable sur serveur custom
Le risque électrique - Afficheur leds RGB - Tablette Murale - Thermostat connecté

AmenatiS
Timide
Messages : 6
Inscription : 14 mai 2019, 15:31

Re: Connaître le trigger() d'un scénario

Message par AmenatiS » 11 juin 2019, 22:35

Lorsqu'un scénario est exécuté par lui même à partir d'un bloc DANS "5mn", il n'existe aucun trigger puisque DANS génère une sous-tâche
Ce n'est pas tout a fait vrai.

Code : Tout sélectionner

#trigger# == "scenario"
voici une petit feinte qui permet de savoir si le trigger est lancé par lui même dans un bloc "dans"...

Effectivement, on ne spécifie pas son nom, on pourrait penser que la confusion serait facile, mais comme dans tous les autres cas on precise le nom, c'est finalement pas si grave.

J'ajoute que si l'on souhaite connaître le nom du trigger dans le cadre de debug, il suffit d'ajouter un bloc action qui créer une variable dont le valeur sera #trigger#... ne reste plus qu'a regarder dans la log ou dans les variables presentes la valeur dont elle herite.

enfin. pour celui qui se demande qu'elle difference entre #trigger# et trigger(), je pense que :

#trigger# est un appel a une variable
trigger() est un appel a une fonction

donc
#trigger# == "Nom de la commande" retourne vrai ou faux
trigger("Nom de la commande") == 1 retourne vrai ou faux également.

la façon de faire est juste différente

ManuJ71
Timide
Messages : 144
Inscription : 02 oct. 2016, 18:36

Re: Connaître le trigger() d'un scénario

Message par ManuJ71 » 09 juil. 2019, 22:44

Bonjour,

je souhaiterais par un code php trouver l'ID ou le nom du scénario déclenchant ...

La commande $declencheur=$scenario->getRealTrigger(); me donne bien "scenario" mais pas le num du scénario ...

dans l'exemple $declencheur n'est pas un array et je ne trouve pas la méthode a utiliser ...

qqn a t il une idee ?

merci d'avance

Avatar de l’utilisateur
Jeandhom
Actif
Messages : 1386
Inscription : 20 oct. 2015, 17:32

Re: Connaître le trigger() d'un scénario

Message par Jeandhom » 09 juil. 2019, 23:30


ManuJ71
Timide
Messages : 144
Inscription : 02 oct. 2016, 18:36

Re: Connaître le trigger() d'un scénario

Message par ManuJ71 » 10 juil. 2019, 07:40

malheureusement non ...
Cela ne fonctionne pas ... pour récupérer le nom d'un object, je ne sais pas je n'ai pas essayé, mais lorsqu'un scenario est le déclencheur, la méthode getRaelTrigger ne renvoie que "scenario" sans préciser lequel ...

Mon souci est que des scénario chez moi peuvent être appelés par plusieurs scenario différents, et que le comportement de ces scénario dépend du trigger ...

Pour l'instant, je fonctionne avec des tags ... mais récupérer le trigger sans devoir est plus élégant...

Répondre

Revenir vers « Utilisation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités