Ce Forum passera en lecture seule en janvier 2020
Image
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

Utilité et utilisation des tag depuis V3

Réservé à la création de scénarios dans JEEDOM
TaG
Actif
Messages : 1152
Inscription : 26 oct. 2016, 11:02

Re: Utilité et utilisation des tag depuis V3

Message par TaG » 04 août 2017, 13:34

C'est top, faut que je prenne le temps de lire tout ça et de l'implémenter pour bien assimiler ;)

Merci pour ce partage

Avatar de l’utilisateur
raqpub
Timide
Messages : 274
Inscription : 04 juin 2015, 08:21
Localisation : Earth

Re: Utilité et utilisation des tag depuis V3

Message par raqpub » 07 août 2017, 11:27

Bonjour,

Merci @Sartog pour ce partage.
Concernant ta centrale de notifications j'ai le même besoin, mais je trouve dommage qu'on ne puisse mieux exploiter le "Centre de messages" qui permet déjà d'y stocker ce qu'on veut.
Question que j'ai posée ici (sans solution pour l'instant) : viewtopic.php?f=23&t=28582&p=499274#p499274

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 07 août 2017, 12:12

raqpub a écrit :
07 août 2017, 11:27
Bonjour,

Merci @Sartog pour ce partage.
Concernant ta centrale de notifications j'ai le même besoin, mais je trouve dommage qu'on ne puisse mieux exploiter le "Centre de messages" qui permet déjà d'y stocker ce qu'on veut.
Question que j'ai posée ici (sans solution pour l'instant) : viewtopic.php?f=23&t=28582&p=499274#p499274
Bonjour raqpub.
L'utilisation du centre de message Jeedom est possible.
C'est une piste que je n'ai pas exploré jusqu'à maintenant, mais les tests que je viens de faire pour voir si il était possible de l'utiliser me font réfléchir à modifier mon scénario !

Alors comment l'utiliser ?!
Dans ton scénario de traitement des notifications, tu ajoute un bloc code avec ce code là (que tu adapte à ta guise) :

Code : Tout sélectionner

$msg = "";
$listMessage = message::all();
foreach ($listMessage as $message){
  	$msg .= "[".$message->getDate()."]";
  	$msg .= " (".$message->getPlugin().")";
  	($message->getAction() != "") ? $msg .= " (Action : ".$message->getAction().")" : null;
	$msg .= " ".$message->getMessage()."\n";
}
$tags['#msg#'] = $msg;
$scenario->setTags($tags);
Puis tu ajoute un action appelant ton media de communication (sms, slack, app Jeedom, etc) et dans le champ "message" tu inscrit #msg#

Et voilà, tu recevra les message du centre de message Jeedom avec saut à la ligne :D

P.S. : Je l'ai fait à l'arrache et là je dois partir, je reviendrais vers 14h30 ... je n'ai pas eu le temps de tester plusieurs possibilité pour corriger d'éventuel bug, alors attention :)
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
HerveL
Timide
Messages : 478
Inscription : 11 sept. 2015, 22:46
Localisation : Nantes

Re: Utilité et utilisation des tag depuis V3

Message par HerveL » 07 août 2017, 12:30

En fait c'est bien utile, cela permet de faire une programmation plus structurée et plus propre en ayant en quelque sorte l'équivalent d'une fonction en programmation classique.
Comme le disait toregreb les variables sont globales, et donc leur validité et contenu sont permanents
Les tags sont des paramètres que l'on passe au scénario, ou encore des "variables locales" dont la durée de vie se limite à 1 instance du scénario.
L'utilisation des variables pour passer des paramètres au scénario était une méthode un peu bourrin pour contourner le manque.
Une fois cette nouvelle fonctionnalité "intégrée" dans nos esprits, cela va probablement nous permettre de réduire le nombre de scénarios en les rendant un peu plus polyvalents
Hervé
Utilisateur Mini+ et SMART passionné
Zwave, IPX800V3, IPX800V4, Rfxcom, RFP1000

Avatar de l’utilisateur
raqpub
Timide
Messages : 274
Inscription : 04 juin 2015, 08:21
Localisation : Earth

Re: Utilité et utilisation des tag depuis V3

Message par raqpub » 08 août 2017, 09:27

Bonjour,
Bien vu Sartog. Comment as-tu trouvé l'info que "message::all();" permettait de récupérer le contenu du centre de message ?
EDIT : Ok j'ai trouvé dans la doc développeur


Ton code récupère bien le contenu. Du coup je pourrai faire les filtres (chronologiques...) que je voudrai avec du code.
Sans abuser de tes compétences ;-), sais -tu aussi comment vider tout ou partie de ce centre de message avec du code ?

Trop fort.

Yetz
Timide
Messages : 98
Inscription : 07 nov. 2016, 00:17

Re: Utilité et utilisation des tag depuis V3

Message par Yetz » 08 août 2017, 10:57

