Notifications et tags dans Jeedom

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)…

Publié le 3 octobre 2018
Mis à jour le 8 septembre 2022

3 réflexions sur “Notifications et tags dans Jeedom”

  1. Ping : Piloter kodi et IPTV avec Jeedom - Didier ROMBAUTS

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *