Anbei ein Script für den einfachen Upload von Wetterdaten zu Wunderground. Es basiert auf einer vorherigen Version wurde aber für IPS 4.0 angepasst (PHP . und , „Problem“) und hoffentlich besser dokumentiert.
Für den Upload muss man eine Wetterstation bei Wunderground anmelden und melden sich dann mit dem Stationsnamen und dem Wunderground Passwort an.
Wenn jemand weniger Sensoren hat, dann bitte oben und unten einfach mit // die Zeile auskommentieren.
Das Script läuft bei mir alle 10 Sekunden.
<?
//Infos zu WUNDERGROUND.COM
$WUID = '****'; /*Benutzername für Wunderground */
$WUPassword = '****'; /*Password für Wunderground */
//********************************************************************************************************
//Sollten nicht alle Variablen bentötigt werden, dann hier und unten bei URL mit // auskommentieren.
//********************************************************************************************************
// Variablen von der Wetterstation
$Temperatur = GetValue(25966 /*[1 Komponenten\Wetter\WMRS200 Temperatur- und Feuchtigkeitssensor Dach\Temperatur]*/);
$Feuchtigkeit = GetValue(14094 /*[1 Komponenten\Wetter\Wetterstation\HUMIDITY]*/);
$Taupunkt = GetValue(15050 /*[1 Komponenten\Wetter\WMRS200 Temperatur- und Feuchtigkeitssensor Dach\Taupunkt]*/);
$Windrichtung = GetValue(16674 /*[1 Komponenten\Wetter\WMRS200 Windsensor\Windrichtung]*/);
$Windstaerke = GetValue(35849 /*[1 Komponenten\Wetter\WMRS200 Windsensor\Windgeschwindigkeit Durchschnitt]*/);
$Windboeen = GetValue(44703 /*[1 Komponenten\Wetter\WMRS200 Windsensor\Windgeschwindigkeit]*/);
$RegenProStunde = GetValue(48421 /*[1 Komponenten\Wetter\WMRS200 Regensensor\Regenmenge letzte Stunde]*/);
$Regen24h = GetValue(57790 /*[1 Komponenten\Wetter\WMRS200 Regensensor\Regenmenge letzte 24 Stunden]*/);
$LuftdruckHPA = GetValue(16882 /*[1 Komponenten\Wetter\WMRS200 Barometer\Luftdruck]*/);
$UVIndex = GetValue(29180 /*[1 Komponenten\Wetter\WMRS200 UV-Sensor\UV-Index]*/);
//UTC Datum "bauen"
$date = date('Y-m-d');
$hour = date('H');
$minute = date('i');
$second = date('s');
$time = $date.'+'.$hour.'%3A'.$minute.'%3A'.$second;
//Umrechnung in amerikanische Werte - für IPS4 werden Komma und Punkte umgesetzt
$Temperatur = str_replace(",",".",(($Temperatur * 9) /5 + 32));
$TaupunktF = str_replace(",",".",Round((($Taupunkt * 9) /5 + 32),2));
$WindstaerkeM = str_replace(",",".",Round(($Windstaerke * 2.2369),2));
$WindboeenM = str_replace(",",".",Round(($Windboeen * 2.2369),2));
$RegenProStundeI = str_replace(",",".",Round(($RegenProStunde / 2.54),2));
$Regen24hI = str_replace(",",".",Round(($Regen24h / 2.54),2));
$BPI = str_replace(",",".",Round(($LuftdruckHPA * 0.0295299830714),4));
$Windrichtung = str_replace(",",".",$Windrichtung);
//********************************************************************************************************
//Sollten nicht alle Variablen bentötigt werden, dann hier die Zeile auskommentieren.
//********************************************************************************************************
//Daten an Wunderground Senden
$Response =file_get_contents('http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID='.$WUID."&PASSWORD=".$WUPassword."&dateutc=".$time.
"&tempf=".$Temperatur.
"&winddir=".$Windrichtung.
"&windspeedmph=".$WindstaerkeM.
"&windgustmph=".$WindboeenM.
"&rainin=".$RegenProStundeI.
"&humidity=".$Feuchtigkeit.
"&dewptf=".$TaupunktF.
"&dailyrainin=".$Regen24hI.
"&baromin=".$BPI."&UV=".$UVIndex);
IPS_LogMessage($_IPS['SELF'], "Wunderground Update: ".$Response);
?>