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 !

Utilisation de #trigger#

Réservé à la création de scénarios dans JEEDOM
Avatar de l’utilisateur
supermenteur
Timide
Messages : 250
Inscription : 18 mai 2015, 15:39

Utilisation de #trigger#

Message par supermenteur » 27 févr. 2017, 12:28

Bonjour

J'utilise la variable #trigger# pour savoir quel est le déclencheur du scénario, mais comment afficher sa valeur ?
Un genre de fonction value(#trigger#).

J'ai fait quelques essais et parcouru pas mal de doc/sujet sans trouver la solution, si elle existe.

Merci de votre aide.



Envoyé de mon iPhone en utilisant Tapatalk
Patrice

Bosquetia
Actif
Messages : 6783
Inscription : 10 mai 2016, 07:54

Re: Utilisation de #trigger#

Message par Bosquetia » 27 févr. 2017, 12:56

Hello,

Tu as été voir ce post si tu n'y trouves pas ton bonheur ?
viewtopic.php?f=23&t=16633

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

Re: Utilisation de #trigger#

Message par fwehrle » 28 févr. 2017, 21:20

Ben juste #trigger# dans un message ou autre, ca marche très bien.
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
supermenteur
Timide
Messages : 250
Inscription : 18 mai 2015, 15:39

Re: Utilisation de #trigger#

Message par supermenteur » 01 mars 2017, 09:27

J'ai bien vu tout cela, mais je ne cherche pas comment l'utiliser pour faire de la logique, mais je cherche à afficher la valeur de #trigger#.

Ex: trigger = #[nom de declencheur]#, quelle est la valeur de #[nom de declencheur]#?

C'est pour cela que je pensait à une fonction type valeur(#trigger#) ou variable (#trigger#)





Envoyé de mon iPad en utilisant Tapatalk
Patrice

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

Re: Utilisation de #trigger#

Message par Sshafi » 01 mars 2017, 09:48

Va voir ce post : viewtopic.php?t=16633 qui est référencé dans le post trucs et astuces (cf. Ma signature)

From Tapatruc...
??? Menfin ...
VM ESXi # Aeon Lab Gen5 | RFXtrx433E | ...
Trucs & Astuces

neurall
Timide
Messages : 472
Inscription : 25 avr. 2016, 11:39

Re: Utilisation de #trigger#

Message par neurall » 01 mars 2017, 11:04

supermenteur a écrit :J'ai bien vu tout cela, mais je ne cherche pas comment l'utiliser pour faire de la logique, mais je cherche à afficher la valeur de #trigger#.

Ex: trigger = #[nom de declencheur]#, quelle est la valeur de #[nom de declencheur]#?

C'est pour cela que je pensait à une fonction type valeur(#trigger#) ou variable (#trigger#)
$
tu ajoutes un bloc de type php et tu alimentes une variable tout simplement.
Jeedom mini+ Z-Wave+
Minix Z83 eMMC 32Mo, Stick Zwave Gen 5, quelques dizaines de modules divers et variés

Avatar de l’utilisateur
supermenteur
Timide
Messages : 250
Inscription : 18 mai 2015, 15:39

Re: Utilisation de #trigger#

Message par supermenteur » 01 mars 2017, 14:17

Je vais tester cela, merci


Envoyé de mon iPhone en utilisant Tapatalk
Patrice

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

Re: Utilisation de #trigger#

Message par fwehrle » 01 mars 2017, 16:05

J'avais bien compris la question : comment récuperer la valeur du trigger. Le nom de l'équipement qui a lancé le scénario donc.
Eh bien je me répète : le tag #trigger# contient cette valeur. Il suffit de l'utiliser tel-quel.
Que veut-tu en faire exactement?
Par ex., tu tu veux l'envoyer dans un mail, il suffit de mettre ca dans le sujet ou le corp du mail :

Code : Tout sélectionner

Le déclencheur est #trigger#
Le moteur de scénario de jeedom se chargera de remplacer le tag par sa valeur.
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
Patrick
Helper
Messages : 1029
Inscription : 29 août 2014, 15:21
Localisation : Savoie

Re: Utilisation de #trigger#

Message par Patrick » 02 mars 2017, 20:01

la fonction trigger() contient la valeur du déclencheur
Exemple, si ton déclencheur "#[Multimédia][V-Activités][CMD_MULTIMEDIA]# " à l'origine du lancement de ton scénario parce que sa valeur est passé à 'RADIO', tu peux donc écrire dans ton bloc SI ceci :

Code : Tout sélectionner

SI trigger()  matches "/RADIO/"  
et le contenu de ce bloc sera executé lorsque le contenu du déclencheur (et peut importe le nom du déclencheur) ...
Si on veux en plus vérifier quel est le déclencheur (si par exemple tu en as plusieurs) alors tu peux utiliser ceci :

Code : Tout sélectionner

SI trigger()  matches "/RADIO/"  && #trigger# == '#[Multimédia][V-Activités][CMD_MULTIMEDIA]#'
Mais, à cause d'un bug actuel avec les apostrophes (qui avait été corrigé mais est revenu dans les dernières stables), ceci ne marche pas car cela génère ceci :

Code : Tout sélectionner

[2017-03-02 19:22:21][SCENARIO] Start : Scenario execute automatiquement sur evenement venant de : [Multimedia][V-Activites][CMD_MULTIMEDIA]. Tags : Array
(
)
[2017-03-02 19:22:21][SCENARIO] Exécution du sous-élément de type [condition] : if
[2017-03-02 19:22:21][SCENARIO] Evaluation de la condition : [ ""RADIO""  matches "/RADIO/" && "[Multimédia][V-Activités][CMD_MULTIMEDIA]" == '"RADIO"] =  ""RADIO""  matches "/RADIO/" && "[Multimédia][V-Activités][CMD_MULTIMEDIA]" == '#[Multimédia][V-Activités][CMD_MULTIMEDIA]#'
[2017-03-02 19:22:21][SCENARIO] Expression non valide :  ""RADIO""  matches "/RADIO/" && "[Multimédia][V-Activités][CMD_MULTIMEDIA]" == '#[Multimédia][V-Activités][CMD_MULTIMEDIA]#'
Vous remarquez les doublements des apostrophes à l'origine du bug...

La solution de contournement est de passer via une variable :

Code : Tout sélectionner

 
définir variable "CONTENU_TRIGGER" = trigger()
variable(CONTENU_TRIGGER) matches  /"RADIO/"  
Ou i tu veux en plus vérifier quel est le déclencheur (si par exemple tu en as plusieurs) alors tu peux utiliser ceci :

Code : Tout sélectionner

 définir variable "CONTENU_TRIGGER" = trigger()
variable(CONTENU_TRIGGER) matches "/RADIO/" && #trigger# == '#[Multimédia][V-Activités][CMD_MULTIMEDIA]#'
 
screenshot.50.jpg
screenshot.50.jpg (189.12 Kio) Consulté 4707 fois
Et là, tout fonctionnera comme attendu : :)

Code : Tout sélectionner

[2017-03-02 19:27:14][SCENARIO] Affectation de la variable CONTENU_TRIGGER => RADIO= RADIO
[2017-03-02 19:27:14][SCENARIO] Exécution du sous-élément de type [condition] : if
[2017-03-02 19:27:14][SCENARIO] Evaluation de la condition : [ "RADIO"  matches "/RADIO/" && "[Multimédia][V-Activités][CMD_MULTIMEDIA]" == '[Multimédia][V-Activités][CMD_MULTIMEDIA]'] =  Vrai
;)
ßêta-Testeur / Développeur plugin / Modérateur du Forum EnOcean

