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
PuNiSHeR
Actif
Messages : 1664
Inscription : 05 sept. 2015, 15:38
Localisation : Belgique
Contact :

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

Message par PuNiSHeR » 29 avr. 2016, 14:34

Salut les gars,

Je déterre un peu le topic, parce que moi, je suis confronté à un autre problème qui, je pense, n'était pas présent avant, mais sans certitude.

Donc, je fais une évaluation :

Code : Tout sélectionner

SI #trigger# == "[Sécurités][Présence][RFID]"
J'obtiens ça comme résultat :

Code : Tout sélectionner

[2016-04-29 14:18:11][SCENARIO] Début d'exécution du scénario : [Hall Entrée][Sécurités][Gache Electrique]. 
[2016-04-29 14:18:11][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-29 14:18:11][SCENARIO] Evaluation de la condition : ["Lancement provoqu par le scnario  : [Prsence][Scurits][RFID]" == "[Sécurités][Présence][RFID]"] = Faux
[2016-04-29 14:18:11][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-29 14:18:11][SCENARIO] Fin correcte du scénario
------------------------------------
Les accents cavalent !!

Donc, je joue le jeu et je refais l'évaluation ainsi :

Code : Tout sélectionner

#trigger# == "[Prsence][Scurits][RFID]"
Et surprise, Jeedom continue à jouer l'imbécile :

Code : Tout sélectionner

[2016-04-29 14:19:24][SCENARIO] Début d'exécution du scénario : [Hall Entrée][Sécurités][Gache Electrique]. 
[2016-04-29 14:19:24][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-29 14:19:24][SCENARIO] Evaluation de la condition : ["Lancement provoqu par le scnario  : [Prsence][Scurits][RFID]" == "[Prsence][Scurits][RFID]"] = Faux
[2016-04-29 14:19:24][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-29 14:19:24][SCENARIO] Fin correcte du scénario
------------------------------------
Donc, je test cette évaluation là :

Code : Tout sélectionner

trigger(#[Présence][Sécurités][RFID]#) == 1
Et là :

Code : Tout sélectionner

[2016-04-29 14:27:34][SCENARIO] Début d'exécution du scénario : [Hall Entrée][Sécurités][Gache Electrique]. 
[2016-04-29 14:27:34][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-29 14:27:34][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2016-04-29 14:27:34][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-29 14:27:34][SCENARIO] Fin correcte du scénario
------------------------------------
Je retest un autre type :

Code : Tout sélectionner

trigger("[Présence][Sécurités][RFID]") == 1
Et bien, toujours rien :

Code : Tout sélectionner

[2016-04-29 14:30:33][SCENARIO] Début d'exécution du scénario : [Hall Entrée][Sécurités][Gache Electrique]. 
[2016-04-29 14:30:33][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-29 14:30:33][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2016-04-29 14:30:33][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-29 14:30:33][SCENARIO] Fin correcte du scénario
------------------------------------
Donc, au final, pas moyen de tester mon évaluation.

Et pour déjà répondre à votre prochaine question, oui, j'ai déjà testé avec "matches", mais le résultat est idem.

Donc, je pense qu'il y a un souci coté Scénario.

Avatar de l’utilisateur
PuNiSHeR
Actif
Messages : 1664
Inscription : 05 sept. 2015, 15:38
Localisation : Belgique
Contact :

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

Message par PuNiSHeR » 29 avr. 2016, 14:41

Et pour vous prouver que je ne mythone pas :

Code : Tout sélectionner

#trigger# matches "/[Présence][Sécurités][RFID]/"
Résultat :

Code : Tout sélectionner

[2016-04-29 14:39:12][SCENARIO] Début d'exécution du scénario : [Hall Entrée][Sécurités][Gache Electrique]. 
[2016-04-29 14:39:12][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-29 14:39:12][SCENARIO] Evaluation de la condition : ["Lancement provoqu par le scnario  : [Prsence][Scurits][RFID]" matches "/[Présence][Sécurités][RFID]/"] = 0
[2016-04-29 14:39:12][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-29 14:39:12][SCENARIO] Fin correcte du scénario
------------------------------------

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 » 29 avr. 2016, 15:19

Tu utilise quelle version de Jeedom ?
Je n'ai pas de soucis en 2.3.1 mais puisque j'ai la 2.3.2 à passer, je préfère autant savoir avant de le faire :D
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Avatar de l’utilisateur
PuNiSHeR
Actif
Messages : 1664
Inscription : 05 sept. 2015, 15:38
Localisation : Belgique
Contact :

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

Message par PuNiSHeR » 29 avr. 2016, 15:21

Masterfion a écrit :Tu utilise quelle version de Jeedom ?
Je n'ai pas de soucis en 2.3.1 mais puisque j'ai la 2.3.2 à passer, je préfère autant savoir avant de le faire :D
Version : 2.2.6.

Ah ok, toi tu es Beta testeur peut être pour avoir cette version là ?

C'est pour ça que j'ai dit que je ne pense pas que j'avais le problème avant la v2.2.6.

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

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

Message par fwehrle » 06 juin 2016, 21:45

Punisher : je confirme que les scénarios n'aiment pas les accents. Pour faire simple, j'ai renommé tout mes scénarios et équipements ou je dois tester le nom... sans accent. :)
Vivement que ce soit corrigé... avec le problème du test des valeurs vides. :)

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
Zerat9w
Timide
Messages : 486
Inscription : 26 févr. 2015, 09:26
Localisation : Région Bordelaise

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

