Recuperer EDF tempo sur Zibase

Tout sur la Zibase, son utilisation, les modules qui sont compatibles, les problèmes rencontrés et les solutions testées.

Recuperer EDF tempo sur Zibase

Messagede fabrexa » 29 Juin 2012, 21:11

Bonjour,

Avez vous une solution pour recuperer les infos tempo de couleur du jour et du lendemain sur le site EDF avec une zibase.

Merci d'avance

Fabrice
fabrexa
P'tit Guru de domotique
 
Messages: 51
Inscription: 21 Mar 2009, 08:23

Re: Recuperer EDF tempo sur Zibase

Messagede Insedo » 29 Juin 2012, 23:21

Bonjour,

EDF ne fournit pas de flux RSS avec les infos. La zibase ne sait parser que du xml... donc petit soucis de lange entre les deux...
Il faut donc passer par un script externe qui lit la page d'EDF, et qui en fait quelque chose d'utile pour la zibase.
Il vous faut donc un serveur web quelque part, avec php (+php_curl).

Creez sur ce serveur un script php (tempoEDF.php) qui contient ce code:
Code: Tout sélectionner
<?php
$url="http://particuliers.edf.com/abonnement-et-contrat/les-prix/les-prix-de-l-electricite/option-tempo/la-couleur-du-jour-2585.html";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$page = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
           
if(!$page)
{      // pas de rĂ©ponse d'edf
   die("Pas de rĂ©ponse");
}
           
if($httpCode === 200)  // page reçue
{
        // dans le source html d'EDF, on cherche <li class="blue">X</li> ou
        // <li class="white">X</li> ou <li class="red">X</li>
        // la croix indique la bonne rĂ©ponse, on se limite donc Ă  cherche celle-ci
   $recherche=":li class=\"(.*)\">X<:i"; 
   preg_match_all($recherche,$page, $result);
   echo "<xml>\r\n<a>".$result[1][0]."</a>\r\n<d>".$result[1][1]."</d>\r\n</xml>";
}
else
{
   die("erreur: ".$httpCode);
}

?>


coté zibase, créer un scénario.
Action 1: placer une chaine dans une variable. "a" pour aujourd'hui, "d" pour "demain". Prenons pour l'exemple v0
Action 2: commander par http / url: celle de votre script php / lire une variable en retour: v0 (dans notre exemple)

En fin de ce scenario, vous avez dans v0:
98 (code ascii de "b") pour un jour bleu
119 (code ascii de "w") pour un jour blanc (white en anglais)
114 (code ascii de "r") pour un jour rouge


Attention, j'ai pondu ça en 5 minutes, faudra bien vérifier lors des 1ères journées blanches et rouge que ça marche bien. Je décline toute responsabilité s'il y a un bug ou si EDF change d'url sans prévenir. D'ailleurs, si quelqu'un voit un bug dans mon code, faut le dire...

Si vous n'avez pas de serveur web, j'ai mis le script en ligne: http://www.insedo.fr/domo/tempoEDF.php
J'autorise les utilisateurs de ce forum à utiliser cette url, mais attention, si ça charge trop mon serveur ou s'il y a des abus, je peux couper sans préavis. EDF actualise l'info 1 fois par jour, donc limitez votre scénario à 1 lancement par jour svp....

Edit: 00h58, la page d'EDF bug, la couleur de dimanche ne s'affiche pas, mais selon les refresh, EDF envoi encore les données d'hier (vendredi/samedi), du coup mon script renvoi soit 2 jours (vendredi/samedi) soit seulement samedi. Il faudra surement améliorer le script PHP.
Avatar de l’utilisateur
Insedo
Dieu de domotique
 
Messages: 332
Inscription: 03 Avr 2011, 13:55


Retourner vers Box - Zibase de Ziblue (ex Zodianet)

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

Copyright © 2011 - Touteladomotique.com - Tous droits rĂ©servĂ©s
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique