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 !

Utilité et utilisation des tag depuis V3

Réservé à la création de scénarios dans JEEDOM
Loup
Timide
Messages : 249
Inscription : 23 févr. 2016, 21:30

Re: Utilité et utilisation des tag depuis V3

Message par Loup » 31 juil. 2017, 18:23

HOOOOOO....... WOW... Je pense que je viens de comprendre.
Bien sur que cela provoque un changement majeur de tout les scénarios.

Petite question: avec les variable, dans certain scénario trop rapide ou trop proche l'un de l'autre, la variable n'avait pas le temps de changer et provoquait une répétition. Avec les tags cela ne peut plus ce produire ou peux se produire quand même ??

( Tu as aussi des qualités de bon professeur :) Bravo )

Et Merci

Anonyme
Actif
Messages : 10082
Inscription : 09 août 2014, 12:15

Re: Utilité et utilisation des tag depuis V3

Message par Anonyme » 31 juil. 2017, 18:27

Contenu supprimé à la demande de son auteur

Loup99
Timide
Messages : 78
Inscription : 03 mars 2016, 13:31

Re: Utilité et utilisation des tag depuis V3

Message par Loup99 » 31 juil. 2017, 18:52

magicgg91 a écrit :Et bah aucun souci, puisque les tags sont exclusifs au lancement du scénario !

J'avais effectivement avant la V3, ce même scénario pouvait effectivement se lancer plusieurs fois de manière très rapproché, et je recevais soit plusieurs fois la même notif, ou alors avec 1 texte qui n'était pas le bon.

Plus ce souci maintenant ! En cochant la case pour accepter le lancement en simultané du scénario, chaque exécution a ses tags définis !
Quoi?? Accepter le lancement en simultané ?? Ca fait quoi ??

Envoyé de mon LG-H831 en utilisant Tapatalk


Anonyme
Actif
Messages : 10082
Inscription : 09 août 2014, 12:15

Re: Utilité et utilisation des tag depuis V3

Message par Anonyme » 31 juil. 2017, 19:00

Contenu supprimé à la demande de son auteur

Avatar de l’utilisateur
JAG
Actif
Messages : 597
Inscription : 21 mai 2016, 11:10

Re: Utilité et utilisation des tag depuis V3

Message par JAG » 01 août 2017, 09:26

merci Magiccgg91 pour cet exemple. J'ai enfin compris comment cela fonctionner.

Par contre j'ai une petite question, comment peut-on faire un retour à la ligne dans les messages envoyé "NotifMessage" dans ton exemple ?

se serait bien dans les prochaines maj de jeedom, que l'on puisse agrandir cette case "TAG" pour que l'on puisse tout voir
Box : Jeedom Smart + Jeedom VM-Synology (avec Jeedom en beta)
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés

tifred
Timide
Messages : 217
Inscription : 15 sept. 2014, 22:40

Re: Utilité et utilisation des tag depuis V3

Message par tifred » 01 août 2017, 10:10

Bonjour

merci pour les tags en effet c'est tres utile pour faire des fonctions. c'est ce qui me manquait pour faire de la généricité, un grand merci aux devs.

ll y a un cas que je ne suis pas arrivé à réaliser.
J'ai passé à mon tag TOTO un équipement qui retourne une info, TAGETAT="#[Bureau][Volet][Etat]#" tout à fonctionné correctement, j'ai reçu une notification avec la valeur de l'état du volet.

Mais plus compliqué, j'ai voulu passer en paramètre un tag dont la valeur est une action qui doit être réalisé dans le scénario par un bloc action :
TAGDOWN="#[Bureau][Volet][Down]#".


et la je n'ai rien eu avec ceci
TAGNAME="BUREAU" TAGDOWN="#[Bureau][Volet][Down]#" TAGUP="#[Bureau][Volet][Up]#" TAGETAT="#[Bureau][Volet][Etat]#" TAGETALONNAGE="#[Bureau][Volet][Étalonner]#"

