Partage des infos météo

Cédric
3 mars 2009

Quitte à avoir une station météo semi pro à la maison, je me suis dit qu’il pourrait être sympa de partager ces infos avec qui le voudra, notamment des personnes du village.

Au départ, j’avais utilisé un soft fourni avec ma station météo, qui génére une image contenant les infos météo, et l’envoi sur un FTP. Mais niveau temps de réponse, ce n’était pas ca.

Puis j’ai découvert l’API de Wunderground qui permet de collecter les infos des stations météo personnelles.

Il suffit d’appeler une adresse HTTP contenant les données en paramètres, de cette forme:

http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=IDENTIFIANTSTATIONPERSO&PASSWORD=PASSWORD&dateutc=2009-03-02+10%3A32%3A35&winddir=230&windspeedmph=12&windgustmph=12&tempf=70&rainin=0&baromin=29.1&dewptf=68.2&humidity=90&weather=&clouds=&softwaretype=vws%20versionxx&action=updateraw

J’ai réalisé un petit script vbs très simple, qui récupère les infos de la station météo LaCrosse Technologie WS2307, construit l’adresse HTTP avec les variables, et l’envoi à Wundergound. Si ca intéresse certains, voici le script (à adapter selon les beoins, car il est configuré ici pour être lancé par Homeseer):

 

[sourcecode language= »vb »]Option Explicit

#include ..\lib\framework_domotics.vbs

#include local-parameters.inc

Sub main

Dim astrBuffer

Dim tabLines

Dim tabValues(14)

Dim astrDevices

Dim astrConfig

Dim atabDv

Dim astrNbDv

Dim i, l

Dim astrDevice

Dim astrparam1

Dim ligne, section, parametre, valeur, requete, result, jour, mois, annee, daterequete

jour = right(date,2)

annee = left(date,4)

mois = mid(date,6,2)

daterequete = annee & "-" & mois & "-" & jour

WriteLog G_FOLDER_NAME, G_SCRIPT_EVT, G_TIV_INF, "Launching " & G_FOLDER_NAME & " script", G_LOG_FILE

If CheckDevices(G_FOLDER_NAME, G_FILE_INI, G_STATUS_EXIST) Then

astrDevices         = hs.GetINISetting("COMMON","DEVICES","", G_FILE_INI)

