Aller au contenu
Les Forums d'Infoclimat

Ce tchat, hébergé sur une plateforme indépendante d'Infoclimat, est géré et modéré par une équipe autonome, sans lien avec l'Association.
Un compte séparé du site et du forum d'Infoclimat est nécessaire pour s'y connecter.

Fichier XML WeatherLinkIP


Damien49
 Partager

Messages recommandés

Posté(e)
Montpellier (34), Montreuil (93) ou Ciran (37)
Il y a 1 heure, Damien49 a dit :

Wind_mph c'est le vent en rafale instantanée, c'est à dire dans la seconde pratiquement.

 

2,5 sec précisément, c a d le pas de mesure de l'anémo, du boitier SIM et de la console Davis.

Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

Soit 2.5sec, mais ça reste trop versatile comme mesure. Vous faites comment vous sur IC pour récupérer le vent en rafale sur 10mn ?

Lien à poster
Partager sur d’autres sites

Posté(e)
Goldbach-Altenbach (68) 705 m Versant Sud du Grand Ballon (1424 m)
Il y a 3 heures, Damien49 a dit :

Et c'est là que je me demande si <wind_ten_min_avg_mph> est bien en fait le vent moyen du coup.

 

Oui (avg = average = moyen), mais sur les 10 dernières minutes à priori.

C'est peut-être une moyenne des rafales sur les 10 dernières minutes alors...

Modifié par alsavosges
Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

Ok merci, on avance...

 

Mais je me demande dans ce cas comment distinguer le vent en rafale du vent moyen, sur les 10 dernières minutes.

 

Faut-il que je n'enregistre ma valeur de rafale (de 2.5sec) qu'1 fois toutes les 10 minutes (avec un petit code php ça doit être faisable je pense) ?

 

Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

En cherchant des réponses à mes questions je suis tombé par hasards sur ça :

 

http://www.gustalert.com/home.php

 

Le mec à codé comme un taré. Tout est fourni gratos, scripts php, cron etc....

 

Je vais épluché tout ça ^^

 

Quelqu'un connaissait ?

  • Merci 2
Lien à poster
Partager sur d’autres sites

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 ?

Lien à poster
Partager sur d’autres sites

Il y a 17 heures, Damien49 a dit :

Soit 2.5sec, mais ça reste trop versatile comme mesure. Vous faites comment vous sur IC pour récupérer le vent en rafale sur 10mn ?

Pour info, il y a deux manières de récupérer le XML des données de la station via weatherlink :

Les données XML récupérées avec ces deux liens sont identiques, à une exception près : le lien vers api:weatherlink.com retourne une variable supplémentaire : <wind_ten_min_gust_mph>, qui est justement la rafale max sur 10 min.

  • J'aime 2
  • Merci 1
Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)
il y a 45 minutes, jackT a dit :

Pour info, il y a deux manières de récupérer le XML des données de la station via weatherlink :

Les données XML récupérées avec ces deux liens sont identiques, à une exception près : le lien vers api:weatherlink.com retourne une variable supplémentaire : <wind_ten_min_gust_mph>, qui est justement la rafale max sur 10 min.

 

Incroyable.  Merci jackT, ça explique tout. :x

 

Lien à poster
Partager sur d’autres sites

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):

  1. Wind direction
  2. 10 min Avg Wind Speed
  3. 2 min Avg Wind Speed
  4. 10 min Wind  Gust Speed
  5. 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.

 

       
  • J'aime 1
Lien à poster
Partager sur d’autres sites

Le 12/10/2017 à 16:07, Damien49 a dit :

 

J'ai toujours un doute concernant :


wind_ten_min_avg_mph

wind_mph

Wind_mph c'est le vent en rafale instantanée, c'est à dire dans la seconde pratiquement. Dès que je fais F5 ça change de valeur. A la limite je voudrais afficher plutôt le vent en rafale sur 10mn, ça donnerait une valeur un peu plus stable et réelle, plutôt qu'un truc qui fait constamment le yoyo et donc illisible.

 

Et c'est là que je me demande si <wind_ten_min_avg_mph> est bien en fait le vent moyen du coup.

 

avg est généralement l'abréviation de  average, c'est-à-dire moyenne

 

Et "ten min", à part 10 minutes, je ne vois pas ce que ça pourrait-être

On se retrouve donc avec :  vent moyen sur 10 minutes

 

 

