Underground Update funktioniert nicht unter IPS4

Anbei ein Script was mir ein Rätsel aufgibt. Dieses Script funktioniert ohne Probleme in IPS3.4 … nicht aber in IPS4 ?!?

In beiden fällen wir ein Success geliefert, aber wenn IPS4 Daten hochlädt dann zeigt WU nichts an - es schon also irgendwie schief zu laufen.

Das Script wirft auch keinen Fehler - Hat jemand eine Idee?


<?

//Infos zu WUNDERGROUND.COM
$WUURL 			= 'http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=';
$WUID 			= 'xyz';
$WUPassword    = 'abc';

// Variablen von der Wetterstation
$feuchtigkeit = GetValue(12938 /*[1 Komponenten\Wetter\WMRS200 Temperatur- und Feuchtigkeitssensor Dach\Luftfeuchtigkeit]*/);
$TemperaturDach = GetValue(12362 /*[1 Komponenten\Wetter\Wetterstation\TEMPERATURE]*/);
$TemperaturSpielplatz = GetValue(12362 /*[1 Komponenten\Wetter\Wetterstation\TEMPERATURE]*/);
$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]*/);

//Generate Date
$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
$TempF1 = (($TemperaturDach * 9) /5 + 32);
$TempF2 = (($TemperaturSpielplatz * 9) /5 + 32);
$TaupunktF = Round((($Taupunkt * 9) /5 + 32),2);
$WindstaerkeM = Round(($Windstaerke * 2.2369),2);
$WindboeenM = Round(($Windboeen * 2.2369),2);
$RegenProStundeI = Round(($RegenProStunde / 2.54),2);
$Regen24hI = Round(($Regen24h / 2.54),2);
$BPI = Round(($LuftdruckHPA * 0.0295299830714),4);


//Daten an Wunderground Senden
$Response = file_get_contents($WUURL.$WUID."&PASSWORD=".$WUPassword."&dateutc=".$time."&tempf=".$TempF1."&temp2f=".$TempF2."&winddir=".$windrichtung."&windspeedmph=".$WindstaerkeM."&windgustmph=".$WindboeenM."&rainin=".$RegenProStundeI."&humidity=".$feuchtigkeit."&dewptf=".$TaupunktF."&dailyrainin=".$Regen24hI."&baromin=".$BPI."&UV=".$UVIndex);
//Echo $Response;

Echo ('Wunderground Update: '.$Response.'    TempF1 '.$TempF1.' / TempF2 '.$TempF2.' / TaunpunktF '.$TaupunktF.' / Windstaerke '.$WindstaerkeM.' / Windboeen '.$WindboeenM.' / Regen pro Stunde '.$RegenProStundeI.' / Regen24h '.$Regen24hI.' / BPI '.$BPI.' / UV Index '.$UVIndex);


?>


Also … den Fehler habe ich inzwischen gefunden - das Problem ist, dass IPS4 bez. das PHP Framework anscheinend statt Punkten jetzt die Kommas übergibt (hat es anscheinend vorher nicht getan). Also muss man bei den Werten den Komma durch einen Punkt ersetzen.


$TempF1 = str_replace(",",".",(($TemperaturDach * 9) /5 + 32));

Ich poste auch mal das komplette Script in „alten Fred“

Hi!

paresy hatte mal was dazu geschrieben. Irgendwie hat IPS 3.4 sich da nicht „richtig“ verhalten und jetzt bei IPS 4 wird sich „korrekt“ verhalten was das „.“ und „,“ angeht…
Codierung Umlaute

Grüße,
Chris

Ich habe ein fertiges Script für interessierte hier gespostet … keine Ahnung wie lange die 4.0 Beta Themen bleiben?

Wunderground Upload Script für IPS 4.0