Actualités | Audio/Vidéo | Evènements | DIY | Domotique | Informatique | Maison | Mobile | Sécurité

Récupérer les infos Tempo avec la Zibase Multi et Google

Envoyer Imprimer PDF
Note des utilisateurs: / 4
MauvaisTrès bien 

Toujours dans ma quête de recherche des informations Tempo d'ERDF, je vous propose ce dernier article. Contrairement aux précédents ("Comment récupérer l'information Tempo ERDF sur la Zibase" et "Récupérer l'info Tempo en Javascript sur Zibase Multi") ou il fallait un serveur web et/ou une zibase multi pour pouvoir récupérer ces infos (la couleur du jour), nous allons voir ensemble qu' il ne faut rien (enfin presque rien), juste un compte Google !

 


Cette fois-ci, le fonctionnement est un peu différent. ERDF nous propose de nous avertir par mail de la couleur du jour et du lendemain (j'ai choisi de recevoir les mails quelque soit la couleur du jour). Un script Google va voir dans votre boite mail et en fonction de la couleur reçue, il met à jour vos variables, il affecte un label "hier" au mail de façon à ce que l'info ne soit lue qu'une fois et éviter de faire tourner vos scénarios en boucle .... ce qui donne :

- Mail envoyé ERDF

- Script Google > pas de label : je lis la couleur et en fonction, je mets les variables à jour

- J'affecte le label "Hier" (de demain puisque je suis labellisé c'est que l'info a deja été lue/envoyée)

 

J'ai donc ma couleur pour demain ... bien mais il faut celle d'aujourd'hui (donc le mail reçu hier !!! vous me suivez ?) et supprimer ce mail pour ne pas avoir des infos doubles ... Pour cela je vais me servir du mail reçu hier et donc labellisé afin de mettre à jour ma variable (ou lancer un scénario). Voyons ensemble les différentes étapes et scripts :

- Inscription au mail ERDF : Rien de bien compliqué, il suffit de remplir les champs ...



- Création du répertoire "hier" et mise a jour de la variable : Il me faut la couleur du jour et celle du lendemain pour mettre a jour mes variables, donc ma couleur d'aujourd'hui sera dans le mail reçu hier ... je crée un répertoire "hier" dans ma boite mail comme ceci ( Rappelez vous il me faut la couleur du jour, pour cela j'affecte à la Variable V18 la valeur 0 si je suis en Bleu, 1 si je suis en Bleu et 2 si je suis en Rouge ) :

function Hier() {
//recherche dans les mails ­ le mail avec un label hier
var threads = GmailApp.search('in:hier from:(ejp­tempo@edf.fr) subject:Prévisions Tempo {label:hier}');
for(i in threads){
//recherche dans le sujet la couleur
var objet = threads[i].getFirstMessageSubject();
var splitCouleur = objet.split('jour \"')[1];
Logger.log(splitCouleur);
// si le couleur est bleu
if (splitCouleur =="BLEU\""){
var response4 = UrlFetchApp.fetch ("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=0&param3=1&param4=18");
Logger.log(response4.getContentText());
}
// si la couleur est blanc
else if(splitCouleur =="BLANC\"")
{
var response4 = UrlFetchApp.fetch ("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=1&param3=1&param4=18");
Logger.log(response4.getContentText());
}
// si la couleur est rouge
else if(splitCouleur =="ROUGE\"")
{
var response4 = UrlFetchApp.fetch ("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=2&param3=1&param4=18");
Logger.log(response4.getContentText());
}
}}


De cette façon, j'ai en fonction de la couleur, ma variable V18 qui sera mise à jour sur ma Zibase.

J'enregistre et je planifie ce script Google comme ceci :

Afin de ne pas avoir tous les mails labellisés "hier" dans mon répertoire, j'ai un petit script qui supprime le mail reçu. Tous les 1 jour ... j'ai donc dans mon répertoire 1 seul mail à chaque fois ceci m'évite d'avoir un problème lorsque 2 mails n'ayant pas la même couleur se retrouvent dans le dossier, avec ce script:

 

function efface_mail_hier() {
var label = GmailApp.getUserLabelByName("hier");
if(label == null){
GmailApp.createLabel('hier');
}
else{
// Entrez le nombre de jour que vous voulez 1 = 1 jour
var delayDays = 1
var maxDate = new Date();
maxDate.setDate(maxDate.getDate()­delayDays);
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
if (threads[i].getLastMessageDate()<maxDate){
threads[i].moveToTrash();
}
}
}
}

A ce niveau, j'ai le script qui permet de récuperer la couleur du jour d'aujourd'hui et le script qui me permet d'effacer un mail (de le mettre dans la corbeille).
Il me reste à récupérer la couleur du lendemain et pour cela je fais appel à ce dernier script :

function Recherche_couleur() {
//Recherche mails non lus d'edf sans label hier
var threads = GmailApp.search('in:inbox from:(ejp­tempo@edf.fr) subject:Prévisions Tempo ­{label:"hier"}');
for(i in threads){
//recherche de la couleur
var objet = threads[i].getFirstMessageSubject();
var splitCouleur = objet.split('jour \"')[1];
//si la couleur est
switch(splitCouleur)
{ case "BLEU\"" :
var response1 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=1&param3=1&param4=19");
Logger.log(response1.getContentText());
var response2 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=0&param3=1&param4=20");
Logger.log(response2.getContentText());
var response3 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=0&param3=1&param4=21");
Logger.log(response3.getContentText());
break;
case "BLANC\"" :
var response1 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=0&param3=1&param4=19");
Logger.log(response1.getContentText());
var response2 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=1&param3=1&param4=20");
Logger.log(response2.getContentText());
var response3 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=0&param3=1&param4=21");
Logger.log(response3.getContentText());
break;
case "ROUGE\"" :
var response1 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=0&param3=1&param4=19");
Logger.log(response1.getContentText());
var response2 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=0&param3=1&param4=20");
Logger.log(response2.getContentText());
var response3 = UrlFetchApp.fetch("http://zibase.net/m/zapi_remote_zibase_set.php?
device=VOTRE_DEVICE&token=VOTRE_TOKEN&action=rowzibasecommand&param1=5&param2=1&param3=1&param4=21");
Logger.log(response3.getContentText());
break;
}
//Application du label hier
var label = GmailApp.getUserLabelByName('hier');
label.addToThreads(threads);
}
}


Me voila donc avec TOUTES mes variables à jour : V18, V19, V20 et V21 ... je peux donc en fonction de ces variables déclencher mes scénarios, mes appareils électriques et donc faire des économies !

Bien entendu ces scripts ne nécessitent pas d'avoir un ordinateur allumé, ce qui est le gros "PLUS" de cet article ... Mais la solution dépend de la connexion Internet puisqu'elle utilise une service Google (En cloud).

 

Vous n'avez pas compris un point ? Vous vous posez une question ? Vous pouvez nous contacter via le bouton Assistance sur votre gauche. N'hésitez pas à demander un rendez-vous téléphonique avec Domotics.

Vous avez aimé cet article ? Vous pouvez le partager sur vos réseaux sociaux pour soutenir son auteur et l'encourager à écrire de nouveaux articles ...

 

Cet article vous est proposé par QuiQuoi: QuiQuoi est électromécanicien de formation. Il réside dans le sud de la France. Il est développeur iOS (IPhone/IPad). Il rédige aussi des articles pour le site SOSiPhone.com. Il souhaite améliorer la domotique avec des applications pour tous.

Mise à jour le Lundi, 23 Février 2015 23:34  

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Recherche

Newsletter ?

Instagram

Publicité

Espaces publicitaires à louer
Contactez-nous

Connexion