Merci pour ce thread explicatif des tags ... c'est un super truc de la v3.
Et merci aussi pour l'explication du centre de notification ... Maintenant que je fais mumuse avec le TTS, je me disais justement que je pourrais mettre en place un système qui, à la demande, m'indique vocalement une liste d'événements "fonctionnels" (arrosage lancé ou non, entrées/sorties, etc.) mais aussi les différentes erreurs rencontrées sur les capteurs, ou autres événements normalement loggés dans le centre de messages Jeedom.

Petite question concernant ce centre de messages JEedom (désolé pour le HS) => dans la conf / section Configuration des logs, messages & alertes, si je veux utiliser "Commande sur Warning" je constate qu'on ne peut y utiliser ni scénario, ni commande à "paramètres" genre mails ou pushbullet.
Je n'ai donc pas compris comment on exploite cette possibilité de lancer une commande si un warning est déclenché ?

Merci
AD

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 08 août 2017, 11:57

raqpub a écrit :
08 août 2017, 09:27
Ton code récupère bien le contenu. Du coup je pourrai faire les filtres (chronologiques...) que je voudrai avec du code.
Sans abuser de tes compétences ;-), sais -tu aussi comment vider tout ou partie de ce centre de message avec du code ?

Trop fort.
La fonction pour tout supprimer est removeAll($_plugin = '', $_logicalId = '', $_search = false).
Les 3 paramètres sont optionnels et te permettront de cibler plus précisément ce que tu souhaite effacer (tous les messages d'un plugin).

Code : Tout sélectionner

Pour tout supprimer : message::removeAll();
Pour supprimer tous les messages d'un plugin : message::removeAll("nom du plugin");

etc.
Si tu souhaites supprimer 1 ligne en particulier, il te faut
  • cibler ta ligne depuis un foreach (ou passer par une commande de type byId plutôt que All)
  • utiliser la fonction remove() lorsque le "pointeur" de ton foreach est sur cette ligne.
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)

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 08 août 2017, 13:03

Yetz a écrit :
08 août 2017, 10:57
Petite question concernant ce centre de messages JEedom (désolé pour le HS) => dans la conf / section Configuration des logs, messages & alertes, si je veux utiliser "Commande sur Warning" je constate qu'on ne peut y utiliser ni scénario, ni commande à "paramètres" genre mails ou pushbullet.
Je n'ai donc pas compris comment on exploite cette possibilité de lancer une commande si un warning est déclenché ?

Merci
AD
Bonjour Yetz,

En regardant le code, ce n'est apparemment pas prévu et il faut peut-être demander un ajout de fonctionnalité.
Je peux sélectionner SMS, Slack et appli Jeedom (mais, comme tu l'as indiqué, c'est parce qu'ils n'ont pas de paramètre d'envoie).

Cordialement.
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
raqpub
Timide
Messages : 274
Inscription : 04 juin 2015, 08:21
Localisation : Earth

Re: Utilité et utilisation des tag depuis V3

Message par raqpub » 08 août 2017, 13:19

Sartog a écrit :
08 août 2017, 11:57
raqpub a écrit :
08 août 2017, 09:27
Ton code récupère bien le contenu. Du coup je pourrai faire les filtres (chronologiques...) que je voudrai avec du code.
Sans abuser de tes compétences ;-), sais -tu aussi comment vider tout ou partie de ce centre de message avec du code ?

