Récupérer l'info TEMPO en javascript sur Zibase Multi

Jeudi, 29 Janvier 2015 06:00 QuiQuoi
Imprimer
Note des utilisateurs: / 3
MauvaisTrès bien 

Comme dans l'article précédent, le but est de récupérer la couleur du jour ainsi que celle du lendemain de l'option TEMPO (EDF), ceci pour y déclencher certains scénarios et aussi faire des économies d'énergie.

 

Dans le dernier article, nous avons vu comment récupérer ces infos TEMPO. Le seul "hic" : Disposer d'un serveur web afin d'y héberger le script PHP. Nous allons voir ensemble qu'il est possible de se passer de ce script PHP à condition d'avoir une Zibase Multi ( pour rappel, la Zibase Multi est une box domotique sous forme d’application sur un terminal Android ).

Il est possible d’exécuter des scripts JavaScript en local ! Oui c'est à dire sans avoir besoin d'un serveur externe … à partir de là, il devrait être assez simple de récupérer les 2 infos dont j'ai besoin pour mes scénarios : la couleur du jour et celle de demain

 

Comment faire ?


La réponse est aussi simple que la mise en place du script. A une heure donnée, la Zibase Multi, va aller chercher l'info sur la page web d'EDF.

 

 

C'est trouvé ?

oui : je vais mettre à jour les variables et/ou lancer les scénarios …
non : je reviens plus tard …

 

Sur la Zibase Multi :

Pas grand chose à faire, installer le script JavaScript suivant …

network.httpCall("http://particuliers.edf.com/gestion-de-mon-contrat/options-tarifaires/option-tempo/la-couleur-du-jour-2585.html","","func1","GET","div.TempoDay:contains(Tempo  d'aujourd'hui)//span.period//ITEMS_BODY:RET","HTML", "");
function func1 (resp,val) {
resp = resp.toLowerCase(); // conversion minuscule
// android.toast("réponse="+resp+" LEN="+resp.length);
if (resp.indexOf("blanc")>-1)  // recherche de la chaine "blanc"
{
android.toast("action blanche"); // action associée à blanc
// autres actions...
zibase.launch("Blanc");
}
else
if (resp.indexOf("bleu")>-1)
{
android.toast("action bleu");
// autres actions...
zibase.launch("Bleu");
}
else
if (resp.indexOf("rouge")>-1)
{
android.toast("action rouge");
// autres actions...
zibase.launch("Rouge");

}
else
android.toast("couleur non reconnue="+resp);
}

 

Pour cela, il suffit de connecter votre tablette à votre ordinateur, d'y déposer le script (le chemin est : /storage/emulated/0/data/data/zibase/userscripts/) et de renseigner les champs comme sur cette photo.

 

Petite explication : le script va chercher dans la page web (source) si la couleur du jour est bleu, blanc ou rouge. Si l'une des couleurs est trouvée, il lance le scénario associé : zibase.launch("Bleu") par exemple, c'est donc ce script qui va mettre à jour les différentes variables dont j'ai besoin pour mes scénarios, libre à vous de l'utiliser pour autre chose …

 

Le scénario Bleu (lancé si la couleur de demain est bleu !) m'envoie une notification push et met à jour mes différentes variables donc dans ce cas là V18= 0 ( pour rappel : 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 ).

Rappelez-vous, j'ai besoin de la couleur du jour mais aussi celle de demain, je fais donc un second scénario en remplaçant "aujourd'hui" par "demain" … comme ceci :

network.httpCall("http://particuliers.edf.com/gestion-de-mon-contrat/options-tarifaires/option-tempo/la-couleur-du-jour-2585.html","","func1","GET","div.TempoDay:contains(Tempo de demain)//span.period//ITEMS_BODY:RET","HTML", "");


Qui, bien entendu, en fonction de la couleur trouvée déclenchera les scénarios associés (et donc les variables …) si la couleur est Rouge, le scénario "Rouge" est lancé …

 

Avec la mise à jour de mes variables :
V19 est égal à 1 si demain est un jour Bleu
V20 est égal à 1 si demain est un jour Blanc
V21 est égal à 1 si demain est un jour Rouge
donc dans ce cas là, V21=1 les autres variables V19 et V20 seront OBLIGATOIREMENT égal à 0.

 

De ce fait, il vaut mieux déclencher mon chauffe eau pendant les heures creuses bleu plutôt qu'en heure pleine rouge donc :

 

Avec mes 2 derniers articles, vous pouvez maintenant récupérer les informations Tempo pour votre Zibase, soit via un script PHP (nécessite un serveur externe), soit via un script JavaScript en local (nécessite une Zibase Multi). Dans le prochain article, nous verrons comment récupérer ces infos, sans avoir besoin d'un serveur externe et utilisable sur toutes les Zibases … avec un script Google …

Si vous voulez en savoir plus sur le fonctionnement de la Multi et le Java, je vous laisse lire ces informations ici ( http://www.zodianet.com/toolbox-zibase/zibase-multi-javascript.html )

On vous explique pourquoi avoir choisi le java comme langage, comment faire … très instructif…

Merci à Jean-Pierre ...

 

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 Mercredi, 28 Janvier 2015 23:45