Aujourd’hui, j’avais envie de vous parler d’une possibilité assez intéressante à utiliser dans les scenarii.
Alors que je regarde avec grand intérêt Snips (assistant vocal sans cloud), je me suis dit que ce serait assez fastidieux de devoir changer tous les endroits où je notifie une information, que ce soit par mail, sur les mobiles ou sur les TTS, si je change de système.
C’est alors que je me suis dit qu’il était temps de mieux gérer ces notifications en centralisant l’action de notification dans un seul scénario, qui sera appelé par d’autres scénario pour envoyer les messages.
Jusqu’ici, c’est une bonne idée mais comment faire?
Passer par des variables est une possibilité mais le mieux est d’utiliser les tags, sorte de variables éphémères qui permettent de transmettre des informations au scénario appelé à partir du scénario appelant.
J’ai donc défini une série de tags, car on peut en passer plusieurs si on les sépare par des espaces pour informer au scénario qui produit la notification à quel système je dois l’envoyer. Chaque tag contiendra une ou plusieurs informations séparées par des virgules si je dois notifier plusieurs appareils en même temps.
Concrètement:
Titre= »mon titre de la notification si besoin »
Message= »le message que je souhaite envoyer »
Mobile= »liste des mobiles auxquels je veux envoyer la notification »
Mail= »liste des mails auxquels je veux envoyer la notification »
TTS= »liste des appareils gérant le TTS auxquels je veux envoyer la notification »
Volume= »volume de la notification »
Donc dans chaque scenario où je veux notifier, je vais appeler le scenario central de notification qui traitera les différents tags.
Parlons maintenant du scenario central…
Je vérifie le contenu de chaque tag pour décider quelle action et donc quel équipement va être utilisé pour envoyer le message.
Dans mon exemple, je teste l’état de l’alarme car certains TTS n’ont pas besoin d’être notifiés si on n’est pas à la maison.
- Nom du scénario : Gestion Notifications - Objet parent : Maison - Mode du scénario : origine est le tag pour le titre de la notification message est le tag pour le contenu du message mobile est le tag pour l'envoi vers les mobiles (didier, roseline) mail est le tag pour l'envoi d'un email (didier, roseline) tts est le tag pour l'envoi d'une notification vocale (lieu1, lieu2) volume est le tag pour le volume de la notification vocale (faible, moyen, fort) SI #mobile# matches "/didier/" ALORS #[Maison][Mobile_Didier][Notification]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #mobile# matches "/roseline/" ALORS #[Maison][JeeSMS][sms_roseline]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #mail# matches "/didier/" ALORS #[Maison][JeeMail][mail_didier]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #mail# matches "/roseline/" ALORS #[Maison][JeeMail][mail_roseline]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #tts# matches "/lieu1/" ALORS SI #volume# matches "/fort/" ALORS #[lieu1][sJarvis_Lieu1][JSTalk_High]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #volume# matches "/moyen/" ALORS #[Séjour][sJarvis_Lieu1][JSTalk_Med]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #volume# matches "/faible/" ALORS #[Séjour][sJarvis_Lieu1][JSTalk_Low]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SINON SI #[Maison][Alarme_Maison][Mode]# != "absent" ALORS SI #tts# matches "/lieu2/" ALORS SI #volume# matches "/fort/" ALORS #[Lieu2][sJarvis_Lieu2][JPTalk_High]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #volume# matches "/moyen/" ALORS #[Lieu2][sJarvis_Lieu2][JPTalk_Med]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SI #volume# matches "/faible/" ALORS #[Lieu2][sJarvis_Lieu2][JPTalk_Low]# - Options : {"enable":"1","background":"0","title":"#origine#","message":"#message#"} SINON SINON SINON ACTION (variable) Affectation de la variable : NOTIFICATIONS à #message#
Voilà, cela veut dire que demain, si un système utilisé pour les notifications est remplacé ou ajouté, il suffira simplement de modifier le scenario central.
Petit plus, j’utilise un Virtuel où je lie à une commande, que j’historise, une variable pour me permettre d’utiliser le plugin JeeLog afin d’afficher la liste des notifications sur un design.
A bientôt pour d’autres articles (j’espère pouvoir vous parler vite de la domotisation du compteur d’eau car je suis en train de monter la carte avec les composants et j’attends les borniers pour finaliser)…
Si tu veut allez plus loin tu peut t’inspirer de ce blog. il fait différents niveaux de priorité dans les notifs
https://www.testsavisetcompagnie.fr/jeedom-scenario-notifications-avancees/
Effectivement, il est allé très loin.
Ping : Piloter kodi et IPTV avec Jeedom - Didier ROMBAUTS