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

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

Message par Masterfion » 19 avr. 2016, 21:19

Je veux bien t'aider mais tu fais pas d'effort !!!!
Où est-ce que tu as vu qu'on utilisait un simple "=" pour comparer 2 expressions ?!!!!!

Tu dois utiliser trigger()=="[Jardin][Lettre][Etat]"
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

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, 22:09

Ouaouh, moi pas faire d'effort ?
tu deconnes j'espere ?
Où est-ce que tu as vu qu'on utilisait un simple "=" pour comparer 2 expressions ?!!!!!
depuis 1 AN que j'utilise JEEDOM !!!!!!!!!!!

je prends le temps de mettre des imprim ecran, de montrer mes test avec log des résultats, d'expliquer que ca marchais avant .
J'explique que les fonctions #trigger# et trigger() ne donnent pas les mêmes résultats pour s'entendre dire que je fais pas d'effort......

Bref par pur acquis de conscience meme si je connaissais déjà le résultat le "=" ou le "==" c'est exactement pareil !

Et pour continuer d'etayer voici des log ou ca marchais avant (avec un seul = )
Capture d’écran 2016-04-19 à 22.00.23.png
t
Capture d’écran 2016-04-19 à 22.00.23.png (40.89 Kio) Consulté 1839 fois

Code : Tout sélectionner

------------------------------------
[2016-03-06 00:45:08][SCENARIO] Début d'exécution du scénario : [Plugin][Plugin][Poele Thermostat]. Scénario exécuté automatiquement sur événement venant de : [Maison][Poele][Toggle]
[2016-03-06 00:45:08][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-03-06 00:45:08][SCENARIO] Evaluation de la condition : ["[Maison][Poele][Toggle]"="[Salon][Poele][Consigne]" OU 0 =! 0] = Faux
[2016-03-06 00:45:08][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-03-06 00:45:08][SCENARIO] Exécution d'un bloc élément : 530
[2016-03-06 00:45:08][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-03-06 00:45:08][SCENARIO] Evaluation de la condition : ["[Maison][Poele][Toggle]"="[Maison][Poele][Toggle]"] = Vrai
[2016-03-06 00:45:08][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-03-06 00:45:08][SCENARIO] Exécution d'un bloc élément : 531
[2016-03-06 00:45:08][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-03-06 00:45:08][SCENARIO] Evaluation de la condition : [0 == 1  ] = Faux
[2016-03-06 00:45:08][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-03-06 00:45:08][SCENARIO] Exécution de la commande [Plugin][Poele][Off]
[2016-03-06 00:45:10][SCENARIO] Exécution de la commande [Salon][Poele][Off]
[2016-03-06 00:45:10][SCENARIO] Fin correcte du scénario
------------------------------------

désolé mais j'aime pas les ! quand c pas justifié.
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, 22:15

J'ai trouvé un palliatif :

