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

Publicités


Catégories :domotique, multimedia, vocal

Tags:, , , , , , , ,

2 réponses

  1. 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/

    Aimé par 1 personne

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

%d blogueurs aiment cette page :