Image http://imgur.com/a/SUvHY
[2017-08-01 09:57:23][SCENARIO] Start : 'Lancement provoque par le scenario : [Scenario][Volets][Test Volet]'. Tags : Array
(
[#TAGNAME#] => "BUREAU"
[#TAGDOWN#] => "#1868#"
[#TAGUP#] => "#1869#"
[#TAGETAT#] => "0"
[#TAGETALONNAGE#] => "#1881#"
)
[2017-08-01 09:57:23][SCENARIO] Exécution du sous-élément de type [action] : action
[2017-08-01 09:57:23][SCENARIO] [Erreur] Aucune commande trouvée pour #TAGDOWN#
[2017-08-01 09:57:23][SCENARIO] Log : BUREAU with 0

est-ce que c'est possible de faire ça?
Les tags sont-il fait uniquement pour des informations et non des actions?
Peut-on interdire l'évaluation des valeurs du tag avant leur utilisation dans le scénario?

merci a vous
Fred
Dernière édition par tifred le 01 août 2017, 10:42, édité 2 fois.

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

Re: Utilité et utilisation des tag depuis V3

Message par fwehrle » 01 août 2017, 10:30

Ahhh, ça c'est une fonctionnalité que j'attendais depuis un moment. Merci maggic pour le tuto.
Dès que j'ai un peu de temps, je reecrirais bien mes scénarios de notification.
Tiens, une question en passant : comment vous gérez la notion d'utilisateur? Depuis que le tag user n'existe plus, je n'ai pas trouvé d'alternative pour faire des actions différentes en fonction de l'utilisateur.

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

Anonyme
Actif
Messages : 10082
Inscription : 09 août 2014, 12:15

Re: Utilité et utilisation des tag depuis V3

Message par Anonyme » 01 août 2017, 11:15

Contenu supprimé à la demande de son auteur

tifred
Timide
Messages : 217
Inscription : 15 sept. 2014, 22:40

Re: Utilité et utilisation des tag depuis V3

Message par tifred » 01 août 2017, 11:19

arf c'est dommage ça pourrait utile, pour la généricité, dans le cas de memes scénarios mais avec des équipements différents.

Avatar de l’utilisateur
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

Re: Utilité et utilisation des tag depuis V3

Message par Masterfion » 01 août 2017, 16:53

JAG a écrit :
01 août 2017, 09:26
Par contre j'ai une petite question, comment peut-on faire un retour à la ligne dans les messages envoyé "NotifMessage" dans ton exemple ?
La prise en compte des retours à la ligne a déjà été demandé à l'équipe. J'espère aussi qu'ils seront gérés prochainement ;)
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Avatar de l’utilisateur
loic
Administrateur
Messages : 14862
Inscription : 01 févr. 2014, 16:21

Re: Utilité et utilisation des tag depuis V3

Message par loic » 01 août 2017, 17:05

Malheureusement on y arrive pas (j'ai essayé pendant 2 jours a chaque fois j'ai dautre effet de bord) donc pas de retour a la ligne possible.
Aide nous à t'aider : mets des logs, détaille ton soucis... Vous n'aurez aucune réponse de ma part si votre demande n'est pas détaillée (log, capture d'écran lisible...) ou si vous ne postez pas dans la bonne section

Avatar de l’utilisateur
JAG
Actif
Messages : 597
Inscription : 21 mai 2016, 11:10

Re: Utilité et utilisation des tag depuis V3

Message par JAG » 01 août 2017, 17:10

Merci pour la réponse,
Par contre est-il possible d'agrandir la zone de saisie afin de voir tout ce que l'on saisie ?

merci pour le boulot
Box : Jeedom Smart + Jeedom VM-Synology (avec Jeedom en beta)
Protocoles : Z-wave - RFXcom - Hue - Bluetooth - Xiaomi
Mon Matériel
Widgets développés

Sartog
Actif
Messages : 502
Inscription : 27 août 2015, 14:54

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 01 août 2017, 18:54

Pour les retour à la ligne, il faut "truander" mais c'est possible;
  1. Dans ton message, tu remplace tes retours à la ligne par un caractère de ton choix (moi c'est |)
  2. Dans ton scénario réceptionnant ton tag, tu créé un bloc code et tu y met ça :

    Code : Tout sélectionner

    // Récupération des tags passés en paramètre.
    $tags = $scenario->getTags();
    
    // On récupère les différents messages passés dans le tags #msg# et espacés par |.
    $msg = explode("|", $tags['#msg#']);
    
    // Parcours du tableau.
    foreach ($msg as $value) {
     
    	// MAJ du message.
    	(trim($value) != "") ? $msg .= trim($value)."\n" : null;
      
    }
    
    // MAJ du tableau.
    $tags['#msg#'] = $msg;
    
    // MAJ du tag.
    $scenario->setTags($tags);
  3. Tu utilise ton Tags normalement dans ton scénario.
Cela ne fonctionne que pour les moyens de communication acceptant les retour à ligne (SMS, Slack, app jeedom (heuu j'ai un doute pour elle).

P.S.1 : Dans le code, tu remplace bien évidement #msg# par le nom de ton tags dans lequel tu mets ton message.
P.S.2 : Le code est une extraction / adaptation rapide de mon scénario de traitement de notifications bien plus complet (que je peux partager si demandé).
Box : smart, mini+, pi 2 et 3, ipbx800 v4
Protocole : Z-Wave (Fibaro & Qubino), Ikea, Bluetooth
Méteo : Netatmo
Audio : Sonos (Play 1 et 5)

Avatar de l’utilisateur
Masterfion
Actif
Messages : 1589
Inscription : 08 janv. 2015, 11:35
Localisation : Vallauris / Antibes

Re: Utilité et utilisation des tag depuis V3

Message par Masterfion » 02 août 2017, 09:28

Merci pour ton astuce sur la manipulation des tags.
Je pense (comme d'autres sûrement) que ça serait intéressant de partager ton scénario comme l'a fait @magicgg91 ;)
Beta-Testeur JEEDOM
Proxmox Core i5 Raid1 mSATA | Synology 916+

Loup99
Timide
Messages : 78
Inscription : 03 mars 2016, 13:31

Re: Utilité et utilisation des tag depuis V3

Message par Loup99 » 02 août 2017, 12:48

Masterfion a écrit :Merci pour ton astuce sur la manipulation des tags.
Je pense (comme d'autres sûrement) que ça serait intéressant de partager ton scénario comme l'a fait @magicgg91 ;)
Oui j'aimerais bien moi aussi. Je ne comprend pas bien le retour de ligne. Merci

Envoyé de mon LG-H831 en utilisant Tapatalk


Sartog
Actif
Messages : 502
Inscription : 27 août 2015, 14:54

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 03 août 2017, 16:34

Ok, je vais essayer de vous expliquer mon scénario.

1 - Appel du scénario "Notifications" :
Appel scénario.JPG
Appel scénario.JPG (25.93 Kio) Consulté 4532 fois
Explication des tags :
  • msg="mon message" : votre ou vos messages. J'expliquerais la construction après (optionnel).
  • opt = 0 : option indiquant quel process devra utiliser le scénario de notification (voir 2 - Process de traitement ci-après) (optionnel).
  • app = 0 : message envoyé (1), ou non (0), à l'application Jeedom (optionnel).
  • slack=0 : message envoyé (1), ou non (0), à Slack (optionnel).
  • smsV = 0 : message envoyé (1), ou non (0), par SMS à ma femme (optionnel).
  • smsS = 0 : message envoyé (1), ou non (0), par SMS à moi (optionnel).
  • tts = 0 : message envoyé (1), ou non (0), au SONOS pour TTS (optionnel) (ne fonctionne pas car le TTS sur la Jeedom SMART n'est actuellement pas fonctionnel).


2 - Process de traitement des informations reçues :
Mon scénario traite 4 process de notification (via le tag opt) :
  • opt non renseigné : envoie du message uniquement.
  • opt = 0 : mise en Centrale de notification uniquement.
  • opt = 1 : envoie du message + mise en log dans un virtuel (que j'appel Centrale de notification).
  • opt = 2 : envoie des messages stockés dans la Centrale de notification.


3 - Le scénario "Notifications" :
Scénario.jpg
Scénario.jpg (398.15 Kio) Consulté 4480 fois
La 1ère partie, bloc code (en bleu), va traiter le tag msg (voir 4 - Le code ci-après).
La 2nde partie, tous les blocs SI, va envoyer le message aux différents services en fonction des options passées (pour rappel, tag app, slack, smsV, smsS et tts).



3 - Le scénario "Notifications" :

Code : Tout sélectionner

/**
 * Type : Scénario
 * Fonction : Récupère les tags + explode le tag #msg# + random sur message à envoyer
 *			  Récupère les notifications de la centrale (virtuel), les mets en forme et les envoies.
 * Version : 0.2 (2017-08-04) (Modification)
 * Copyright : Sartog 
 *
 * Cron : S/O
 * Déclencheur : Scénarios
 *
 * Condition(s) :	Horaire -> 24/24
 *					Mode	-> Tous
 *
 *
 * Changelog :
 *	V0.0 (2017-07-07) -> Création.
 *	V0.1 (2017-07-26) -> Ajout prise en compte centrale notification.
 *	V0.2 (2017-08-04) -> Prise en compte des sauts de ligne dans les messages matérialisés par ¤.
 *
 */
 
// Récupération des tags passés en paramètre.
$tags = $scenario->getTags();

if ($tags['#opt#'] == 2) { // Récupération de la centrale de notification pour envoie.
	
	// Initialisation variable.
	$msg = "┌──── Notifications du ".Date('d-m-Y')."\n";
	 
	// Récupération des notifications de la centrale (virtuel).
	$msg .= cmd::byString("#[Aucun][Centrale notifications][Notifications]#")->execCmd();
  	$msg .= "\n";

	// Fin du message.
	$msg .= "└─────────";
	
} else { // Traitement du tag #msg#.

	// On récupère les différents messages passés dans le tags #msg# et espacés par |.
	$msg = explode("|", $tags['#msg#']);

	// Choix aléatoire du message.
	$msg = $msg[array_rand($msg, 1)];

  	// On récupère les différentes lignes matérialisées pour ¤.
	$msg = str_replace("¤", "\n", $msg);
}

// MAJ de la centrale de notification.
if (($tags['#opt#'] == 0 || $tags['#opt#'] == 1)){
	
	// Récupération des notifications de la centrale (virtuel).
	$centrale = cmd::byString("#[Aucun][Centrale notifications][Notifications]#")->execCmd();
	
	// Ajout du message en cours.
	$centrale .= "\n";
	$centrale .= "│ [". Date('H:i:s') ."]";
	($tags['#opt#'] == 0) ? $centrale .= "[Info] " . str_replace("\n", "\n|", $msg) : $centrale .= "[Alerte] " . str_replace("\n", "\n|", $msg);
	
	// MAJ de la centrale.
	$option = Array('slider' => $centrale);
	$cmd = cmd::byString("#[Aucun][Centrale notifications][MAJ Notifications]#")->execCmd($option);
}

// MAJ du tableau.
$tags['#msg#'] = $msg;

// MAJ du tag.
$scenario->setTags($tags);
Dans la 1ère partie (if ($tags['#opt#'] == 2)) je traite les messages stockés dans la Centrale de notifications en remplaçant le caractère | par un retour à la ligne \n.
Dans la 2nde partie (else), il y a 2 étapes :
  1. je récupère le tag msg et j'y extrait le ou les messages présents pour je fais un random sur le résultat. Cela me permet d'avoir des phrases différentes,
  2. je récupère le message du random et je remplace le caractère ¤ par un retour à la ligne \n.


4 - Exemples :
Si je passe "msg="message n°1 | message n°2" smsS=1" alors le scénario :
  • va choisir entre "message n°1" et "message n°2",
  • ne va rien mettre dans la Centrale de notification (absence du tag opt),
  • va m'envoyer, par sms, le résultat du random.
Si je passe "msg="message n°1 | message n°2" opt=1 slack=1" alors le scénario :
  • va choisir entre "message n°1" et "message n°2",
  • va mettre le résultat du random dans la Centrale de notification,
  • va m'envoyer, par slack, le résultat du random
si je passe "msg="Ceci ¤est ¤ un¤ test ¤ avec ¤ saut ¤de¤ligne" smsS=1" alors le scénario :
  • n'a pas vraiment le choix pour le message :D
  • ne va rien mettre dans la Centrale de notification,
  • va m'envoyer, par sms, le résultat suivant :

Code : Tout sélectionner

Ceci
est
un
test
avec
saut
de
ligne


J'espère avoir été suffisamment clair (j'ai un train à prendre, désolé :P )
N'hésitez pas à poser vos questions si besoin.

Edit : Modification du scénario et du code.
  • Le code : remplace d'un foreach par un str_replace (pour le caractère ¤) + intégration du \n directement dans la Centrale de notification.
    Par contre, ça impose une alimentation de la Centrale de notification via code php.
  • Suppression d'un bloc action devenu inutile suite modification du code
Dernière édition par Sartog le 04 août 2017, 11:58, édité 1 fois.
Box : smart, mini+, pi 2 et 3, ipbx800 v4
Protocole : Z-Wave (Fibaro & Qubino), Ikea, Bluetooth
Méteo : Netatmo
Audio : Sonos (Play 1 et 5)

TaG
Actif
Messages : 1159
Inscription : 26 oct. 2016, 11:02

Re: Utilité et utilisation des tag depuis V3

Message par TaG » 03 août 2017, 22:01

Hello.

Merci pour le partage !

C'est bien expliqué, même très bien.

Questions :
Tu t'en sers dans quel cas du random sur le message ? Genre en tts tu envoi un je t'aime où je te déteste à ta femme ? :D ?

La centrale de notification c'est quoi ? J'ai vu que tu l'avais définie comme un objet jeedom vu que tu l'appelle via le #[][][]#

Tu stocke pleins de trucs dedans et ensuite tu balances tout une fois par jour par exemple via un autre scénario ?


En tout cas c'est super !!

Merci

Sartog
Actif
Messages : 502
Inscription : 27 août 2015, 14:54

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 03 août 2017, 22:44

TaG a écrit :
03 août 2017, 22:01
...
Questions :
Tu t'en sers dans quel cas du random sur le message ? Genre en tts tu envoi un je t'aime où je te déteste à ta femme ? :D ?

La centrale de notification c'est quoi ? J'ai vu que tu l'avais définie comme un objet jeedom vu que tu l'appelle via le #[][][]#

Tu stocke pleins de trucs dedans et ensuite tu balances tout une fois par jour par exemple via un autre scénario ?
Merci TaG pour ton message.

Alors, concernant le random c'est uniquement pour éviter d'avoir toujours les mêmes notification.
Avec ce système, je peux avoir de 1 à X messages différents pour notifier de la même chose.
Par exemple : msg="C'est le jour des poubelles jaunes. | Aujourd'hui, il faut sortir les poubelles jaune. | Les poubelles jaunes sont à sortir."
Je pourrais également l'utiliser pour dire je t'aime ou je te déteste à ma femme, mais c'est jouer à la roulette russe avec le WAF sur ce coup :lol:

La centrale de notification est un virtuel tout simple (même si je réfléchis à l’embellir de commande info supplémentaire pour faire des sortes de catégories dans les notifications, cela ayant pour but de regrouper tous les messages de même catégorie lors de l'envoie)
Virtuel.JPG
Virtuel.JPG (47.91 Kio) Consulté 4505 fois
Actuellement, je balance tout ce qui est stocké dans la centrale de notification lorsque je rentre à la maison et je la purge tous les jours à 00h01 (de mémoire), mais je pense mettre d'autre déclencheur car je ne rentre pas tous les soirs.
Pour l'envoie, j'appel juste mon scénario Notifications avec uniquement le tag opt=2.
Box : smart, mini+, pi 2 et 3, ipbx800 v4
Protocole : Z-Wave (Fibaro & Qubino), Ikea, Bluetooth
Méteo : Netatmo
Audio : Sonos (Play 1 et 5)

TaG
Actif
Messages : 1159
Inscription : 26 oct. 2016, 11:02

Re: Utilité et utilisation des tag depuis V3

Message par TaG » 04 août 2017, 07:50

Merci pour les explications.


Le plus rude reste la centrale de notification. C'est encore abstrait pour moi. Faut que j'essaye pour comprendre.

Et je comprends que tu ne veuille pas tenter ma proposition pour le WAF :)!!

Merci encore ;)!!!

Sartog
Actif
Messages : 502
Inscription : 27 août 2015, 14:54

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 04 août 2017, 12:18

En fait il faut voir la Centrale de notification comme un fichier de log.

Par exemple, j'ai 3 notifications différentes :
  • Notification 1 : "Départ de Sylvain."
  • Notification 2 : "Les volets sont ouvert."
  • Notification 3 "La lumière de l'aquarium est allumée"
Etant des notifications d'information, je décide de ne pas les recevoir instantanément et donc je les stock dans mon virtuel.

La commande "Notifications" de mon virtuel aura comme valeur (attention, je tiens compte des informations ajoutés par mon code):
Capture1.JPG
Capture1.JPG (43.52 Kio) Consulté 4479 fois
Lorsque je vais rentrer chez moi, cela va déclencher l'envoi des messages stockés dans la Centrale et je recevrais ceci :
┌──── Notifications du 04-08-2017
│ [12:12:32][Info] Départ de Sylvain.
│ [12:12:48][Info] Les volets sont ouvert.
│ [12:13:08][Info] La lumière de l'aquarium est allumée.
└─────────

J'espère que ça permettra de démystifier ce virtuel :P

P.S. :
Pour information :
En faisant des tests à la con, hier soir, je me suis aperçut que les saut de ligne (caractère \n) étaient stockés dans la Centrale de notification et bien envoyé à la demande ... J'ai mis à jour mon scénario et code en conséquence.
Par contre ça impose d'alimenter la Centrale de notification par code php car via un bloc action le caractère \n ne génère pas de saut de ligne.

J'ai donc mis à jour mon post détaillé en conséquence.
Box : smart, mini+, pi 2 et 3, ipbx800 v4
Protocole : Z-Wave (Fibaro & Qubino), Ikea, Bluetooth
Méteo : Netatmo
Audio : Sonos (Play 1 et 5)

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

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