-
Compteur de contenus
141 -
Inscription
-
Dernière visite
À propos de fafou
- Date de naissance 26/08/1969
Visiteurs récents du profil
Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.
fafou's Achievements

Altostratus (4/24)
-
fafou a commencé à suivre Fichier XML WeatherLinkIP et MBell 1.6 - Votre propre Site Mobile pour Station Davis - WeatherLink
-
MBell 1.6 - Votre propre Site Mobile pour Station Davis - WeatherLink
fafou a répondu à un sujet de Damien49 dans Instrumentation
Superbe travail Damien49. C'était donc cela les scripts dont tu me parlais dans l'autre topic. J'attends cela avec impatience pour les tester. Cordialement- 189 réponses
-
Bonjour Damien49 J'ai une sonde UV et je récupère les données. Je suis parti de ton extrait dans la première page de ton post que je l'ai modifié (voir ci-dessous) myDID et mykey correpondent au identifiant de ton compte weatherlink. Je te laisse regarder cela. Sinon j'adore ta fonction DegToCompass. J'ai été épaté de trouver la direction avec une seule ligne de calcul . Il a fallu que je réfléchisse un peu pour la comprendre mais je trouve cela d'une efficacité redoutable. Sinon pour les index UV. Tu peux voir le résultat sur la page d'accueil de mon site ici: http://www.meteoengins.fr/ fafou $file = file_get_contents('http://api.weatherlink.com/v1/NoaaExt.xml?DID='.$myDID.'&key='.$mykey); $xml=simplexml_load_string($file); foreach($xml->observation_time_rfc822 as $time_tmp){} //RFC822 format // Humidité foreach($xml->relative_humidity as $current_humidity){} foreach($xml->davis_current_observation->relative_humidity_day_high as $hilow_humidity_day_high){} foreach($xml->davis_current_observation->relative_humidity_day_high_time as $hilow_humidity_day_high_time_tmp){} foreach($xml->davis_current_observation->relative_humidity_day_low as $hilow_humidity_day_low){} foreach($xml->davis_current_observation->relative_humidity_day_low_time as $hilow_humidity_day_low_time_tmp){} foreach($xml->davis_current_observation->relative_humidity_month_high as $hilow_humidity_month_high){} // Rest of humidity data below are not returned in the XML file : make a request to Davis // foreach($xml->davis_current_observation->relative_humidity_month_low as $hilow_humidity_month_low){} // foreach($xml->davis_current_observation->relative_humidity_year_high as $hilow_humidity_year_high){} // foreach($xml->davis_current_observation->relative_humidity_year_low as $hilow_humidity_year_low){} // Pression atmosphérique foreach($xml->pressure_mb as $current_pressure){} foreach($xml->davis_current_observation->pressure_tendency_string as $current_pressure_trend_tmp){} foreach($xml->davis_current_observation->pressure_day_high_in as $hilow_pressure_day_high_in_tmp){} foreach($xml->davis_current_observation->pressure_day_high_time as $hilow_pressure_day_high_time_tmp){} foreach($xml->davis_current_observation->pressure_day_low_in as $hilow_pressure_day_low_in_tmp){} foreach($xml->davis_current_observation->pressure_day_low_time as $hilow_pressure_day_low_time_tmp){} foreach($xml->davis_current_observation->pressure_month_high_in as $hilow_pressure_month_high_in_tmp){} foreach($xml->davis_current_observation->pressure_month_low_in as $hilow_pressure_month_low_in_tmp){} foreach($xml->davis_current_observation->pressure_year_high_in as $hilow_pressure_year_high_in_tmp){} foreach($xml->davis_current_observation->pressure_year_low_in as $hilow_pressure_year_low_in_tmp){} // Temperature foreach($xml->temp_c as $current_temperature){} foreach($xml->davis_current_observation->temp_day_high_f as $hilow_temperature_day_high_f_tmp){} foreach($xml->davis_current_observation->temp_day_high_time as $hilow_temperature_day_high_time_tmp){} foreach($xml->davis_current_observation->temp_day_low_f as $hilow_temperature_day_low_f_tmp){} foreach($xml->davis_current_observation->temp_day_low_time as $hilow_temperature_day_low_time_tmp){} foreach($xml->davis_current_observation->temp_month_high_f as $hilow_temperature_month_high_f_tmp){} foreach($xml->davis_current_observation->temp_month_low_f as $hilow_temperature_month_low_f_tmp){} foreach($xml->davis_current_observation->temp_year_high_f as $hilow_temperature_year_high_f_tmp){} foreach($xml->davis_current_observation->temp_year_low_f as $hilow_temperature_year_low_f_tmp){} // Point de rosée foreach($xml->dewpoint_c as $current_dewpoint){} foreach($xml->davis_current_observation->dewpoint_day_high_f as $hilow_dewpoint_day_high_f_tmp){} foreach($xml->davis_current_observation->dewpoint_day_high_time as $hilow_dewpoint_day_high_time_tmp){} foreach($xml->davis_current_observation->dewpoint_day_low_f as $hilow_dewpoint_day_low_f_tmp){} foreach($xml->davis_current_observation->dewpoint_day_low_time as $hilow_dewpoint_day_low_time_tmp){} foreach($xml->davis_current_observation->dewpoint_month_high_f as $hilow_dewpoint_month_high_f_tmp){} foreach($xml->davis_current_observation->dewpoint_month_low_f as $hilow_dewpoint_month_low_f_tmp){} foreach($xml->davis_current_observation->dewpoint_year_high_f as $hilow_dewpoint_year_high_f_tmp){} foreach($xml->davis_current_observation->dewpoint_year_low_f as $hilow_dewpoint_year_low_f_tmp){} // Indice de chaleur : Heat index foreach($xml->heat_index_c as $current_heat_index){} foreach($xml->davis_current_observation->heat_index_day_high_f as $hilow_heat_index_day_high_f_tmp){} foreach($xml->davis_current_observation->heat_index_day_high_time as $hilow_heat_index_day_high_time_tmp){} foreach($xml->davis_current_observation->heat_index_month_high_f as $hilow_heat_index_month_high_f_tmp){} foreach($xml->davis_current_observation->heat_index_year_high_f as $hilow_heat_index_year_high_f_tmp){} // Indice de refroississement Eolien (IRE) - Windchill foreach($xml->windchill_c as $current_windchill){} foreach($xml->davis_current_observation->windchill_day_low_f as $hilow_windchill_day_low_f_tmp){} foreach($xml->davis_current_observation->windchill_day_low_time as $hilow_windchill_day_low_time_tmp){} foreach($xml->davis_current_observation->windchill_month_low_f as $hilow_windchill_month_low_f_tmp){} foreach($xml->davis_current_observation->windchill_year_low_f as $hilow_windchill_year_low_f_tmp){} // rain fall foreach($xml->davis_current_observation->rain_day_in as $current_rain_tmp){} //en inches foreach($xml->davis_current_observation->rain_month_in as $current_rain_m_tmp){} //en inches foreach($xml->davis_current_observation->rain_year_in as $current_rain_y_tmp){} //en inches foreach($xml->davis_current_observation->rain_storm_in as $current_rain_storm_tmp){} //en inches // rain fall rate foreach($xml->davis_current_observation->rain_rate_in_per_hr as $current_rain_rate_tmp){} //actuel; en inches foreach($xml->davis_current_observation->rain_rate_hour_high_in_per_hr as $hilow_rain_rate_hour_high_tmp){} // Plus fort rainrate la dernière heure : en inches foreach($xml->davis_current_observation->rain_rate_day_high_in_per_hr as $hilow_rain_rate_day_high_tmp){} // Plus fort rainrate ce jour : en inches foreach($xml->davis_current_observation->rain_rate_month_high_in_per_hr as $hilow_rain_rate_month_high_tmp){} // Plus fort rainrate ce mois : en inches foreach($xml->davis_current_observation->rain_rate_year_high_in_per_hr as $hilow_rain_rate_year_high_tmp){} // Plus fort rainrate cette année : en inches // Solar foreach($xml->davis_current_observation->solar_radiation as $current_solar_radiation){} foreach($xml->davis_current_observation->solar_radiation_day_high as $hilow_solar_radiation_day_high){} foreach($xml->davis_current_observation->solar_radiation_day_high_time as $hilow_solar_radiation_day_high_time_tmp){} foreach($xml->davis_current_observation->solar_radiation_month_high as $hilow_solar_radiation_month_high){} foreach($xml->davis_current_observation->solar_radiation_year_high as $hilow_solar_radiation_year_high){} // UV foreach($xml->davis_current_observation->uv_index as $current_uv_index){} foreach($xml->davis_current_observation->uv_index_day_high as $hilow_uv_index_day_high){} foreach($xml->davis_current_observation->uv_index_day_high_time as $hilow_uv_index_day_high_time_tmp){} foreach($xml->davis_current_observation->uv_index_month_high as $hilow_uv_index_month_high){} foreach($xml->davis_current_observation->uv_index_year_high as $hilow_uv_index_year_high){} // Wind foreach($xml->wind_mph as $current_wind_tmp){} //en mph foreach($xml->wind_degrees as $current_wind_dir_degrees){} foreach($xml->wind_dir as $current_wind_dir){} //foreach($xml->davis_current_observation->wind_two_min_avg_mph as $current_wind_two_min_avg_mph_tmp){} foreach($xml->davis_current_observation->wind_ten_min_avg_mph as $current_wind_ten_min_avg_mph_tmp){} foreach($xml->davis_current_observation->wind_ten_min_gust_mph as $current_wind_ten_min_gust_mph_tmp){} foreach($xml->davis_current_observation->wind_day_high_mph as $hilow_wind_day_high_mph_tmp){} foreach($xml->davis_current_observation->wind_day_high_time as $hilow_wind_day_high_time_tmp){} foreach($xml->davis_current_observation->wind_month_high_mph as $hilow_wind_month_high_mph_tmp){} foreach($xml->davis_current_observation->wind_year_high_mph as $hilow_wind_year_high_mph_tmp){} $current_wind = round(floatval($current_wind_tmp) * 1.6093,1); $current_wind_dir = degToCompass($current_wind_dir_degrees); //$current_wind_two_min_avg = round(floatval($current_wind_two_min_avg_mph_tmp) * 1.6093,1); $current_wind_ten_min_avg = round(floatval($current_wind_ten_min_avg_mph_tmp) * 1.6093,1); $current_wind_ten_min_gust = round(floatval($current_wind_ten_min_gust_mph_tmp) * 1.6093,1); $hilow_wind_day_high = round(floatval($hilow_wind_day_high_mph_tmp) * 1.6093,1); $hilow_wind_month_high = round(floatval($hilow_wind_month_high_mph_tmp) * 1.6093,1); $hilow_wind_year_high = round(floatval($hilow_wind_year_high_mph_tmp) * 1.6093,1); $hilow_wind_day_high_time = date("H:i",strtotime($hilow_wind_day_high_time_tmp)); $current_rain_day = round(floatval($current_rain_tmp) * 25.4,1); $current_rain_month = round(floatval($current_rain_m_tmp) * 25.4,1); $current_rain_year = round(floatval($current_rain_y_tmp) * 25.4,1); $current_rain_storm = round(floatval($current_rain_storm_tmp) * 25.4,1); $current_rain_rate = round(floatval($current_rain_rate_tmp) * 25.4,1); $hilow_rain_rate_hour_high = round(floatval($hilow_rain_rate_hour_high_tmp) * 25.4,1); $hilow_rain_rate_day_high = round(floatval($hilow_rain_rate_day_high_tmp) * 25.4,1); $hilow_rain_rate_month_high = round(floatval($hilow_rain_rate_month_high_tmp) * 25.4,1); $hilow_rain_rate_year_high = round(floatval($hilow_rain_rate_year_high_tmp) * 25.4,1); $hilow_heat_index_day_high = round((5/9) * (floatval($hilow_heat_index_day_high_f_tmp) - 32),1); $hilow_heat_index_month_high = round((5/9) * (floatval($hilow_heat_index_month_high_f_tmp) - 32),1); $hilow_heat_index_year_high = round((5/9) * (floatval($hilow_heat_index_year_high_f_tmp) - 32),1); $hilow_heat_index_day_high_time = date("H:i",strtotime($hilow_heat_index_day_high_time_tmp)); $hilow_windchill_day_low = round((5/9) * (floatval($hilow_windchill_day_low_f_tmp) - 32),1); $hilow_windchill_month_low = round((5/9) * (floatval($hilow_windchill_month_low_f_tmp) - 32),1); $hilow_windchill_year_low = round((5/9) * (floatval($hilow_windchill_year_low_f_tmp) - 32),1); $hilow_windchill_day_low_time = date("H:i",strtotime($hilow_windchill_day_low_time_tmp)); $hilow_dewpoint_day_high = round((5/9) * (floatval($hilow_dewpoint_day_high_f_tmp) - 32),1); $hilow_dewpoint_day_low = round((5/9) * (floatval($hilow_dewpoint_day_low_f_tmp) - 32),1); $hilow_dewpoint_month_high = round((5/9) * (floatval($hilow_dewpoint_month_high_f_tmp) - 32),1); $hilow_dewpoint_month_low = round((5/9) * (floatval($hilow_dewpoint_month_low_f_tmp) - 32),1); $hilow_dewpoint_year_high = round((5/9) * (floatval($hilow_dewpoint_year_high_f_tmp) - 32),1); $hilow_dewpoint_year_low = round((5/9) * (floatval($hilow_dewpoint_year_low_f_tmp) - 32),1); $hilow_dewpoint_day_high_time = date("H:i",strtotime($hilow_dewpoint_day_high_time_tmp)); $hilow_dewpoint_day_low_time = date("H:i",strtotime($hilow_dewpoint_day_low_time_tmp)); $hilow_temperature_day_high = round((5/9) * (floatval($hilow_temperature_day_high_f_tmp) - 32),1); $hilow_temperature_day_low = round((5/9) * (floatval($hilow_temperature_day_low_f_tmp) - 32),1); $hilow_temperature_month_high = round((5/9) * (floatval($hilow_temperature_month_high_f_tmp) - 32),1); $hilow_temperature_month_low = round((5/9) * (floatval($hilow_temperature_month_low_f_tmp) - 32),1); $hilow_temperature_year_high = round((5/9) * (floatval($hilow_temperature_year_high_f_tmp) - 32),1); $hilow_temperature_year_low = round((5/9) * (floatval($hilow_temperature_year_low_f_tmp) - 32),1); $hilow_temperature_day_high_time = date("H:i",strtotime($hilow_temperature_day_high_time_tmp)); $hilow_temperature_day_low_time = date("H:i",strtotime($hilow_temperature_day_low_time_tmp)); $hilow_pressure_day_high = round(floatval($hilow_pressure_day_high_in_tmp) * 33.863887,1); $hilow_pressure_day_low = round(floatval($hilow_pressure_day_low_in_tmp) * 33.863887,1); $hilow_pressure_month_high = round(floatval($hilow_pressure_month_high_in_tmp) * 33.863887,1); $hilow_pressure_month_low = round(floatval($hilow_pressure_month_low_in_tmp) * 33.863887,1); $hilow_pressure_year_high = round(floatval($hilow_pressure_year_high_in_tmp) * 33.863887,1); $hilow_pressure_year_low = round(floatval($hilow_pressure_year_low_in_tmp) * 33.863887,1); $hilow_pressure_day_high_time = date("H:i",strtotime($hilow_pressure_day_high_time_tmp)); $hilow_pressure_day_low_time = date("H:i",strtotime($hilow_pressure_day_low_time_tmp)); $current_pressure_trend=PressTrendString($current_pressure_trend_tmp); $hilow_humidity_day_high_time = date("H:i",strtotime($hilow_humidity_day_high_time_tmp)); $hilow_humidity_day_low_time = date("H:i",strtotime($hilow_humidity_day_low_time_tmp)); // Les tests ci-dessous sont rajoutés car ces données ne sont pas toujours présentes dans le fichier xml $hilow_uv_index_day_high = (isset ($hilow_uv_index_day_high)== TRUE)?$hilow_uv_index_day_high:"---"; $hilow_solar_radiation_day_high = (isset ($hilow_solar_radiation_day_high)== TRUE)?$hilow_solar_radiation_day_high:"---"; if (isset($hilow_uv_index_day_high_time_tmp)) { $hilow_uv_index_day_high_time = date("H:i",strtotime($hilow_uv_index_day_high_time_tmp)); } else { $hilow_uv_index_day_high_time = "---"; } if (isset($hilow_solar_radiation_day_high_time_tmp)) { $hilow_solar_radiation_day_high_time = date("H:i",strtotime($hilow_solar_radiation_day_high_time_tmp)); } else { $hilow_solar_radiation_day_high_time = "---"; } // Rest of humidity data below are not returned in the XML file : make a request to Davis $hilow_humidity_month_low = (isset ($hilow_humidity_month_low)== TRUE)?$hilow_humidity_month_low:"---"; $hilow_humidity_year_high = (isset ($hilow_humidity_year_high)== TRUE)?$hilow_humidity_year_high:"---"; $hilow_humidity_year_low = (isset ($hilow_humidity_year_low)== TRUE)?$hilow_humidity_year_low:"---"; function degToCompass($dir) { $val=floor(($dir/22.5)+.5); $arr=array("Nord","Nord Nord Est","Nord Est","Est Nord Est","Est","Est Sud Est", "Sud Est", "Sud Sud Est","Sud","Sud Sud Ouest","Sud Ouest","Ouest Sud Ouest","Ouest","Ouest Nord Ouest","Nord Ouest","Nord Nord Ouest"); return $arr[($val % 16)]; } function PressTrendImg($press_trend) { $press_trend=str_replace("Steady","/Images/VP2/stable.png",$press_trend); $press_trend=str_replace("Falling Slowly","/Images/VP2/fleche_bas.png",$press_trend); $press_trend=str_replace("Rising Slowly","/Images/VP2/fleche_haut.png",$press_trend); $press_trend=str_replace("Falling Rapidly","/Images/VP2/fleche_bas1.png",$press_trend); $press_trend=str_replace("Rising Rapidly","/Images/VP2/fleche_haut1.png",$press_trend); return $press_trend; } function PressTrendString($press_trend) { $press_trend=str_replace("Steady","Stable",$press_trend); $press_trend=str_replace("Falling Slowly","Baisse Lentement",$press_trend); $press_trend=str_replace("Rising Slowly","Augmente Lentement",$press_trend); $press_trend=str_replace("Falling Rapidly","Baisse Rapidement",$press_trend); $press_trend=str_replace("Rising Rapidly","Augmente Rapidement",$press_trend); return $press_trend; } ini_set("date.timezone", "Europe/Paris"); date_default_timezone_set('Europe/Paris'); //Heure été/hiver $date_xml = strtotime($time_tmp); $date = date("d-m-Y à H:i", $date_xml); $time = date("H:i", $date_xml);
-
De mon côté je vois aussi de temps en temps 118 alors que mon max est à 117 paquets/s. En fait, je pense que c'est normal car 114 et 117 sont des arrondis à un entier. En fait c'est 117.1 et 114.3. Donc si le premier échantillon arrive immédiatement au début de la nouvelle période d'archivage, on peut en avoir effectivement un de plus. Prenons un exemple et imaginons que la période d'archivage soit de 13s (avec WindTX=1) cela donnerai 13/2.5625 = 5.07 donc 5 paquets/s Si le premier paquet arrive à 0.1s (juste après le début de la période d'archivage). le deuxième paquet arrive à 2.6625s le troisième paquet arrive à 5.2225s le quatrième paquet arrive à 7.7875s le cinquième paquet arrive à 10.35s le sixième paquet arrive à 12.9125s (juste avant les 13secondes.) Comme il doit être rare que le premier paquet arrive juste au début de la période d'archivage, cela explique la faible occurence de 115 ou 118 chez moi. Sympa toutes les photos de ton installation. Je vois aussi que tu as un grand potager, tu as de quoi t'occuper.
-
J'ai mis à jour ma feuille excel sur le calcul de l'ISS recept. Pour le fun, j'ai rajouté aussi une feule de calcul pour l'ISS recept. Prenez les trois valeurs suivantes sur une ligne de votre base de données (Wind Samp, Wind Tx et Arc int) et remplissez les cases jaunes C3,C4,C5, la feuille calcule alors le nombre d'échantillons de mesure de vent attendu pendant la période d'archivage pour la vantage Pro 2 et pour la vantage Pro. L'ISS recept qui vaut pour la vantage Pro 2 et la vantage Pro. Davis_ArchivedDataDescription.xlsx
-
Ok je comprends mieux ta requête maintenant. Merci à JackT pour son autre façon de récupérer cette information. En creusant un peu, je trouve quand même des problèmes de cohérence chez Davis entre les données gérées par le firmware de la console, le logiciel weatherlink et les divers moyens de récupérer les informations par weatherlink.com. Par exemple, le firmware de la console gère les données courantes suivantes (voir page 26 ici): Wind direction 10 min Avg Wind Speed 2 min Avg Wind Speed 10 min Wind Gust Speed Wind Direction for the 10 min Wind Guest Les données 1,2,3,4 sont visibles quand on se rend sur le site de weatherlink.com et qu'on regarde le summary de notre station. Par contre la donnée 5 n'y est pas. La commande http://www.weatherlink.com/xml.php?user=username&pass=password récupère les données 1 et 2 mais pas les 3,4,5. La commande http://api.weatherlink.com/v1/NoaaExt.xml?DID=mon_ID&key récupère les données 1, 2 et 4 mais pas les 3 et 5. Les tags HTML weatherlink permettent de récupérer les données 1 et 2 mais pas les 3,4,5. Avec le problème de cohérence que j'ai mentionné également ici sur le calcul de pourcentage des données reçues, J'ai le sentiment qu'il y a un manque de moyen chez Davis pour avoir un soft cohérent dans son ensemble. C'est dommage vu le positionnement de Davis.
-
Si tu as une Vantage Pro2 , la période à laquelle tes données de vent sont envoyées à ta station dépend de l'ID de ton transmetteur. Période d'envoie = (41+ID-1) / 16 secondes, ID étant l'ID de ton transmetteur de données de l'anémomètre (généralement 1 ou 2) Le wind_mph est la dernière vitesse de vent que la station avait mesurée avant d'être envoyé à weatherlink.com le wind_ten_min_avg_mph est la moyenne des vitesses de vent mesurées pendant les dix dernières minutes avant d'être envoyé à weatherlink.com Quand tu dis que tu voudrais afficher plutôt le vent en rafale sur 10mn, est ce que tu veux la plus forte valeur de vent pendant les 10 dernières minutes ou bien est ce autre chose ?
-
En lisant plus en détail la fin de l'application notes 31 qu'a posté Neness, on trouvera les valeurs d'échantillons attendues sur la Vantage Pro 2 dans le dernier tableau de la dernière page. Ils donnent les valeurs par ID et par période d'archivage. Ces valeurs sont obtenues avec la formule que j'ai mis dans ma feuille excel. Le détail très intéressant dans cette doc est celui-ci (partie en gras) à l'avant dernière page: Cela explique pourquoi je voyais un décalage entre les pourcentages obtenues avec ma formule et les pourcentages affichés dans weatherlink. Je confirme cette surestimation. Davis a changé le firmware des transmetteurs qui n'envoit plus les données à la même fréquence qu'auparavant mais ils n'ont à priori pas mis à jour le logiciel weatherlink qui fait toujours le calcul de pourcentage en se basant sur le nombre d'échantillons attendu avec une Vantage Pro et non avec la vantage Pro2 . C'est pour cela que je passe à 100% à 114 échantillons au lieu de 117 car 114 correspond au max de la vantage Pro dans ma config. Pour toi Mistigri, il passera à 100% à 111 échantillons reçus. Très interressant tout cela, je continue à mettre ma feuille excel à jour avec ces informations.
-
Si je ne me trompe pas, ton wind TX = 2 indique que tu as le kit de déport de l'anémomètre.
-
Bonjour Mistigri Merci pour ton feedback. En fait il faut que je précise dans ma formule Nbre de packet = Arc Int x 60 / ((41 + ID – 1) / 16) que l'ID et celui qui correspond au transmetteur des infos de l'anémomètre. Dans ton cas l'ID est 2. Donc le nombre de paquet attendu toutes les 5min = 5x60/( (41+2-1)/16 ) = 114 paquets. Donc si tu es à 114, 113 voir 112, il t'indiquera 100% (histoire d'arrondi fait par la console je pense). Si tu regardes tes archives sur plusieurs mois, est ce que tu confirmes que tu n'en a jamais vu passé à 114 ? Bref même si ton max est à 113, c'est bon pour moi. Cordialement
-
Merci Neness. J'ajoute cette application notes dans mon répertoire de documents David. Elle est très intéressante également. Ayant une VP2 depuis 1 mois, j'ai cherché à comprendre à quoi correspondait toutes les données qui sont enregistrées par weatherlink dans la base de données de notre station. Comme tout n'est pas très explicite dans l'aide de weatherlink, j'ai creusé et me suis lancé dans la rédaction de la feuille excel ci-jointe. Elle décrit chaque donnée, explique si la donnée est mesurée ou calculée, précise l'unité de la donnée, ainsi que la formule utilisée si la donnée est calculée. Si certains ont le courage de relire cette feuille et me dire si j'ai fait des erreurs cela m'intéresse vivement à fin de la corriger et de la perfectionner. Cordialement Pièce jointe : Davis_ArchivedDataDescription.xlsx
-
A priori, de ce que j'ai regardé, cela ne concerne pas les valeurs mesurées par les capteurs mais uniquement les températures qui sont calculées. Merci pour ton code ci-dessus, je vais l'utiliser pour récupérer les min et max journaliers, mensuels et annuels pour ma station.
-
Quand je parle de weatherlink, c'est vraiment le logiciel PC. J'ai fait une capture d'écran pour m'expliquer. la capture montre une fenêtre du logiciel weatherlink avec la windows "summary" puis le fichier xml récupérer sur weatherlink.com avec la commande que tu as donnée. Sur la capture on trouve : Weatherlink summary XML capture Heat Index 9.2°C 9.4°C/49°F Wind Chill 9.4°C 8.9°C/48°F Heat Index 4.8°C 5°C/41F Si je calcule les températures en °F de ma fenêtre weatherlink summary j'obtiens 9.2 -> 48.5°F arrondi à 49°F sur la capture XML ce qui donne 9.4°C ((49-32)/1.8) 9.4 -> 48.9°F arrondi à 48°F sur la capture XML ce qui donne 8.9°C ((48-32)/1.8) 4.8 -> 40.6°F arrondi à 41°Fsur la capture XML ce qui donne 5°C ((41-32)/1.8) Pourquoi la valeur 48.9 a été arrondi à 48 au lieu de 49 alors que 48.5 a été arrondi à 49, j'en ai aucune idée. Je vois des arrondis très bizarre certaines fois sur les captures XML par rapport à la fenêtre summary. Donc mon point est de souligner que les valeurs en fahrenheit sur le fichier XML sont arrondies à l'unité par rapport aux valeurs en fahrenheit que l'on a dans le logiciel weatherlink sur cette fenêtre summary. Ce qui explique pourquoi les valeurs en °C diffèrent de quelques dixièmes de °C entre xml et weatherlink summary. Bref, j'espère avoir été un peu plus clair
-
La décimale peut être comprise entre 1 et 9. Il y a donc une différence entre 58.5 et 58.0. Si tu regardes ce champ: <temp_f>51.6</temp_f> la température en fahrenheit a une décimale. Si tu regardes les autres champs <windchill_f>, <dewpoint_f>, la valeur est toujours arrondie à un entier. Il n'y a aucune décimale contrairement à <temp_f>. Ton paramètre $température n'est pas arrondie avec round car il est égal à temp_c qui provient lui même de temp_f qui n'a pas été arrondi à l'entier inférieur ou supérieur. Ce n'est pas un pb d'affichage du site car les données sont tronquées avant d'être envoyées sur weatherlink.com. Le point où je te rejoins, c'est que q'une précision au dixième sur ce type de température ressentie n'est pas significatif. Par contre il est intéressant de le savoir pour comprendre pourquoi des valeurs que tu vas récupérer sur xml ne correspondent pas exactement à ce que tu peux lire sur weatherlink sur ton PC.
-
En regardant de plus près ce fichier xml, je constate que les températures en fahrenheit suivantes : windchill, heat index, dew point, thsw sont arrondies à l'unité. Si vous regardez dans la fenêtre "summary" de weatherlink, ces valeurs en fahrenheit sont affichées avec une décimale. Après vérification, cette décimale est tronquée lorsque les données sont envoyées à weatherlink.com. Cela explique des différences de quelques dixième entre la température affichée dans ce fichier xml et les données affichées dans weatherlinksur le PC.
-
J'ai finalement pris l'abonnement à 0.99euros/HT par mois chez PHPNET pour 1 an. Je viens de mettre mon site dessus. Tous mes problèmes de file_get_contents() et curl_init() ont disparu. Nouveau site météo disponible ici : meteoengins Merci à vous tous.