Utilisation de #trigger#
- supermenteur
- Timide
- Messages : 250
- Inscription : 18 mai 2015, 15:39
Utilisation de #trigger#
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
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
Re: Utilisation de #trigger#
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
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
- supermenteur
- Timide
- Messages : 250
- Inscription : 18 mai 2015, 15:39
Re: Utilisation de #trigger#
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
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
Re: Utilisation de #trigger#
Va voir ce post : viewtopic.php?t=16633 qui est référencé dans le post trucs et astuces (cf. Ma signature)
From Tapatruc...
From Tapatruc...
Re: Utilisation de #trigger#
tu ajoutes un bloc de type php et tu alimentes une variable tout simplement.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#)
$
Jeedom mini+ Z-Wave+
Minix Z83 eMMC 32Mo, Stick Zwave Gen 5, quelques dizaines de modules divers et variés
Minix Z83 eMMC 32Mo, Stick Zwave Gen 5, quelques dizaines de modules divers et variés
- supermenteur
- Timide
- Messages : 250
- Inscription : 18 mai 2015, 15:39
Re: Utilisation de #trigger#
Je vais tester cela, merci
Envoyé de mon iPhone en utilisant Tapatalk
Envoyé de mon iPhone en utilisant Tapatalk
Patrice
Re: Utilisation de #trigger#
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 :
Le moteur de scénario de jeedom se chargera de remplacer le tag par sa valeur.
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#
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
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
Re: Utilisation de #trigger#
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 :
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 :
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 :
Vous remarquez les doublements des apostrophes à l'origine du bug...
La solution de contournement est de passer via une variable :
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 :
Et là, tout fonctionnera comme attendu :
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/"
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]#'
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]#'
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/"
Code : Tout sélectionner
définir variable "CONTENU_TRIGGER" = trigger()
variable(CONTENU_TRIGGER) matches "/RADIO/" && #trigger# == '#[Multimédia][V-Activités][CMD_MULTIMEDIA]#'
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
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
- supermenteur
- Timide
- Messages : 250
- Inscription : 18 mai 2015, 15:39
Re: Utilisation de #trigger#
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
Trigger >> #[room][equipement][parametre]# >> valeur
Envoyé de mon iPad en utilisant Tapatalk
Patrice
Re: Utilisation de #trigger#
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 !!!
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
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
Re: Utilisation de #trigger#
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 :
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
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!
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 :
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
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!
-
- Timide
- Messages : 400
- Inscription : 07 déc. 2017, 20:35
Re: Utilisation de #trigger#
Hello,
Normale que ca te donne cela!
tu a pas lit plus haut
dans mon cas pour mon thermostat :
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
Re: Utilisation de #trigger#
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
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
Re: Utilisation de #trigger#
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)
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
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
Re: Utilisation de #trigger#
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!!!!!
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!!!!!
Re: Utilisation de #trigger#
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
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
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
Re: Utilisation de #trigger#
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
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
Re: Utilisation de #trigger#
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
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
(Anciennement sur Docker sur Syno DS-415+ / MariaDB / DSM 6)
Teleinfo / RFXCom / Stick ZWave / IPX / Serveur Traccar / Blea
Re: Utilisation de #trigger#
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
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
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités