Jeedom notification : Centre de Gestion des notifications

Jeedom notification : Centre de Gestion des notifications

jeedom notification manager : En domotique il est important de bien gérer les notifications.

Je vais vous expliquer la solution que j’utilise pour gérer mes notifications à l’aide de Telegram,

Introduction :

Pourquoi faire un centre de notifications plutôt que de mettre dans chaque scénario la commande pour Telegram?

Tout simplement pour une question pratique dans le long terme.

Quand les scénarios deviennent nombreux et complexes, il est plus simple de choisir la centralisation de certaines fonctions, la notification en est un bon exemple.

Par exemple prenons le cas d’une notification pour l’externalisation de la sauvegarde.

https://youdom.net/2019/10/29/sauvegarder-son-jeedom/
Notre article sur les sauvegardes

Quand le transfert de la sauvegarde vers l’extérieur est fini , je reçois sur mon Telegram :

7h34 – Le Nettoyage et le transfert de la sauvegarde ont été faits. — Déclenchés par : Externalisation_Sauvegarde

Regardons sous le capot de jeedom notification:

Scenario 1 : jeedom notification manager

jeedom notification img01
jeedom notification img02

N’ayez pas peur on va détailler par étapes le scénario jeedom notification manager.

0 – Bloc commentaire

jeedom notification img03

Le bloc commentaire est très utile pour noter une explication de ce que fait le scénario et si il a des particularités.

Dans celui là en plus de l’explication on retrouve l’information pour son lancement avec les Tags pris en compte. Ex: Tags –> QUI=XX OPT=vocal CKI=”la variable définie dans le scénario qui appelle ce scénario {ScenarioKIXX}” MSG=”Phrase”

Explication des Tags :

QUI : La personne qui doit recevoir la notification ( Monsieur ou Madame ou Tout le monde )

OPT : Permet de passer des options aux notifications ( vocal ou urgent ou 0 )

  • VOCAL : signifiera à notre scénario de faire dire la notification sur le google home du salon en plus de Telegram
  • URGENT : permettra à notre scénario de nous alerter même la nuit (on y reviendra plus bas)
  • O : indique pas d’options

CKI : Ce tag permet de savoir quel est le scénario qui a fait appel à a la notification ( très utile pour le “débugage”) obtenue par un Bloc code dans le scénario en question. (on y reviendra plus bas )

MSG : Le message envoyé à la notification.

1 – Premier Bloc SI

img04

variable(EtatHome) == “Nuit” ET #OPT# != “Urgent”

  • variable(EtatHome): Cette variable est attribuée par différents scénarios ou modes pour la gestion de la maison
  • #OPT# : fourni via le tag OPT lors de l’appel à notre scenario.

Donc dans notre scénario : à son démarrage on teste l’état de la maison et l’option envoyée en Tag. Si le test est vrai on sort sinon on passe a la suite.

En français cela donne:

Si la maison est en mode nuit (tout le monde dort et on ne doit pas être dérangé ) ET que le Tag OPT est différent de “Urgent”, alors on ne fait rien. Avec la commande STOP on sort du scénario.

2 – Deuxième Bloc SI

img05

MSG# != “0” et #CKI# != “Jarvis”

  • #MSG# : Fourni via le tag MSG lors de l’appel à notre scénario
  • #CKI# : Fourni via le tag MSG lors de l’appel à notre scénario

Si notre test d’avant est Faux on arrive donc à celui-là.

Ici on teste si le Tag MSG est différent de 0 et si le scénario qui a déclenché notre scénario n’est pas “Jarvis” (on y reviendra dans un autre article )

En français cela donne:

Si le message à envoyer existe et qu’il n’a pas été demandé par “Jarvis”, alors je sauvegarde mon message dans une variable et je copie mon message dans une variable pour le faire dire par le Google Home si besoin.

  • Variable –> bak-Phrase : Utilisé dans un virtuel pour afficher sur le dashboard ou un design le dernier message envoyé pour notification.
  • Valeur –> formatTime(#time#) – #MSG# : Permet de rajouter l’heure avant notre message sous la forme “12h00 – Mon message”
  • Variable –> PhraseTTS : Utilisé si besoin pour faire dire notre message à Google Home ou Alexa ou tout autre système dit TTS
  • Valeur –> #MSG# : Copie notre message dans la variable.

3 – Les 3 prochains Bloc SI

img06

#QUI# = “Monsieur” ou #QUI# = “Madame” ou #QUI# = “tous”

  • #QUI# Fourni via le tag QUI lors de l’appel à notre scénario.

Ici on teste Si #QUI# = “Monsieur” ou ” Madame” ou “Tous” suivant la réponse cela nous permet de savoir a qui envoyé la notification. Cela nous permet de choisir et personnaliser les notifications.

  • Le “Message” est écrit sous la forme: formatTime(#time#)#MSG# — Déclenché par : #CKI# ce qui nous permet de recevoir le message suivant :

7h34Le Nettoyage et le transfert de la sauvegarde ont été faits. — Déclenché par : Externalisation_Sauvegarde

4 – Le sixième Bloc SI

img06

#OPT# = 0 ou #OPT# = “Urgent”

  • #OPT# Fourni via le tag QUI lors de l’appel a notre scénario

En français cela donne:

Si le tag OPT contient la valeur 0 ( c’est à dire pas d’option ) OU si le tag OPT contient la valeur “Urgent” alors je ne fais rien.

Sinon: Si le tag OPT contient la valeur “vocal” Alors je fais dire à (Google Home, Alexa, TTS) le Message enregistré dans la variable “PhraseTTS” à l’étape 2

5 – Dernier Bloc, Bloc Action

 img07
  • Variable –> Phrase, ScenarioKI et PhraseTTS : Mise à Zéro de la variable pour être certain de ne pas renvoyer une ancienne “notif”.

Scénario 2 : Externalisation de la Sauvegarde

jeedom notification img08

0 – Bloc Code

img09

$scenario->setData(“ScenarioKI54”,$scenario->getName());

Ce bout de code sert uniquement à récupérer dans une variable ici appelée “ScenarioKI54” le nom du scénario afin de passer cette information dans le Tag KI

Pour éviter que chaque scénario envoie ou modifie l’information chaque scénario a une variable différente.. Le choix est très simple la variable s’appelle ‘ScenarioKI54” l’id du scénario est 54.

1 – Bloc Action

 img10
  • La première commande et celle de backup.
  • La deuxième commande est celle de nettoyage du backup.
  • Variable –> Phrase : Phrase envoyée au centre de notification.
  • Scénario –> Gestion des notifications : On lance le scénario “Gestion des notifications” avec en TAG “QUI=monsieur OPT=0 CKI=variable(ScenarioKI54) MSG=variable(Phrase)

En français cela donne:

Lance le scénario “Gestion des notifications” avec comme paramètres #QUI# envoie sur le telegram de monsieur, en utilisant aucune option #OPT#=0, avec l’information “nom du scénario actuel “Externalisation des sauvegardes” à l’aide de #CKI# =variable(ScenarioKI54), la phrase suivante #MSG# “Le Nettoyage et le transfert de la sauvegarde a été faite”

Conclusion pour jeedom notification manager

Maintenant il vous suffit pour utiliser jeedom notification manager dans chaque scénario de:

  • rajouter le bloc code en personnalisant la variable associé
  • ajouter l’action scénario –> gestion des notifications et ne pas oublier les TAG c’est très important.

On peut imaginer à terme dans jeedom notification manager de tester si internet fonctionne

Si internet fonctionne on envoie comme d’habitude..

Si internet ne fonctionne pas on envoie par SMS

A vous d’imaginer la suite ou les améliorations

Stéphane BOUTHET

et surtout venez en parler

Facebook

porta. lectus dolor. felis ante. mattis pulvinar Sed Lorem