Message par Zerat9w » 02 sept. 2016, 14:17

Une petite astuce pour les personnes voulant créer un scénario unique avec plusieurs déclencheurs et faire un message en pushbullet (ou autre) personnaliser en fonction de la pièce.

strtolower(substr(#trigger#,1,strpos(#trigger#, ']')-1))

Ex:
Trigger = #[Cuisine][Fenêtre][Etat]#
La fonction permettra extraire le mot "cuisine" uniquement.

L'avantage est dans le message pushbullet:
L'ouverture de la fenêtre de la strtolower(substr(#trigger#,1,strpos(#trigger#, ']')-1)) vient d'être détecter le sprintf("%02s",#jour#)/sprintf("%02s",#mois#)/#annee# à sprintf("%02s",#heure#):sprintf("%02s",#minute#).

Qui donnera: L'ouverture de la fenêtre de la cuisine vient d'être détecter le 02/09/20016 à 14:16.
Jeedom

La rétention de l'information est une forme de constipation du savoir.

Documentation - Trucs & Astuces - Charte

dj_janker
Timide
Messages : 461
Inscription : 03 févr. 2015, 09:27

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

Message par dj_janker » 06 déc. 2016, 08:26

Salut @Masterfion
J'ai un scénario qui se declenche si une ou plusieurs conditions sont remplies. Dans ce cas, j'envoyer un email avec le nom de tous les declencheurs ont conduit à la phase d'exécution.
Cette possible envoyer par un seul e-mail tous les #trigger# qui déclenchent un scénario?.
Un exemple, s'il vous plaît?
Merci

pmacaro
Timide
Messages : 29
Inscription : 13 nov. 2014, 13:05

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

Message par pmacaro » 07 déc. 2016, 15:49

J'ai moi aussi un problème avec cette commande (très mal documentée), heureusement que ce topic est là !
Dans mon cas, la commande trigger (sous toutes ses formes) ne me permet pas de savoir quel scénario a lancé mon scénario.

J'ai un scénario qui gère l'allumage d'une lumière.
Ce scénario peut être déclenché par des capteurs, mais aussi par plusieurs autres scénarios, et j'ai donc besoin de connaître le trigger (ça tombe bien c'est le titre du topic ! :D ).

Mes tests :
- Lors d'un lancement manuel ou par un capteur, le comportement est tel que décrit par Masterfion.
- Mais si le déclencheur est un scénario, alors trigger() ou #trigger# restent vides, et le forme trigger([mon scénario]) ne donne rien non plus.

A ma connaissance, le seul endroit où la fonction "trigger" est mentionnée est dans la page "Scénario" de la documentation, et il n'est mentionné que des "commandes" comme paramètre possible.
Un scénario n'étant pas une "commande", la documentation semble donc cohérente...

J'ai plusieurs moyens de faire autrement, mais pour des raisons de lisibilité, j'aimerais autant que possible utiliser cette fonction.
Alors pour confirmation : est-ce que quelqu'un arrive à utiliser "trigger" pour récupérer/tester le scénario déclencheur ?

Merci par avance pour votre aide !
Jeedom DIY sur Raspberry2 avec razberry et openzwave

winhex
Actif
Messages : 3799
Inscription : 23 janv. 2015, 01:41

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

Message par winhex » 07 déc. 2016, 16:06

Elle va pas te plaire
Pause de x secondes dans le scénario À qui lance le scénario B
Si le scénario À et en marche alors c'est lui qui lance le B

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 » 07 déc. 2016, 16:16

La fonction qui permet de savoir si un scénario a été déclenché par un autre scénario a été supprimé de Jeedom il y a quelques semaines / mois.
Je m'en servais beaucoup aussi :cry:
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

pmacaro
Timide
Messages : 29
Inscription : 13 nov. 2014, 13:05

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

Message par pmacaro » 07 déc. 2016, 16:25

Merci pour les réponses.

Quand je pense à tout le temps que j'ai passé à chercher dans la doc/le forum et à tester...

Dommage que des fonctions aussi essentielles soient ainsi supprimées.
Jeedom DIY sur Raspberry2 avec razberry et openzwave

ouquoi
Timide
Messages : 469
Inscription : 29 janv. 2016, 09:50

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

Message par ouquoi » 27 févr. 2017, 14:18

Oui c important j espère que cela sera dans la v3

from tapuntruc
RPI3 - AEON LABS Z-Wave (GEN5) - Oeil fibaro - Synology Nas - Webcam ip - Minix Neo z64 - Broadlink RM PRO - Xiaomi Home - Yeelight - Nut mini

Life is sharing , Sharing is life !

Avatar de l’utilisateur
blusy38
Timide
Messages : 471
Inscription : 31 mars 2016, 21:10
Localisation : Lyon
Contact :

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

Message par blusy38 » 19 mars 2017, 16:03

Des heures de tests pour me rendre compte qu'elle à été supprimé. Bon je vais devoir trouver une alternative...

ouquoi
Timide
Messages : 469
Inscription : 29 janv. 2016, 09:50

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

Message par ouquoi » 19 mars 2017, 17:04

Si tu trouves une solution je suis preneur merci

from tapuntruc
RPI3 - AEON LABS Z-Wave (GEN5) - Oeil fibaro - Synology Nas - Webcam ip - Minix Neo z64 - Broadlink RM PRO - Xiaomi Home - Yeelight - Nut mini

Life is sharing , Sharing is life !

Avatar de l’utilisateur
blusy38
Timide
Messages : 471
Inscription : 31 mars 2016, 21:10
Localisation : Lyon
Contact :

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

Message par blusy38 » 19 mars 2017, 17:51

ouquoi a écrit :Si tu trouves une solution je suis preneur merci

from tapuntruc
En faite j affect une variable avec la fonction $scenario->getName() depuis mon scénario source que je récupère dans mon scénario cible.
En esperant que ca t'aide.
J'utilise cette technique dans un scénario que je vais mettre en ligne bientôt.

Guillaume.

ouquoi
Timide
Messages : 469
Inscription : 29 janv. 2016, 09:50

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

Message par ouquoi » 19 mars 2017, 19:08

Ok merci le problème avec les variables c est le chevauchement. Mon but étant d utiliser ça dans tous les scénarios ça serait intéressant de savoir si cette info existe en bdd et où elle est ?
Merci je vais tester ça dans mes scénario que j ai besoin de debugger

from tapuntruc
RPI3 - AEON LABS Z-Wave (GEN5) - Oeil fibaro - Synology Nas - Webcam ip - Minix Neo z64 - Broadlink RM PRO - Xiaomi Home - Yeelight - Nut mini

Life is sharing , Sharing is life !

Avatar de l’utilisateur
blusy38
Timide
Messages : 471
Inscription : 31 mars 2016, 21:10
Localisation : Lyon
Contact :

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

Message par blusy38 » 19 mars 2017, 19:14

ouquoi a écrit :Ok merci le problème avec les variables c est le chevauchement. Mon but étant d utiliser ça dans tous les scénarios ça serait intéressant de savoir si cette info existe en bdd et où elle est ?
Merci je vais tester ça dans mes scénario que j ai besoin de debugger

from tapuntruc
Si ta variable est affecté au moment du déclenchement du scénario cible tu ne devrais pas avoir de problème de chevauchement.

Si ca peut t'aider : https://guillaumebraillon.fr/jeedom-sce ... ring/#Code
Guillaume.

Bercolly
Actif
Messages : 956
Inscription : 20 août 2015, 22:21
Localisation : Clermont-ferrand

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

Message par Bercolly » 20 mars 2017, 11:39

PuNiSHeR a écrit :Et pour vous prouver que je ne mythone pas :

Code : Tout sélectionner

#trigger# matches "/[Présence][Sécurités][RFID]/"
Résultat :

Code : Tout sélectionner

[2016-04-29 14:39:12][SCENARIO] Début d'exécution du scénario : [Hall Entrée][Sécurités][Gache Electrique]. 
[2016-04-29 14:39:12][SCENARIO] Exécution du sous-élément de type [condition] : if
[2016-04-29 14:39:12][SCENARIO] Evaluation de la condition : ["Lancement provoqu par le scnario  : [Prsence][Scurits][RFID]" matches "/[Présence][Sécurités][RFID]/"] = 0
[2016-04-29 14:39:12][SCENARIO] Exécution du sous-élément de type [action] : else
[2016-04-29 14:39:12][SCENARIO] Fin correcte du scénario
------------------------------------

Bonjour,

Peut-être un 'simple' problème de code page ? Les caractères accentués ont différents codages suivant le code page. Le code page de ton scénario n'est peut-être pas le même que celui de la base mysql ?
A+
Bernard
jeeDom Mini+ V2.1.2
Plugins développés : Smart TvSamsung, jEditor (éditeur scénario pleine page) jEditor -> viewtopic.php?f=135&t=27181

Avatar de l’utilisateur
PuNiSHeR
Actif
Messages : 1664
Inscription : 05 sept. 2015, 15:38
Localisation : Belgique
Contact :

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

Message par PuNiSHeR » 23 mars 2017, 10:00

Bonjour à tous,

Voici ma méthode pour simuler un trigger entre scénario.

Je commence à créer un Virtuel que je vais nommer Trigger. Je sais, je vous entend déjà gueuler au loin, "ENCORE UN VIRTUEL", ben oui, parce que tant que la v3 de Jeedom n'est pas sortie avec l'implémentation des variables en déclencheur, il n'y a pas d'autres solutions.

Ensuite, je crée un Commande INFO avec comme sous type AUTRE pour recevoir des infos type String et que je nomme Scenario1Message.
Dans la configuration Avancée de la commande INFO, je vais mettre les répétitions à Tout le temps.

Je crée également une autre commande, mais cette fois-ci, une commande ACTION, que je nomme Scenario1 avec un sous type Message. Je lie cette commande à ma commande INFO Scenario1Message et dans le champs Nom Information, je met également le Nom de ma commande INFO.

Vous devez avoir quelque chose qui ressemble à ceci :
virtuel.jpg
virtuel.jpg (168.56 Kio) Consulté 1271 fois
Après, dans mon Scénario initial qui va déclencher mon 2ème scénario cible, je ne vais pas mettre une ACTION SCENARIO - START comme on le ferait habituellement, mais je vais mettre une ACTION avec ma commande Scenario1 de mon Virtuel Trigger.

Un champs Titre et Message vont apparaitre et je vais simplement mettre le nom de mon scénario dans Titre, comme ceci :
ScenaEmet.jpg
ScenaEmet.jpg (44.21 Kio) Consulté 1271 fois
Naturellement, je sauvegarde et maintenant, je vais adapter mon scénario cible.

Pour ce faire, il suffit d'ajouter un déclencheur avec ma commande INFO Scenario1Message et comme d'habitude, je vais vérifier mon Trigger avec un bloc SI.
Mais pour plus de sécurités et éviter les déclenchements intempestif ou accidentel, je met un double contrôle.

Code : Tout sélectionner

trigger(#[Système][Trigger][Scenario1Message]#) == 1 && #[Système][Trigger][Scenario1Message]# matches "/Test Trigger Emetteur Titre/"
Ca doit ressembler à quelque chose comme ça :
ScenaRecep.jpg
ScenaRecep.jpg (328.81 Kio) Consulté 1271 fois
Encore une fois, on sauvegarde et c'est emballé.

Et au niveau des Logs, ça donne ça :

Image

Voilà, c'est un peu de chipotage, mais ça fait le job.

ouquoi
Timide
Messages : 469
Inscription : 29 janv. 2016, 09:50

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

Message par ouquoi » 23 mars 2017, 16:32

MErci pour le partage.
Le chevauchement peut-il encore arrivé avec cette méthode ?
RPI3 - AEON LABS Z-Wave (GEN5) - Oeil fibaro - Synology Nas - Webcam ip - Minix Neo z64 - Broadlink RM PRO - Xiaomi Home - Yeelight - Nut mini

Life is sharing , Sharing is life !

Répondre

Revenir vers « Utilisation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité