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
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

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

Message par Masterfion » 09 mars 2016, 10:40

Bonjour à tous

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

Edit :
J'utilise beaucoup cette fonction et d'après les messages qui ont suivi le miens, ce n'est pas très clair pour tout le monde.
Voici quelques exemple concrets...

Si je veux contrôler qu'un scénario A est lancé par un scénario B alors j'écris :
SI trigger() matches "/[Groupe Scénario][Scénario B]/"
SI #trigger# matches "/[Groupe Scénario][Scénario B]/"

Si je veux contrôler qu'un scénario A n'est pas lancé par un scénario B alors j'écris :
SI not(trigger() matches "/[Groupe Scénario][Scénario B]/")
SI not(#trigger# matches "/[Groupe Scénario][Scénario B]/")

Si je veux agir dans le cas d'un scénario lancé par une interaction alors j'écris :
SI trigger()=="interact"
SI #trigger#=="interact"

Si je veux agir dans le cas d'un scénario lancé manuellement alors j'écris :
SI trigger()=="user"
SI #trigger#=="user"

Si je veux agir en fonction du déclencheur d'un scénario (mode "provoqué") alors j'écris :
SI trigger(#[Salon][Oeil][Présence]#)==1
SI #trigger#=="[Salon][Oeil][Présence]"

Si je veux savoir si un scénario est actionné par une programmation (mode "programmé") alors j'écris :
SI trigger()=="#schedule#"
SI #trigger#=="#schedule#"

Ces quelques exemples serviront à ceux qui ne maîtrise pas trop les trigger (c'est très très pratique) mais pourquoi un bloc DANS est-il traité si différemment ? Je trouve que c'est assez incohérent donc j'ai pris le temps de donner mon avis 8-)

Bisous Bisous :D
Dernière édition par Masterfion le 21 avr. 2016, 22:02, édité 5 fois.
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

toregreb
Actif
Messages : 2510
Inscription : 20 août 2014, 22:19

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

Message par toregreb » 09 mars 2016, 11:19

Merci pour ces précisions Bonne remarque, le bloc DANS devrait être traité comme le bloc A effectivement. :P
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces

Avatar de l’utilisateur
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

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

Message par Masterfion » 09 mars 2016, 11:24

Traité de la même façon non car son concept est d'être exécuté en parallèle mais ça serait bien qu'un trigger existe :)
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

toregreb
Actif
Messages : 2510
Inscription : 20 août 2014, 22:19

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

Message par toregreb » 09 mars 2016, 11:52

Oui, c'est une subtilité, mais le déclencheur est quand même le scénario père.
Je penche pour : "[Groupe][Nom du scenario]"

Mais on peut voter, faire un sondage..... :D
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces

totovaauski
Actif
Messages : 1926
Inscription : 05 juil. 2014, 11:21

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

Message par totovaauski » 09 mars 2016, 12:08

Ca paraîtrait logique!
Donc +1 avec toregreb.

Envoyer avec mon pouce ...
RPI3 + Dongle Aeon
Jeedom sur : Raspberry Pi + Raspberry compute
Mysensors , z-wave, xiaomi ...

https://www.youtube.com/watch?v=-bjbUg9d64g
https://www.youtube.com/watch?v=GPj1ozB ... _b-Toq47NQ

ksoul78
Timide
Messages : 316
Inscription : 13 août 2014, 15:26
Contact :

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

Message par ksoul78 » 09 mars 2016, 16:11

Merci pour ce retour utile, je vais lire ça en détail !
JEEDOM DIY (RPi 3 / Clé AEON LABS USB Gen5)
Mon Matériel : ici

pipersw
Actif
Messages : 642
Inscription : 28 juil. 2014, 18:54
Localisation : Massy (91)

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

Message par pipersw » 06 avr. 2016, 15:12

Et donc #trigger# sert où ? et quelle est la différence avec trigger() ?

Avatar de l’utilisateur
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

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

Message par Masterfion » 06 avr. 2016, 15:50

Message initial édité.
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

pipersw
Actif
Messages : 642
Inscription : 28 juil. 2014, 18:54
Localisation : Massy (91)

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

Message par pipersw » 06 avr. 2016, 16:05

Je viens de tester avec 2 virtuels en déclencheur pour voir ce que font les fonctions #trigger# et trigger() :
#trigger# renvoit le nom du déclencheur
trigger() renvoit la valeur (0 ou 1) du déclencheur.

Avatar de l’utilisateur
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

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

Message par Masterfion » 06 avr. 2016, 16:32

pipersw a écrit :trigger() renvoit la valeur (0 ou 1) du déclencheur.
Attention, il y a une subtilité. Supposons que le trigger soit "[Déclencheur X]" :
SI trigger([Déclencheur X])==1 renvoi VRAI
SI trigger()=="[Déclencheur X]" renvoi VRAI
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Avatar de l’utilisateur
Me_
Actif
Messages : 766
Inscription : 22 juin 2015, 22:28
Localisation : Guyane

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

Message par Me_ » 07 avr. 2016, 21:44

Merci pour ces infos!!!
Présentation
Mon matériel: ici

Avatar de l’utilisateur
domoggvad
Actif
Messages : 1880
Inscription : 29 avr. 2015, 16:02
Localisation : Seine-Saint-Denis (Villepinte)

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

Message par domoggvad » 08 avr. 2016, 19:29

Masterfion a écrit :
pipersw a écrit :trigger() renvoit la valeur (0 ou 1) du déclencheur.
Attention, il y a une subtilité. Supposons que le trigger soit "[Déclencheur X]" :
SI trigger([Déclencheur X])==1 renvoi VRAI
SI trigger()=="[Déclencheur X]" renvoi VRAI
Hello mister Masterfion
Comment récupérer le nom ou la valeur équipement dans du code d un scénario, pour traitement
Merci

de mon téléphone
3 Odroid C2 (Prod - secours - test) Z83 tests: rfxcom + Z-wave- Clims DAIKIN - espeasy - thekey - Xiaomi - Telinfo - broadlink... widget V3 :viewtopic.php?f=29&t=44183&p=717810#p717810

Avatar de l’utilisateur
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

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

Message par Masterfion » 08 avr. 2016, 21:39

Je ne comprends pas pourquoi tu post cette question ici (aucun rapport ?)... et je me demande si tu as lu la doc car elle donne un élément de réponse à ta question :D
Depuis un bloc code on peut récupérer la valeur d'une variable via la commande "$scenario->getData(NomDeTaVariable)" donc il te suffit d'utiliser 2 variables... tu affecte la valeur "NomDeTonInfo à une première variable et tu affecte la valeur de cette info (ex #[WC][Oeil][Température]# !) à une seconde variable.

Il y a peut-être mieux à faire mais je ne saurai pas t'en dire plus
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Avatar de l’utilisateur
domoggvad
Actif
Messages : 1880
Inscription : 29 avr. 2015, 16:02
Localisation : Seine-Saint-Denis (Villepinte)

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

Message par domoggvad » 08 avr. 2016, 22:03

merci pour ta réponse, car je pensais que c'était justement un type trigger quelque chose... :D
mais je comprends mieux, j'ai reussi un peu de code avec la complicité de mon copain google, mais l’intégration -du moins l'écriture) dans jeedom m'est encore un peu inconnue
mais j'avance..
merci encore
3 Odroid C2 (Prod - secours - test) Z83 tests: rfxcom + Z-wave- Clims DAIKIN - espeasy - thekey - Xiaomi - Telinfo - broadlink... widget V3 :viewtopic.php?f=29&t=44183&p=717810#p717810

DIONAEA
Timide
Messages : 235
Inscription : 15 juin 2015, 12:07
Localisation : Deux-Sèvres

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

Message par DIONAEA » 08 avr. 2016, 22:21

@masterfion: en lisant ton post il y a un truc que je pige pas ... un trigger sert pour connaitre le déclencheur d un scenario .... mais quand tu créés ton scenario tu sais déjà ce qui va être ton déclencheur ... par exemple dans mon entrée j ai mis un détecteur en rfxcom pour commander un module on/off rfxcom qui allume une lumière (d ailleurs je déconseille cette utilisation car il y a au moins 4 secondes voir plus entre la détection et l allumage de la lampe) bah dans ce cas la je sais que mon déclencheur c est le détecteur ... alors pourquoi la fonction triggers,...
Merci si tu peux m éclaircir ça

Avatar de l’utilisateur
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

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

Message par Masterfion » 08 avr. 2016, 22:45

2016-04-08_223922.jpg
2016-04-08_223922.jpg (20.58 Kio) Consulté 6886 fois
Dans cet exemple, tu vois 3 déclencheurs d'un scénario qui pilotes l'allumage d'une prise murale.
> Si le déclencheur est le module "TV sur IP" de notre chambre alors j'allume la prise mais j'allume aussi le Freebox Player
> Si le déclencheur est mon système Sonos, j'allume la prise simplement pour activer le caisson de basse
> Si le déclencheur est mon oeil et qu'il ne détecte plus de présence (après 30mn) alors je coupe la prise... sauf si "TV sur IP" ou "Sonos" sont allumés
etc...

Donc pour savoir quoi faire selon les cas, ben faut bien savoir qui déclenche... et pour le savoir, tu test le trigger.
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Avatar de l’utilisateur
domoggvad
Actif
Messages : 1880
Inscription : 29 avr. 2015, 16:02
Localisation : Seine-Saint-Denis (Villepinte)

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

Message par domoggvad » 08 avr. 2016, 22:54

Good job

de mon téléphone
3 Odroid C2 (Prod - secours - test) Z83 tests: rfxcom + Z-wave- Clims DAIKIN - espeasy - thekey - Xiaomi - Telinfo - broadlink... widget V3 :viewtopic.php?f=29&t=44183&p=717810#p717810

DIONAEA
Timide
Messages : 235
Inscription : 15 juin 2015, 12:07
Localisation : Deux-Sèvres

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

Message par DIONAEA » 09 avr. 2016, 10:33

@masterfion : ah ok ... là c est très clair avec une explication comme ça.... Merci pour la leçon et de partager ton expérience ...

jax24fr
Timide
Messages : 467
Inscription : 24 juil. 2014, 22:41

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

Message par jax24fr » 10 avr. 2016, 21:30

salut @masterfion

Suis pas d'accord avec :
Edit : trigger() est identique à #trigger#
:D :D
D'après mes tests a l'instant :

trigger(): donnera invariablement 1 ou 0
#trigger# : donnera le nom du déclencheur

pour preuve (test avec déclencheur :"[Jardin][Lettre][Etat]")
Capture d’écran 2016-04-10 à 21.24.45.png
1
Capture d’écran 2016-04-10 à 21.24.45.png (45.62 Kio) Consulté 6815 fois

Code : Tout sélectionner

[2016-04-10 21:23:31][SCENARIO] Début d'exécution du scénario : [test2]. Scénario exécuté automatiquement sur événement venant de : [Jardin][Lettre][Etat]
[2016-04-10 21:23:31][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-10 21:23:31][SCENARIO] Evaluation de la condition : ["[Jardin][Lettre][Etat]"="1" ] = Faux
[2016-04-10 21:23:31][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-10 21:23:31][SCENARIO] Exécution d'un bloc élément : 573
[2016-04-10 21:23:31][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-10 21:23:31][SCENARIO] Evaluation de la condition : ["1"="1"] = Vrai
[2016-04-10 21:23:31][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-10 21:23:31][SCENARIO] Fin correcte du scénario

Aussi j'aurais besoin de ton aide pour connaitre la manière dont tu découvres ton déclencheur parce que moi ca fonctionne plus.
Avant (maj?), ca ca marchais

SI #trigger#="[Jardin][Lettre][Etat]" ca donnais çà dans les logs :

Code : Tout sélectionner

["[Jardin][Lettre][Etat]"="[Jardin][Lettre][Etat]" ] = VRAI
Maintenant
SI #trigger#="[Jardin][Lettre][Etat]" ca donne çà dans les logs :

Code : Tout sélectionner

["[Jardin][Lettre][Etat]"="1" ] = FAUX
Je n'arrive plus a récupérer le déclencheur en toute lettre : "[Jardin][Lettre][Etat]", quoique je test
"[Jardin][Lettre][Etat]"
[Jardin][Lettre][Etat]

c'est 0 ou 1


Merci bcp
Matos :
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom

jax24fr
Timide
Messages : 467
Inscription : 24 juil. 2014, 22:41

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

Message par jax24fr » 19 avr. 2016, 20:59

Je n'arrive plus a récupérer le déclencheur en toute lettre : "[Jardin][Lettre][Etat]", quoique je test
"[Jardin][Lettre][Etat]"
[Jardin][Lettre][Etat]

c'est 0 ou 1
Un ptit up, personne n'utilise cette fonction ? :D
Matos :
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom

Répondre

Revenir vers « Utilisation »

Qui est en ligne ?

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