astrConfig          = hs.GetINISetting("COMMON","CONFIG","..\scripts\config\", G_FILE_INI)

atabDv                 = Split(astrDevices, G_SEP)

astrNbDv             = UBound(atabDv)

astrBuffer = loadfile("C:\HeavyWeather\currdat.lst",False)

‘Rcupration des infos de la station mto LaCrosse

If (astrBuffer <> "") Then

A lire également:
Gaming et éclairage connecté : transformez la chambre de votre ado en véritable arène esport !

tabLines = Split(astrbuffer,chr(13))

l = 0
While (l < = ubound(tabLines))

If (Mid(tabLines(l),2,1) = "[") Then

section = Mid(tabLines(l),3,Len(tabLines(l))-3)

Else
If (Instr(tabLines(l),"=")) > 0 Then

parametre = Mid(tabLines(l),2,Instr(tabLines(l),"=")-3)

valeur = Replace(Mid(tabLines(l),Instr(tabLines(l),"=")+2),Chr(34),"")

If (section = "weather_picture" And parametre = "number") Then

If (valeur = 0) Then tabValues(1) = "Pluvieux"

If (valeur = 1) Then tabValues(1) = "Nuageux"

If (valeur = 2) Then tabValues(1) = "Ensoleill"

End If

If (section = "weather_tendency" And parametre = "number" ) Then

If (valeur = 0) Then tabValues(2) = "Stable"

If (valeur = 1) Then tabValues(2) = "Hausse"

If (valeur = 2) Then tabValues(2) = "Baisse"

End If

If (section = "indoor_temperature"  And parametre = "deg_F"  ) Then tabValues(3) = valeur

If (section = "outdoor_temperature" And parametre = "deg_F"  ) Then tabValues(4) = valeur

If (section = "indoor_humidity"     And parametre = "percent") Then tabValues(5) = valeur

If (section = "outdoor_humidity"    And parametre = "percent") Then tabValues(6) = valeur

If (section = "wind_speed"          And parametre = "mph"    ) Then tabValues(7) = valeur

If (section = "wind_direction"      And parametre = "deg"   ) Then tabValues(8) = valeur

If (section = "rain_24h"            And parametre = "inch"     ) Then tabValues(9) = valeur

If (section = "pressure_relative"   And parametre = "inHg"    ) Then tabValues(10)  = valeur

If (section = "rain_1h"              And parametre = "inch"     ) Then tabValues(11)  = valeur

If (section = "windchill"             And parametre = "deg_F"  ) Then tabValues(12)  = valeur

If (section = "dewpoint"             And parametre = "deg_F"  ) Then tabValues(13)  = valeur

End If

End If

l = l+ 1

Wend
End if

‘Envoi des infos  Wunderground

requete = "http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=ICENTREV2&PASSWORD=0611346045&dateutc=" & daterequete & "+1%3A32%3A35&winddir=" & tabValues(8) & "&windspeedmph=" & tabValues(7) & "&windgustmph=0&tempf=" & tabValues(4) & "&rainin=" & tabValues(11) & "&dailyrainin=" & tabValues(9) & "&baromin=" & tabValues(10) & "&dewptf=42.0&humidity=" & tabValues(6) & "&weather=&clouds=&softwaretype=Heavy%20WeatherStation&action=updateraw"

result = hs.URLAction(requete, "GET", "", "")

WriteLog G_FOLDER_NAME, G_SCRIPT_EVT, G_TIV_INF, "Envoi des donnes a Wunderground:" & result, G_LOG_FILE

Else
WriteLog G_FOLDER_NAME, G_SCRIPT_EVT, G_TIV_SEV, "Expected Device is unknown !", G_LOG_FILE

End if

WriteLog G_FOLDER_NAME, G_SCRIPT_EVT, G_TIV_INF, "End of the script", G_LOG_FILE

A lire également:
DSL, fibre optique, LTE, câble et satellite: on fait le point sur les connexions internet

End sub[/sourcecode]

 

Une fois recues les infos, Wunderground traite les données pour construire des graphiques, des stats, et mettre à disposition des gadgets pour Vista, Google, ou n’importe quel site web.

Tout est là: http://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=ICENTREV2

Au final, de meilleurs temps de réponse pour ceux qui souhaient consulter les données, et la possibilité de consulter l’historique !

share Partager

Ces articles pourraient aussi vous intéresser:

Gaming et éclairage connecté : transformez la chambre de votre ado en véritable arène esport !

Découvrez comment créer une chambre d'ado gaming immersive en synchronisant l'applique murale et le lustre moderne avec votre setup PC. Guide complet sur les protocoles d'éclairage et solutions connectées pour une expérience de jeu unique.

DSL, fibre optique, LTE, câble et satellite: on fait le point sur les connexions internet

Actuellement, il existe de multiples façons d'accéder à Internet, ou plus précisément, divers types de connexions en ligne. En outre, des tendances comme le télétravail et le streaming de divertissement ne cessent d'augmenter les besoins en bande passante. Pour profiter de services de qualité, il est important de comprendre les différences entre le DSL, le câble, la fibre optique et même la téléphonie mobile, devenue elle aussi un moyen de connexion à internet.

Installation de Frigate sur le mini pc NiPoGi GK3 Plus pour une vidéosurveillance au top !

Ce guide explique comment installer Frigate sur un mini PC NiPoGi GK3 Plus à 200€, pour obtenir un système de vidéosurveillance ultra complet, intégrable à Jeedom ou Home Assistant.

0 réaction

Votre réaction
Nom
Adresse de messagerie
Site internet