Edit : je viens de me rendre compte que j'ai répondu à un message se trouvant en bas de la page 1, sans voir que la réponse avait été donnée en page 2 ...

:ph34r:

 

Modifié par _Joel_
Lien à poster
Partager sur d’autres sites

  • 1 month later...
Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

Est-ce que quelqu'un pourrait me donner la variable dans le fichier XML qui correspond à l'indice UV pour les possesseurs de sonde UV ?

 

J'ai pas de sonde UV perso, mais j'ai besoin de la connaitre pour un projet.

 

Merci.

 

 

Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

<uv_index> peut-être ?

 

Le problème c'est que si je me réfère à un fichier XML vide, qui devrait normalement avoir tous les champs disponibles, je ne vois rien concernant une sonde UV :

 

http://www.weatherlink.com/xml.php?user=dfgdgfdfg&pass=54646456

(même chose en utilisant l'API http://api.weatherlink.com/v1/NoaaExt.xml?DID=%24my_did&key=%24my_key)

 

alors qu'on a bien les champs pour une sonde d’ensoleillement par contre.

 

Bizarre...

 

 

 

 

Lien à poster
Partager sur d’autres sites

Tu as essayé ceci ?

 

                  <xsd:element type="xsd:decimal" name="uv_index" minOccurs="0" />
                  <xsd:element type="xsd:decimal" name="uv_index_day_high" minOccurs="0" />
                  <xsd:element type="xsd:string" name="uv_index_day_high_time" minOccurs="0" />
                  <xsd:element type="xsd:decimal" name="uv_index_month_high" minOccurs="0" />
                  <xsd:element type="xsd:decimal" name="uv_index_year_high" minOccurs="0" />

 

Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

Merci mais tu sors ça d'où ? C'est quoi ?

 

En fait il faudrait que quelqu'un qui possède une sonde UV, aille sur un des 2 liens XML que j'ai donné plus haut (en mettant ses propres identifiants) et me donne le champ lié à sa sonde. S'il en existe un.

 

Par exemple Infoclimat récupère bien l'index UV de quelque-part. N'ayant pas de sonde UV je ne peux pas le faire moi-même.

 

Car si j'essaye de la récupérer via mon propre fichier XML,

foreach($xml->davis_current_observation->uv_index as $uv_index);

ça me donne forcément une erreur PHP comme quoi la variable n'existe pas.

 

PS : vous me direz forcément, pourquoi tu veux récupérer une variable que t'as pas ? Et je vous répondrais, vous verrez plus tard, c'est un secret, mais sachez que ça vous sera utile peut-être plus tard ^^

Lien à poster
Partager sur d’autres sites

Posté(e)
Montpellier (34), Montreuil (93) ou Ciran (37)

Dans mon fichier xml, j'ai ça actuellement:

<uv_index>0.0</uv_index>
<uv_index_day_high>1.2</uv_index_day_high>
<uv_index_day_high_time>11:32am</uv_index_day_high_time>
<uv_index_month_high>1.8</uv_index_month_high>
<uv_index_year_high>10.1</uv_index_year_high>

 

  • Merci 1
Lien à poster
Partager sur d’autres sites

Posté(e)
Montpellier (34), Montreuil (93) ou Ciran (37)

XML standard. Mais via l'API, j'ai exactement la même chose, les champs sont les mêmes de toute manière non?

  • J'aime 1
Lien à poster
Partager sur d’autres sites

il y a une heure, Damien49 a dit :

Merci mais tu sors ça d'où ? C'est quoi ?

 

 

 

Heu,  mais  je le sors du lien que tu as posté : http://www.weatherlink.com/xml.php?user=dfgdgfdfg&pass=54646456

 

A la première ligne du fichier XML obtenu par ce lien, tu trouves le lien vers la description du contenu  :

<current_observation version="1.0" xsi:noNamespaceSchemaLocation="https://s3.amazonaws.com/static.weatherlink.com/noaa_davis_current_observation.xsd">

 

Si tu prends la peine de le consulter, tu trouveras la liste de tous les éléments possibles du fichier XML et leur format.

 

Par exemple (que j'ai posté plus haut) : <xsd:element type="xsd:decimal" name="uv_index" minOccurs="0" />

 

L'élément s'appelle "uv_index" et est de type "decimal".  

minOccurs="0" indique qu'il est facultatif.

  • Merci 1
Lien à poster
Partager sur d’autres sites

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); 

 

Modifié par fafou
  • J'aime 1
Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

Ok merci à tous.

Citation

 

Heu,  mais  je le sors du lien que tu as posté : http://www.weatherlink.com/xml.php?user=dfgdgfdfg&pass=54646456

 

A la première ligne du fichier XML obtenu par ce lien, tu trouves le lien vers la description du contenu  :

<current_observation version="1.0" xsi:noNamespaceSchemaLocation="https://s3.amazonaws.com/static.weatherlink.com/noaa_davis_current_observation.xsd">

 

Si tu prends la peine de le consulter, tu trouveras la liste de tous les éléments possibles du fichier XML et leur format.

 

Par exemple (que j'ai posté plus haut) : <xsd:element type="xsd:decimal" name="uv_index" minOccurs="0" />

 

L'élément s'appelle "uv_index" et est de type "decimal".  

minOccurs="0" indique qu'il est facultatif.

 

 

Ha oui j'avais la réponse à ma question dès le début en fait, j'avais jamais eu la curiosité d'aller voir à quoi ce referait le fichier xsd en fait ^^

Y'a tous les champs et même ceux dont on ne dispose pas, c'est cool. :D

 

Yes fafou, pour le deg tocompass, le +0.5 m'a fait arracher les cheveux je dois t'avouer, n'étant pas hyper matheux à la base, ça marche aussi avec  seulement 8 pts cardinaux ^^

		function degToCompassSmallFR($wind_degrees) {
        $val=floor(($wind_degrees/45)+.5);
        $arr=array("N","NE","E","SE","S","SO","O","NO");
        return $arr[($val % 8)];
		}

Et si t'aimes les scripts je suis sur un projet qui devrait te plaire. ;)

Lien à poster
Partager sur d’autres sites

  • 2 weeks later...
Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

Je viens de me rendre compte que les 3 données liés au THSW : http://webpages.charter.net/rdgweather/THSW.htm

 

<thsw_index_day_high_f>

<thsw_index_day_high_time>

<thsw_index_month_high_f>

 

ne sont pas disponibles via l'API (DID+KEY), mais seulement via le lien xml classique (nom station + mot de passe). C'est vraiment dommage.

 

J'espère qu'ils vont harmoniser ça avec leur projet weatherlink2.0.

 

Je me demandais aussi s'il était possible de récupérer les données lié au temps qu'il va faire dans les 12 prochaines heures que l'on voit ici : https://www.weatherlink.com/user/meteobell/index.php?view=summary&headers=1

 

sur la ligne : "12 Hour Forecast"  Quelqu'un a une idée ?

 

Lien à poster
Partager sur d’autres sites

Posté(e)
Montpellier (34), Montreuil (93) ou Ciran (37)
il y a 4 minutes, Damien49 a dit :

J'espère qu'ils vont harmoniser ça avec leur projet weatherlink2.0.

 

C'est pas gagné du tout, quand on voit la gueule du XML généré pour notre station installée hier dans le Perche...

 

<observation_time>Last Updated on Dec 9 2017, 5:38 am GMT</observation_time>
<observation_time_rfc822>Sat, 9 Dec 2017 05:38:24 +0000</observation_time_rfc822>
<relative_humidity/>
<temp_c>-17.8</temp_c>
<temp_f>0.0</temp_f>
<temperature_string>0.0 F (-17.8 C)</temperature_string>
<wind_kt>0</wind_kt>
<wind_mph/>
<windchill_c>-17.8</windchill_c>
<windchill_f/>
<windchill_string> F (-17.8 C)</windchill_string>

 

  • Surprise 1
Lien à poster
Partager sur d’autres sites

Posté(e)
La-Chapelle-Saint-Florent - 49 (proche 44, bord Loire)

Bah va falloir gueuler alors, parce que ça n'a aucun intéret leur truc s'ils ne l'améliorent pas et surtout si ça casse tous les sites qui l'utilise. :/

 

Concernant ma demande, j'ai trouvé une méthode sinon pour parser directement la page html summary en données : https://openclassrooms.com/forum/sujet/import-automatique-donnees-d-une-page-php-vers-sql?page=1#message-91340512

mais bon ça serait plus propre de passer par du xml-api quand même.

 

Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Partager

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...