20 jours que j'ai ma box Eedomus et il me tardait d'explorer les scripts.
Connaissant très mal le PHP et aussi la Box en elle même j'ai un peu galéré au début mais j'ai réussi à me pondre un périphérique virtuel qui me donne les paramètres prévisionnel de la météo du jour .
il suffit juste de s'incrire sur le site https://www.apixu.com pour obtenir la clé qui vous permettra de faire 5000 consultations par mois (environ 7 par heure).
il n'y a ensuite qu'à créer votre périphérique
mettre dans l'URL de la requête : http://localhost/script/?exec=meteodujour.php&key=[VAR1]
mettre dans le path la donnée souhaitée :
//ville --> Ville
//dateupdate --> Date de la mesure
//tmin --> Temperature mini
//tmax --> Temperature maxi
//tmoy --> Temperature moyenne
//condition --> Condition meteo
//ventmax --> Vitesse max du vent
//hygmoy --> Humidite moyenne
//vismoy --> Visibilite moyenne
ne pas oublier de mettre le script meteodujour.php
- Code : Tout sélectionner
<?php
/*************************************************************************************
**
** Script Meteo du Jour pour eedomus
**
** Script qui permet de recuperer au format XML les parametres des previsions
** de la meteo du jour de l'endroit ou se trouve votre box Eedomus
**
** - Ville (//ville), texte
** - Date de la mesure (//dateupdate), texte
** - Temperature mini (//tmin), integer °c
** - Temperature maxi (//tmax), integer °c
** - Temperature moyenne (//tmoy), integer °c
** - Condition meteo (//condition), texte
** - Vitesse max du vent (//ventmax), integer Km/H
** - Humidite moyenne (//hygmoy), integer %
** - Visibilite moyenne (//vismoy). integer Km
**
**
*********
**
** L'URL est de la forme :
** http://localhost/script/?exec=meteodujour.php&key=[VAR1]
**
** La meteo du jour est recherchee sur le site https://www.apixu.com
** L'inscription sur le site (gratuite) est necessaire pour obtenir sa cle (Key).
** La clé nous autorise 5000 demande par mois (environ 7 par heure)
** Je conseille donc une scrutation par heure
** La meteo sera faite pour l'endroit ou se trouve la box Eedomus (detection
** automatique à partir de l'adresse IP Publique)
*
**
** [VAR1] : Doit contenir la clé
**
** XPath : doit contenir la donnée souhaitée (ex : //ville pour avoir la ville)
**
**
*********
**
** Evolution des versions :
**
** 2017-10-03 (Merguez07 & Mashuble) : V1.0 - Version initiale
**
**************************************************************************************/
// Recherche de l'adresse IP publique
$url="http://ip-api.com/json";
$jsonResponse = httpQuery($url);
$content = sdk_json_decode($jsonResponse,true);
$monippublique=$content[query];
// On récupère la clé
$key = getArg('key');
// On recupere la meteo
$url_meteo = "http://api.apixu.com/v1/forecast.json?key=" . $key . "&q=" . $monippublique . "%20&days=1";
$jsonResponse = httpQuery($url_meteo);
$content = sdk_json_decode($jsonResponse,true);
// conversion vent mph-->km/h
$vent=round($content[forecast][forecastday][0][day][maxwind_mph]*1.60934,2);
// Generation du XML
sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<meteodujour>';
$xml .= '<status>ok</status>';
$xml .= '<ville>' . $content[location][name] . '</ville>';
$xml .= '<dateupdate>' . $content[current][last_updated] . '</dateupdate>';
$xml .= '<tmin>' . $content[forecast][forecastday][0][day][mintemp_c] . '</tmin>';
$xml .= '<tmax>' . $content[forecast][forecastday][0][day][maxtemp_c] . '</tmax>';
$xml .= '<tmoy>' . $content[forecast][forecastday][0][day][avgtemp_c] . '</tmoy>';
$xml .= '<condition>' . $content[forecast][forecastday][0][day][condition][text] . '</condition>';
$xml .= '<ventmax>' . $vent . '</ventmax>';
$xml .= '<hygmoy>' . $content[forecast][forecastday][0][day][avghumidity] . '</hygmoy>';
$xml .= '<vismoy>' . $content[forecast][forecastday][0][day][avgvis_km] . '</vismoy>';
$xml .= '</meteodujour>';
echo $xml;
?>
Cordialement
La merguez Ardéchoise