Connaître le trigger() d'un scénario
- Masterfion
- Actif
- Messages : 1589
- Inscription : 08 janv. 2015, 11:35
- Localisation : Vallauris / Antibes
Connaître le trigger() d'un scénario
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
Bisous Bisous
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
Bisous Bisous
Dernière édition par Masterfion le 21 avr. 2016, 22:02, édité 5 fois.
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+
Proxmox Core i5 Raid1 mSATA | Synology 916+
Re: Connaître le trigger() d'un scénario
Merci pour ces précisions Bonne remarque, le bloc DANS devrait être traité comme le bloc A effectivement.
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces
- Masterfion
- Actif
- Messages : 1589
- Inscription : 08 janv. 2015, 11:35
- Localisation : Vallauris / Antibes
Re: Connaître le trigger() d'un scénario
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+
Proxmox Core i5 Raid1 mSATA | Synology 916+
Re: Connaître le trigger() d'un scénario
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.....
Je penche pour : "[Groupe][Nom du scenario]"
Mais on peut voter, faire un sondage.....
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces
-
- Actif
- Messages : 1926
- Inscription : 05 juil. 2014, 11:21
Re: Connaître le trigger() d'un scénario
Ca paraîtrait logique!
Donc +1 avec toregreb.
Envoyer avec mon pouce ...
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
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
Re: Connaître le trigger() d'un scénario
Merci pour ce retour utile, je vais lire ça en détail !
Re: Connaître le trigger() d'un scénario
Et donc #trigger# sert où ? et quelle est la différence avec trigger() ?
- Masterfion
- Actif
- Messages : 1589
- Inscription : 08 janv. 2015, 11:35
- Localisation : Vallauris / Antibes
Re: Connaître le trigger() d'un scénario
Message initial édité.
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+
Proxmox Core i5 Raid1 mSATA | Synology 916+
Re: Connaître le trigger() d'un scénario
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.
#trigger# renvoit le nom du déclencheur
trigger() renvoit la valeur (0 ou 1) du déclencheur.
- Masterfion
- Actif
- Messages : 1589
- Inscription : 08 janv. 2015, 11:35
- Localisation : Vallauris / Antibes
Re: Connaître le trigger() d'un scénario
Attention, il y a une subtilité. Supposons que le trigger soit "[Déclencheur X]" :pipersw a écrit :trigger() renvoit la valeur (0 ou 1) du déclencheur.
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+
Proxmox Core i5 Raid1 mSATA | Synology 916+
- domoggvad
- Actif
- Messages : 1880
- Inscription : 29 avr. 2015, 16:02
- Localisation : Seine-Saint-Denis (Villepinte)
Re: Connaître le trigger() d'un scénario
Hello mister MasterfionMasterfion a écrit :Attention, il y a une subtilité. Supposons que le trigger soit "[Déclencheur X]" :pipersw a écrit :trigger() renvoit la valeur (0 ou 1) du déclencheur.
SI trigger([Déclencheur X])==1 renvoi VRAI
SI trigger()=="[Déclencheur X]" renvoi VRAI
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
- Masterfion
- Actif
- Messages : 1589
- Inscription : 08 janv. 2015, 11:35
- Localisation : Vallauris / Antibes
Re: Connaître le trigger() d'un scénario
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
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
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+
Proxmox Core i5 Raid1 mSATA | Synology 916+
- domoggvad
- Actif
- Messages : 1880
- Inscription : 29 avr. 2015, 16:02
- Localisation : Seine-Saint-Denis (Villepinte)
Re: Connaître le trigger() d'un scénario
merci pour ta réponse, car je pensais que c'était justement un type trigger quelque chose...
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
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
Re: Connaître le trigger() d'un scénario
@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
Merci si tu peux m éclaircir ça
- Masterfion
- Actif
- Messages : 1589
- Inscription : 08 janv. 2015, 11:35
- Localisation : Vallauris / Antibes
Re: Connaître le trigger() d'un scénario
> 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+
Proxmox Core i5 Raid1 mSATA | Synology 916+
- domoggvad
- Actif
- Messages : 1880
- Inscription : 29 avr. 2015, 16:02
- Localisation : Seine-Saint-Denis (Villepinte)
Re: Connaître le trigger() d'un scénario
Good job
de mon téléphone
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
Re: Connaître le trigger() d'un scénario
@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 ...
Re: Connaître le trigger() d'un scénario
salut @masterfion
Suis pas d'accord avec :
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]")
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 :
Maintenant
SI #trigger#="[Jardin][Lettre][Etat]" ca donne çà dans les logs :
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
Suis pas d'accord avec :
Edit : trigger() est identique à #trigger#
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]")
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
SI #trigger#="[Jardin][Lettre][Etat]" ca donne çà dans les logs :
Code : Tout sélectionner
["[Jardin][Lettre][Etat]"="1" ] = FAUX
"[Jardin][Lettre][Etat]"
[Jardin][Lettre][Etat]
c'est 0 ou 1
Merci bcp
Matos :
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom
Re: Connaître le trigger() d'un scénario
Un ptit up, personne n'utilise cette fonction ?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
Matos :
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 9 invités