Trop fort.
La fonction pour tout supprimer est removeAll($_plugin = '', $_logicalId = '', $_search = false).
Les 3 paramètres sont optionnels et te permettront de cibler plus précisément ce que tu souhaite effacer (tous les messages d'un plugin).

Code : Tout sélectionner

Pour tout supprimer : message::removeAll();
Pour supprimer tous les messages d'un plugin : message::removeAll("nom du plugin");

etc.
Si tu souhaites supprimer 1 ligne en particulier, il te faut
  • cibler ta ligne depuis un foreach (ou passer par une commande de type byId plutôt que All)
  • utiliser la fonction remove() lorsque le "pointeur" de ton foreach est sur cette ligne.
==> Yes pour le remove sélectif. C'est ce que j'ai fait sur une des chaînes de caractères d'un de mes messages, suite à lecture de la doc développeur.
le remove() fonctionne bien.
Merci pour ton temps.
Dernière édition par raqpub le 09 août 2017, 12:07, édité 1 fois.

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 08 août 2017, 14:14

De rien, c'est avec plaisir :)
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
Antoinekl1
Actif
Messages : 3924
Inscription : 23 mai 2015, 08:14

Re: Utilité et utilisation des tag depuis V3

Message par Antoinekl1 » 08 août 2017, 17:32

Bonjour a tous

Je bloque sur un truc avec les tags

J'ai un scenario qui peut être appelé en directe ou par un autre scenario avec un tag

Et dans ce scenario j'ai une condition

#[Prises connectées][Télévision][Puissance]# < 5 OU lastChangeStateDuration(#[Prises connectées][Télévision][Etat]#,1) < 7200 ET not(#DEMANDE# matches "/OFF/")

Sauf qu'il ne semble pas apprécier

Soit ma commande est fausse
Soit il n'aime pas que le tag soit pas initialisé mais comme je test un not3 ça ne devrait pas gêner

Une idée ?

Merci
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6

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

Re: Utilité et utilisation des tag depuis V3

Message par toregreb » 08 août 2017, 17:49

Que dit le log ? Un screen de l'appel du scénario ?
Jeedom v2.2.6 sur RPi2+razberry (Zwave)+RFXCom, Enocean et MySensors.
[TUTO]Index HP/HC avec pinces Ampèremétriques
Trucs&Astuces

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

Re: Utilité et utilisation des tag depuis V3

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

A mon avis, il fait main basse sur ton bloc car la condition renvois un null faute à l’inexistence du tag
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
Antoinekl1
Actif
Messages : 3924
Inscription : 23 mai 2015, 08:14

Re: Utilité et utilisation des tag depuis V3

Message par Antoinekl1 » 08 août 2017, 18:25

Sartog a écrit :
08 août 2017, 18:04
A mon avis, il fait main basse sur ton bloc car la condition renvois un null faute à l’inexistence du tag
C'est possible mais c'est dommage, je vais être obligé de passer par des variables, il faudrait que le tag soit initialisé en nulle mais ne bloque pas la condition

Pour l'appel, je lance le scenario en directe et sinon je met DEMANDE=ON ou OFF suivant le besoin
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 08 août 2017, 18:38

Avant ta condition tu peux créer un bloc code qui va vérifier l'existence et le créer si besoin.
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
Antoinekl1
Actif
Messages : 3924
Inscription : 23 mai 2015, 08:14

Re: Utilité et utilisation des tag depuis V3

Message par Antoinekl1 » 08 août 2017, 19:11

Sartog a écrit :
08 août 2017, 18:38
Avant ta condition tu peux créer un bloc code qui va vérifier l'existence et le créer si besoin.
@Sartog merci, ca marche nikel
Dernière édition par Antoinekl1 le 09 août 2017, 12:13, édité 1 fois.
JEEDOM Smart Ultimate + 40 modules zwave
A vendre ; pack POWER jeedom - Jeedom Mini+ - Console Clazio sous Android 6

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 08 août 2017, 23:03

Après des tests d'écriture multiple en même temps, il s'avère que l'écriture dans le centre de message Jeedom est assujettis à une sorte de temps de pause entre 2 scénarios ajoutant un message dans le centre.
Ce phénomène ne s'est pas produit avec mon virtuel.

Pour faire le test, j'ai créé un scénario "Toto" qui appel 3 fois à la suite (sans pause) mon scénario de notification (avec le virtuel). J'ai lancé une fois ce scénario = le virtuel comporte bien les 3 messages.
J'ai purgé le virtuel et ensuite j'ai exécuté 3 fois de suite mon scénario "Toto" = mon virtuel à bien 3 * 3 phrases.

J'ai modifier le scénario "Toto" pour appeler 3 fois à la suite (sans pause) un scénario mettant à jour le centre de message Jeedom. J'ai lancé une fois ce scénario = seulement le 3ème message d'enregistré.
J'ai relancé 1 fois le scénario = le 1er et le 2nd message enregistrés, mais pas le 3ème.
J'ai relancé une nouvelle fois = les 3 messages sont enregistrés.
J'ai exécuté 3 fois de suite mon scénario "Toto" = 3 messages au lieu de 9.


Donc méfiance, la fiabilité d'enregistrement en cas de plusieurs messages (dans le centre de message) n'est pas à 100%.

(Test sur pi3 et SMART).
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
raqpub
Timide
Messages : 274
Inscription : 04 juin 2015, 08:21
Localisation : Earth

Re: Utilité et utilisation des tag depuis V3

Message par raqpub » 09 août 2017, 12:23

Hello Sartog,

Je viens de faire le test avec un petit scénario qui met le message "Essai avec #time# et #seconde#".
Je l'ai exécuté 9 fois en cliquant sur le bouton "Exécuter" depuis l'écran scénario et en attendant juste le message "Lancement du scénario réussi" (quasi instantané).
J'ai vu s'empiler le fait que les messages étaient stockés dans le centre de message (petit widget bleu furtif en haut à droite du dash de jeedom).
Et je les ai tous ...
:)
Capture du 2017-08-09 12-16-15.png
Capture du 2017-08-09 12-16-15.png (19.5 Kio) Consulté 1660 fois

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 09 août 2017, 18:40

Merci raqpub pour ces infos.

Je vais pousser mes tests plus en avant du coup pour comprendre cette différence de résultat !
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)

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

Re: Utilité et utilisation des tag depuis V3

Message par Sartog » 09 août 2017, 18:56

J'ai peut être compris, c'est une protection contre la répétition de message car ça fonctionne lorsque le message est différent à chaque 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)

Répondre

Revenir vers « Scénarios »

Qui est en ligne ?

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