Mettre en place un Rapport journalier

Cet article est issue d’une série d’articles dédié à la mise en place de scénario avancés permettant d’automatiser des actions sous jeedom ou Nextdom.

Aujourd’hui , je vais me concentrer sur la mise en place d’un rapport journalier .j’ai mis en place sur mon serveur domotique ce scénario afin de m’informer de la météo du jour , des températures dans la maison , du mode dans lequel la maison se trouve , des programmations en cours , comme l’ouverture et la fermeture des volets électriques , et d’autres infos qui me sont utiles au quotidien.

Ca rapport est envoyé tous les matins.

Voila un exemple de ce que je reçois ( via telegram )

rapport Maison du Mardi 12 Février 2019 à 09H00
Bonjour Philippe
Aujourd’hui nous fêtons les : Eulalie,Felix
La température extérieur est de : 2.4°C
Temps prevu aujourd’hui : Ciel Nuageux
Une température prévu entre : -3.2°C et 5.5°C
Un taux d’humidité de : 92 %
Prévisions à venir :
Nous sommes en vigilance vert
Risque : RAS
Lever du Soleil : 7h46
Le soleil se couchera a 17h51
Le soleil sera a son Zenith à : 12:49

Temperatures dans la maison :
20 °C dans le bureau
20.3 °C Dans le salon
19.6 °C Dans la Cuisine
18.3 °C chez enfant 2
18.1 °C chez enfant 1
18.1 °C chez enfant 3
19.7 °C Dans Salle de jeux
17.3 °C chez Parents
Au Sous-sol
14.4 °C Dans la chaufferie
13.5 °C Dans la cave
9.2 °C Dans le garage
7.9 °C Dans la veranda
Electromenager
5.1°C Dans le frigo
-16.3 °C Dans Congélateur

La Maison est en Mode : Present
Simulateur de Presence : Inactif
Alarme : Désactivée

Programmation des Volets
Fermeture :
Zone 1 ( salon ) : 20h00
Zone 2 ( Bureau ) : 18h29
Zone 3 ( Enfants ) : 18h11
Zone 4 (Parents) : 20h15
Ouverture des Volets automatique chambres : 10h30

Verification des Modules
Les modules suivants : Ouverture fenêtre bureau , demande votre attention

votre domotique byfeel.info

Dans les étapes qui suivent , je vais vous expliquer , comment mettre en place ce type de rapport .

Envoyer un simple rapport

Pour envoyer un rapport ou une simple info , par exemple la température extérieur du jour , il suffit juste de renseigner dans le champs message de l’option telegram ou tout autre notification ( email , sms … ) les infos demandés suivantes :

Par exemple :

envoie de la température via telegram

Si j’execute mon scenario , j’obtiens :

Bonjour , il fait aujourd’hui 3 °C

Box domotique

Pour récupérer une valeur a affiché , il suffit de la mettre entre deux # , par exemple : #[Maison][Temperatures][Exterieur]# .

de cette méthode , et qu’elle ne permet pas d’envoyer ce rapport à différentes personnes ou par le biais d’un autre moyen de notification. Cela m’oblige à réécrire à chaque fois , les informations.

Afin d ‘optimiser ce scénario , je serais tenter d’utiliser une variable.

envoie rapport , en utilisant une variable journal

Si je souhaites expédier cette variable “journal” , par le biais d’un autre canal , cela est beaucoup plus simple maintenant .

Dans mon cas , à la fin de la création du rapport journalier , j’envoie ma variable dans le centre de notification ; qui se chargera de router en fonction de mes options ( mais ceci est une autre histoire ).

A vous de jouer , pour mettre autant de ligne , que vous voulez …. Pas évident de rajouter des lignes ?

… Alors que dans le champs “message” de telegram c’est possible.

L’inconvenient en utilisant la variable , c’est que l’on ne peut pas formater son texte comme on le souhaite ? Il faudrait passer par un fichier texte à coté , faire un copier / coller dans la variable , mais cela devient vite fastidieux à modifier ou à entretenir.

Utiliser une variable Message ?

Pour palier , à cet inconvenient du à une limitation de Jeedom , je crée un virtuel Message.

virtuel message

Mon virtuel ainsi créé , je peux tester tout de suite l’efficacité.

Mon scenario , avec virtuel message à la place de la variable

ce qui donne maintenant si j’ajoute les lignes suivantes :

“Bonjour Philippe
Aujourd’hui nous fêtons les : #[Admin / Info][INFO][Saint du jour]#

La température extérieur est de : #[Maison][Extérieur][Température]#°C

Temps prevu aujourd’hui : *** #[Maison][Meteo][Condition]# ***
Une température prévu entre : #[Maison][Meteo][Température Min]#°C et #[Maison][Meteo][Température Max]#°C
Un taux d’humidité de : #[Maison][Meteo][Humidité]# %