En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal

Avatar de l’utilisateur
supermenteur
Timide
Messages : 250
Inscription : 18 mai 2015, 15:39

Re: Utilisation de #trigger#

Message par supermenteur » 02 mars 2017, 21:35

Non, ce que je voudrai récupérer c'est la valeur de l'équipement qui a été le trigger

Trigger >> #[room][equipement][parametre]# >> valeur


Envoyé de mon iPad en utilisant Tapatalk
Patrice

Avatar de l’utilisateur
Patrick
Helper
Messages : 1029
Inscription : 29 août 2014, 15:21
Localisation : Savoie

Re: Utilisation de #trigger#

Message par Patrick » 02 mars 2017, 23:42

C'est exactement ça !
Dans mon exemple,
'#[Multimédia][V-Activités][CMD_MULTIMEDIA]#'
Est la commande info, et au moment ou le trigger a été déclenché, cette commande contenait Le mot RADIO !
Fait le test créé une variable avec trigger() dedans et regarde ce qu'elle contient après que tu ais déclenché !
Teste au moins avant de dire que c'est pas ça !!!
ßêta-Testeur / Développeur plugin / Modérateur du Forum EnOcean

En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal

Avatar de l’utilisateur
Seb54
Timide
Messages : 136
Inscription : 30 déc. 2017, 11:04