SI
trigger(#[Jardin][Lettre][Etat]#)==1
Sinon
trigger(#[Jardin][Colis][Etat]#)==1

Capture d’écran 2016-04-19 à 22.13.04.png
r
Capture d’écran 2016-04-19 à 22.13.04.png (247.96 Kio) Consulté 1838 fois

Code : Tout sélectionner

[2016-04-19 22:11:52][SCENARIO] Début d'exécution du scénario : [test2]. Scénario exécuté automatiquement sur événement venant de : [Jardin][Colis][Etat]
[2016-04-19 22:11:53][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-19 22:11:53][SCENARIO] Evaluation de la condition : [0==1] = Faux
[2016-04-19 22:11:53][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-19 22:11:53][SCENARIO] Exécution d'un bloc élément : 573
[2016-04-19 22:11:53][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-19 22:11:53][SCENARIO] Evaluation de la condition : [1==1] = Vrai
[2016-04-19 22:11:53][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-19 22:11:53][SCENARIO] Exécution de la commande [Comm][Pushbullet Gianni][Chrome] avec comme option(s) : 
Array
(
    [title] => test colis
    [message] => 
)

[2016-04-19 22:11:53][SCENARIO] Fin correcte du scénario
------------------------------------
[2016-04-19 22:11:41][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-19 22:11:42][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-19 22:11:42][SCENARIO] Evaluation de la condition : [1==1] = Vrai
[2016-04-19 22:11:42][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-19 22:11:42][SCENARIO] Exécution de la commande [Comm][Pushbullet Gianni][Chrome] avec comme option(s) : 
Array
(
    [title] => test lettre
    [message] => 
)

[2016-04-19 22:11:42][SCENARIO] Fin correcte du scénario
------------------------------------
Matos :
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom

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 » 19 avr. 2016, 22:25

Non, je ne cherche à attaquer personne... Tu apprendra peut-être à me connaître avec le temps.
Dans le cadre de mes exemples du 1er post, #trigger# et trigger() donnent les mêmes résultats.

Je test le trigger dans de nombreux scénarios et je n'ai aucun soucis mais je n'ai jamais utilisé un simple = pour comparer 2 expressions.

Et sinon, les logs avec trigger()=="[Jardin][Lettre][Etat]" sont comment ?
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 » 20 avr. 2016, 08:50

@jax24fr : il faut parfois savoir accepter que ce qui fonctionnait hier peut ne pas marcher demain. Et savoir s'adapter, comprendre que si les développeurs ont modifié cette règle, c'est pour une bonne raison.
Dans la plupart des langages informatiques, le = est un opérateur d'affectation. Et pour éviter toute ambiguïté, le test logique (que tu utilises dans ton cas) s'écrit ==.
Donc mettre un simple = dans un SI n'a plus de sens depuis la version 2.
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces

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

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

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

Je ne dis en aucun cas le contraire, et les changements sont inéluctables dans la vie d'un logiciel.

Ce qui m'a dérangé c'est le ton et la manière.
Le = ou le == ne signifie peut être pas la même chose OK Alors je change, ça ne me pose aucun soucis

Mais le fait de ne pas faire d'effort, non, je suis quelqu'un qui s'attache beaucoup à la portée des mots et à la cordialité des discussions. J'ai vu la réponse de @masterfion. Ok je l'ai compris.

Bref. J'en profite pour dire que le palliatif n'est pas fonctionnel dans tous les cas, je vais revenir avec d'autres tests ce soir



Envoyé de mon LG-D855 en utilisant Tapatalk
Matos :
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom

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 » 20 avr. 2016, 09:32

jax24fr a écrit :Ce qui m'a dérangé c'est le ton et la manière.
Allé... on ne va pas se crêper le chignon pour une réflexion qui t'a blessé mais qui n'aurait pas dû. Il n'y a pas d'émoticônes "bisous" sinon je te l'aurais mis :D
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_ » 20 avr. 2016, 09:44

jax24fr a écrit :J'ai trouvé un palliatif :

SI
trigger(#[Jardin][Lettre][Etat]#)==1
Sinon
trigger(#[Jardin][Colis][Etat]#)==1
Perso, il n'y a que comme ça que j'arrive à faire fonctionner cette fonction.

Avec trigger()=="[Jardin][Lettre][Etat]" ça ne fonctionne pas...
Présentation
Mon matériel: ici

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

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

Message par toregreb » 20 avr. 2016, 09:50

Me_ a écrit : Avec trigger()=="[Jardin][Lettre][Etat]" ça ne fonctionne pas...
Etrange.... Et trigger()=="#[Jardin][Lettre][Etat]#" ?
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
Me_
Actif
Messages : 766
Inscription : 22 juin 2015, 22:28
Localisation : Guyane

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

Message par Me_ » 20 avr. 2016, 09:53

toregreb a écrit :
Me_ a écrit : Avec trigger()=="[Jardin][Lettre][Etat]" ça ne fonctionne pas...
Etrange.... Et trigger()=="#[Jardin][Lettre][Etat]#" ?
Je crois que j'avais essayé avec ou sans les # et avec ou sans les ", et que ça ne fonctionnait pas... Je retesterai...
Présentation
Mon matériel: ici

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

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

Message par toregreb » 20 avr. 2016, 10:23

De ce que je viens de tester (en version 2.1.2) :
Lorsque le scénario est en mode provoqué :
- trigger() renvoie l'état du déclencheur (0 ou 1)
- #trigger# renvoie le nom du déclencheur sans les # : [...][...][Déclencheur]

Donc, s'il n'y a qu'un seul déclencheur, trigger() et trigger(#[..][...][Déclencheur]#) renvoient la même chose, c'est à dire l'état du déclencheur (0 ou 1).
S'il y a plusieurs déclencheurs, trigger() renvoie l'état du déclencheur mais qui peut ne pas correspondre à trigger(#[..][...][Déclencheur]#) si ce n'est pas lui le déclencheur (c'est clair... :P )
Enfin, pour connaitre le nom du déclencheur, il faut utiliser #trigger# qui renvoie le nom du déclencheur sous la forme [..][...][Déclencheur]. Dans le cas d'un test, il est préférable d'utiliser matches plutôt que ==.

@Masterfion : si tu peux vérifier et mettre à jour éventuellement ton 1er post...
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 » 20 avr. 2016, 10:29

Sorry... my Freebox is dead, je peux pô me connecter chez moi :D
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Avatar de l’utilisateur
Sshafi
Actif
Messages : 3882
Inscription : 01 juil. 2014, 16:08
Localisation : Albi

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

Message par Sshafi » 20 avr. 2016, 10:59

J'ai fait des tests aussi en m'appuyant sur la doc et ça marche comme décrit dans celle-ci :

- La fonction trigger() : Utilisée avec en paramètre un nom de commande (avec les #) permet de savoir si c'est elle qui a déclenchée ou non. Ex : trigger(#[Jardin][Lettre][Etat]#) retourne 1 si c'est bien une lettre qui a déclenché et 0 sinon.

- Le tag #trigger# : Est remplacé le nom de la commande qui a déclenché le scénario (sans les #). Ici : [Jardin][Lettre][Etat]

Ce qui n'est pas dans la doc et qui a l'air de marcher c'est l'utilisation de trigger() sans paramètre qui comme le dit toregreb renvoi l'état de la commande qui à déclenché le scénario.

Par exemple : un virtuel, un scénario, un log :
virtuel.png
virtuel.png (12.61 Kio) Consulté 1813 fois
scenario.png
scenario.png (32.31 Kio) Consulté 1813 fois

Code : Tout sélectionner

[2016-04-20 10:55:24][SCENARIO] Début d'exécution du scénario : [trigg]. Scnario excut automatiquement sur vnement venant de : [CD81][test][etat]
[2016-04-20 10:55:24][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:24][SCENARIO] Evaluation de la condition : ["[CD81][test][etat]" == "[CD81][test][etat]"] = Vrai
[2016-04-20 10:55:24][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-20 10:55:24][SCENARIO] Exécution d'un bloc élément : 2
[2016-04-20 10:55:24][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:24][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2016-04-20 10:55:24][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-20 10:55:24][SCENARIO] Exécution d'un bloc élément : 3
[2016-04-20 10:55:24][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:24][SCENARIO] Evaluation de la condition : ["muche" matches "/truc/"] = 0
[2016-04-20 10:55:24][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-20 10:55:24][SCENARIO] Fin correcte du scénario
------------------------------------
[2016-04-20 10:55:22][SCENARIO] Début d'exécution du scénario : [trigg]. Scnario excut automatiquement sur vnement venant de : [CD81][test][etat]
[2016-04-20 10:55:22][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:22][SCENARIO] Evaluation de la condition : ["[CD81][test][etat]" == "[CD81][test][etat]"] = Vrai
[2016-04-20 10:55:22][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-20 10:55:22][SCENARIO] Exécution d'un bloc élément : 2
[2016-04-20 10:55:22][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:22][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2016-04-20 10:55:22][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-20 10:55:22][SCENARIO] Exécution d'un bloc élément : 3
[2016-04-20 10:55:22][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:22][SCENARIO] Evaluation de la condition : ["truc" matches "/truc/"] = 1
[2016-04-20 10:55:22][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-20 10:55:22][SCENARIO] Fin correcte du scénario
------------------------------------
[2016-04-20 10:55:20][SCENARIO] Début d'exécution du scénario : [trigg]. Scnario excut automatiquement sur vnement venant de : [CD81][test][etat]
[2016-04-20 10:55:20][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:20][SCENARIO] Evaluation de la condition : ["[CD81][test][etat]" == "[CD81][test][etat]"] = Vrai
[2016-04-20 10:55:20][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-20 10:55:20][SCENARIO] Exécution d'un bloc élément : 2
[2016-04-20 10:55:20][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:20][SCENARIO] Evaluation de la condition : [1 == 1] = Vrai
[2016-04-20 10:55:20][SCENARIO] Exécution du sous-élément de type [action] : then
[2016-04-20 10:55:20][SCENARIO] Exécution d'un bloc élément : 3
[2016-04-20 10:55:20][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-20 10:55:20][SCENARIO] Evaluation de la condition : ["muche" matches "/truc/"] = 0
[2016-04-20 10:55:20][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-20 10:55:20][SCENARIO] Fin correcte du scénario
------------------------------------
??? Menfin ...
VM ESXi # Aeon Lab Gen5 | RFXtrx433E | ...
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 » 20 avr. 2016, 22:57

toregreb a écrit :@Masterfion : si tu peux vérifier et mettre à jour éventuellement ton 1er post...
Je l'ai édité mais je n'ai rien rectifié... j'ai ajouté des exemples.
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 » 20 avr. 2016, 23:00

Merci pour cet effort de pédagogie. :)
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces

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

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

Message par toregreb » 20 avr. 2016, 23:06

Cependant, trigger() chez moi renvoie 0 ou 1 mais pas le nom de la commande.
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
Sshafi
Actif
Messages : 3882
Inscription : 01 juil. 2014, 16:08
Localisation : Albi

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

Message par Sshafi » 20 avr. 2016, 23:16

J'ai pas essayé avec les interactions, le mode programmé ,... Mais sur le mode provoqué chez moi trigger() sans argument renvoi la valeur de la commande qui a déclenché et non le nom de celle-ci. Comme toregreb ;)

From Tapatruc...
??? Menfin ...
VM ESXi # Aeon Lab Gen5 | RFXtrx433E | ...
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 » 20 avr. 2016, 23:20

Je ne dis pas le contraire puisque dans mes exemples le seul cas où trigger() et #trigger# ne renvoient pas le nom de la commande est lorsqu'on les utilise pour tester un déclencheur de type "commande d'un équipement"... et je pense d'ailleurs que c'est une erreur de Loïc car basiquement #trigger# est censé retourner le nom alors que dans ce cas il retourne sa valeur.

Edit : je vais préciser cette incohérence dans mon 1er post.
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

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

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

Message par jax24fr » 21 avr. 2016, 21:53

salut a tous,

Petit retour sur le fait que j'ai réussi a faire ce que je voulais avec #trigger# grace à @sshafi qui m'a mis sur la voie :

Code : Tout sélectionner

- Le tag #trigger# : Est remplacé le nom de la commande qui a déclenché le scénario [b](sans les #).[/b] Ici : [Jardin][Lettre][Etat]
Je me suis rendu compte que je n'enlevais pas les # lors du test
Et comme dis plus haut si on test

#trigger# = "#[Jardin][Lettre][Etat]#" donne [Jardin][Lettre][Etat] = 1
par contre
#trigger# = "[Jardin][Lettre][Etat]" donne [Jardin][Lettre][Etat] = [Jardin][Lettre][Etat]
Et là c'est bon :D


Merci les gars
Hey, j'ai mis un seul = expres :lol:
Matos :
DIY DEBIAN 9 (sous VM PROXMOX) Jeedom

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 » 21 avr. 2016, 22:03

Tu vois... quand tu y met du tiens :mrgreen:
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Répondre

Revenir vers « Utilisation »

Qui est en ligne ?

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