Prévisions à venir :
Nous sommes en vigilance #[Maison][Vigilance Vosges][Vigilance]#
Risque : #[Maison][Vigilance Vosges][Risque]#

Lever du Soleil : formatTime(#[Maison][Position Soleil][Lever du Soleil]#)
Le soleil se couchera a formatTime(#[Maison][Position Soleil][Coucher du Soleil]#)
Le soleil sera a son Zenith à : #[Admin / Info][INFO][Zenith]#

rapport avec plus de lignes / plus d’infos

Par rapport à l’usage d’une variable , le champ message permet de voir tout de suite la structure du message , les sauts de lignes et autres .

Telegram , permet de formater les messages en utilisant la syntaxe Markdown . Par exemple pour mettre en gras une info il , faut l’entourer de deux ** ou encore en italique avec deux __

A chaque execution du scenario , vous obtiendrez un message de Telegram , vous résumant l’activité journalière.

Un rapport dynamique

Dans l’exemple du rapport donné au tout début , le rapport est journalier , avec une date et une heure d’envoie . Personnalisé , avec mon prénom ( pour info , chaque matin , j’envoie deux types de rapport un simplifié pour ma femme et un autre plus avancé , pour moi ) . Ainsi que les infos de programmation des ouvertures des volets , des modes en activité ( Present , absent , vacances , etc …. ) , de l’alarme etc …..

Comment alimenter ces informations ? Tout simplement à l’aide de variable , qui vont me servir à stocker les différentes données . Ainsi que l’utilisation de tag pour l’appel des scenarios.

Pour bien comprendre , voici le fonctionnement de mes différents scenarios.

  • Le scenario “Programmateur” , est le seul qui utilise la programmation et il est lancé tous les jours à 5H00 du matin . Ce scenario , tel un chef d orchestre , a pour rôle de lancer un après l’autre mes différents scenarios ( voici une liste non exhaustive )
    • Scenario test et verification Equipement , en retour stocke dans la variable verif_Equipement les modules à verifier.
    • Scenario de programmation des ouvertures et fermetures de volets , Je stocke les heures de fermetures dans 4 variables temps , correspondant aux 4 Zones de la maison . L’heure d’ouverture sera commune , et differente en fonction des jours d’écoles , fériés , Week End ou Vacances . Stocké dans une variable d’ouverture.
    • Scenario Alarme et Simulateur lançé si en mode absent ou vacances , récupère les états dans deux variables aussi.
    • Puis je stocke une variable d’envoie du rapport en fonction du type de jour ( travail ou repos ).
  • Puis le programmateur lance l’execution du rapport journalier à l’heure créé précédemment. En utilisant le tag Nom=Monsieur , et un autre à avec le tag nom=Madame. Soit l’envoie de deux rapports personnalisé. Je demande l’execution synchrone ( afin qu’ils soient exécuté l’un après l’autre ). Pour récupérer l’info Nom , j écris dans mon champ message : bonjour #Nom#
demande de construction des rapports dans scenario programmateur
  • Puis à la fin de l’execution du rapport , j’envoie le tout dans le centre de notification , qui en fonction des tags , l’enverra de différentes façon.
    • Titre=”rapport Maison du #sjour# #jour# #smois# #annee# à #heure#H#minute# ” , pour donner un titre à ma notification
    • Notif=#[Automatisme][Message Rapport][message]# , le contenu de mon rapport qui est stocké dans le virtuel Message.
    • Level=Y , qui est un aiguilleur , en fonction du code sera envoyé à madame ou à moi par telegram , par sms , par email , par le Notifheure , Audio ou encore Lumineux.
Envoie du rapport via le scenario Centre Notification, dans scenario constructeur rapport

Pour montrer un exemple de récupération des infos variables , fournis par d’autres scénarios , je vais prendre le cas du scénario de programmation des fermetures des volets . A la fin de celui-ci , je me retrouve avec 4 variables temps de fermeture , correspondant aux quatre Zones définis pour ma maison.

Fermeture :
Zone 1 ( salon ) : formatTime(variable(FermVolet1))
Zone 2 ( Bureau ) : formatTime(variable(FermVolet2))
Zone 3 ( Enfants ) : formatTime(variable(FermVolet3))
Zone 4 (Parents) : formatTime(variable(FermVolet4))

Afin d’afficher une information , qui soit lisible comme un horaire , je rajoute la fonction formatTime(600) , qui transformera la donnée 600 en 06H00 plus parlant. Pour appeler l’affichage d’une variable il suffit d’ajouter l’info : variable(Nom_variable)  , ici on affichera la variable Nom_variable.

En conclusion…

… A vous de jouer , il est possible de réaliser des rapports très détaillés , qui correspondent vraiment à l’info que vous désirez. Dans votre scénario de programmation , vous pouvez ajouter autant d’execution de scénario que possible … Votre seul limite est votre imagination.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Commentaire sur “Mettre en place un Rapport journalier”

%d blogueurs aiment cette page :