Re: Utilisation de #trigger#

Message par Seb54 » 15 avr. 2018, 21:08

bonjour à tous,

J'ai le même problème que @supermenteur, et je ne pense pas avoir trouvé la réponse dans ce fil.
J'ai besoin de stocker un trigger dans une variable, et d'en appeler la valeur plus tard. J'ai fait les tests suivants :
Capture.JPG
Capture.JPG (55.37 Kio) Consulté 4273 fois
On voit bien que la variable #[salon][lampe][statut]# apparaît, mais comme texte, pas comme valeur, 1 ou 0.
Dans cet exemple je cherche une fonction du genre valeur(Déclencheur)

L'objectif est de pouvoir comparer la valeur online du trigger plus tatd :


si trigger()==0
variable = #trigger#
dans 5mn : si variable est toujours = 0 alors texto
Capture2.JPG
Capture2.JPG (50.13 Kio) Consulté 4273 fois
Comme ça je n'aurai pas besoin de faire un scenar pour chaque appareil (je dois ajouter mes cams à ce scenario)

Je désespère...J'ai bien vu l'idée de faire une variable en php, mais j'en n'ai pas le niveau.

Une bonne âme svp!

merci!

afonsosylvain
Timide
Messages : 400
Inscription : 07 déc. 2017, 20:35

Re: Utilisation de #trigger#

Message par afonsosylvain » 16 avr. 2018, 20:25

Hello,

Normale que ca te donne cela!

tu a pas lit plus haut

dans mon cas pour mon thermostat :

Code : Tout sélectionner

#trigger# donne  [Rez de Chausse][Thermostat][Consigne]

trigger() donne 16

[2018-04-16 20:22:51][SCENARIO] Affectation de la variable declencheur#trigger# => [Rez de Chausse][Thermostat][Consigne] = [Rez de Chausse][Thermostat][Consigne]
[2018-04-16 20:22:53][SCENARIO] Affectation de la variable declencheurtrigger() => 16 = 16

Avatar de l’utilisateur
Seb54
Timide
Messages : 136
Inscription : 30 déc. 2017, 11:04

Re: Utilisation de #trigger#

Message par Seb54 » 21 avr. 2018, 10:03

merci afonsosylvain, mais j'ai peur de ne toujours pas avoir de réponse

je veux pouvoir stocker un #trigger#, exemple #[Salon][Lampe][Online]#, dans une variable, exemple variable(Déclencheur) et pouvoir récupérer plus tard sa valeur

et quelle que soit la syntaxe utilisée, je n'arrive pas à récupérer la valeur de la commande correspondante, dans ce cas 0 ou 1 pour #[Salon][Lampe][Online]#

