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.

Commentaire sur “Mettre en place un Rapport journalier”

Les commentaires sont fermés.

%d blogueurs aiment cette page :