j'ai essayé
#variable(Déclencheur)#
variable(#Déclencheur#)
trigger(variable(Déclencheur))
trigger(#variable(Déclencheur)#)
de stocker trigger dans une variable php

je trouve, au mieux, la réponse "#[Salon][Lampe][Online]#", mais en texte, je n'arrive pas à avoir 0 ou 1

je précise que #trigger# donne bien 0 ou 1, mais que je veux pouvoir en tester la valeur qqes minutes plus tard. en effet les équipements sont souvent hors ligne qqes secondes et ça me vaut un bombardement de notification, et en testant le déclencheur plus tard je pourrai ainsi filtrer les notifications

j'espère avoir pu préciser mon problème, merci pour le temps que vous voudrez bien me consacrer

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

Re: Utilisation de #trigger#

Message par fwehrle » 21 avr. 2018, 13:59

Je vois que des lectures de variable la... Il faut d'abord affecter une variable en creant une action variable dans ton scenario, tu lui donne un nom (DeclencheurValeur) et une valeur : triggerValue(#trigger#) me semble une bonne idée vu le besoin. A essayer.
Et pour lire la variable, il suffit de taper ca : variable(DeclencheurValeur)
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
Seb54
Timide
Messages : 136
Inscription : 30 déc. 2017, 11:04

Re: Utilisation de #trigger#

Message par Seb54 » 21 avr. 2018, 14:59

malheureusement ça ne fonctionne pas. La capture d'écran c'est juste pour les tests, il faut que la 1e valeur du popup soit égale à la 2e, ici 0.
D'autres sous fonctions que trigger value existent? par exemple triggerName? ça pourrait être la clé de mon bazar
merci

Edit : triggerValue fonctionne, j'ai oublié V en majuscule...Par contre le résultat est toujours une valeur, avec cette fonction je ne pense pas pouvoir stocker le nom de l'équipement déclencheur et en tester ultérieurement la valeur.

Edit2 : BINGO !!!!! MERCI !!!!!!!!!!
je mets mon #trigger# dans une variable Déclencheur
5mn plus tard je veux connaître la valeur actuelle du trigger d'origine, j'appelle simplement : triggerValue(#variable(Déclencheur)#)
je te dois une fière chandelle!!!!!

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

Re: Utilisation de #trigger#

Message par fwehrle » 22 avr. 2018, 08:54

Ah okaayyyy.. je n'avais pas compris le besoin exact de récupérer la valeur actuel du tricher de ton scénario. Tu as trouvé tout seul du coup. Content d'avoir pu aider.

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
Seb54
Timide
Messages : 136
Inscription : 30 déc. 2017, 11:04

Re: Utilisation de #trigger#

Message par Seb54 » 22 avr. 2018, 15:06

ouais c'était trop beau, le triggerValue fonctionne dans mes tests, mais en conditions réelles, dans une bloc "DANS", impossible de tester la valeur d'un trigger enregistré en mémoire...

je vais laisser tomber et plutôt stocker l'IP de l'appareil et faire un ping plus tard. Peut être hors sujet, mais tu sais peut être comment faire? le plugin Network ne permet pas de lire l'IP

merci

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

Re: Utilisation de #trigger#

Message par fwehrle » 23 avr. 2018, 13:28

La vraie question est : pourquoi ne pas lire la valeur directement plutôt que de la stocker? Parce qu'elle n'a pas encore été mise à jour quand tu veux la lire? Dans ce cas, essayé en ajoutant un apéro d'une seconde. Ça m'a déjà aidé.
Si on, pour le ping, il y a un plugin ping qui permet ça très bien.

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
Seb54
Timide
Messages : 136
Inscription : 30 déc. 2017, 11:04

Re: Utilisation de #trigger#

Message par Seb54 » 23 avr. 2018, 18:33

j'ai essayé d'ajouter un apéro d'une seconde. J'ai essayé aussi s'ajouter une pause d'une seconde ;)
sans résultat...

le plugin ping ne semble pas me permettre de stocker l'IP d'un équipement. J'ai m'impression que ce n'est pas fait pour un équipement d'ailleurs, la simple commande Etat me renvoie un popup vide

En fait j'ai plusieurs yeelight, dont certaines se déconnectent parfois sans raison. Des fois se reconnectent mais des fois non. J'ai un scenar déclenché par la commande Online des yeelight, et je voudrais stocker l'équipement (exemple #[Salon][Lampe][Online]#) pour en tester le Online 3mn plus tard, pour n'avoir que les alertes si pas de reconnexion, sinon je suis pollué par des notifications inutiles.

je me demande si c'est possible en fait à force...

si je ne peux stocker ni la commande, ni l'IP, je ne vois pas comment tester un état ultérieurement en fonction du trigger qui l'a déclenché.

en tout cas merci pour la peine que tu te donnes pour mon cas

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

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