Danke. Funktioniert!
WeatherID habe ich rausgeschmissen, da ich damit nix anfangen konnte.
Jetzt also:
<?
/** Konfiguration: **/
$locationID = "2831872";
/************************************************************************************************************************************/
/** Variablen-Profil "OpenWeatherAPI" anlegen wenn nicht bereits vorhanden **/
if (!IPS_VariableProfileExists("OpenWeatherAPI"))
IPS_CreateVariableProfile("OpenWeatherAPI", 1);
$content = Sys_GetURLContent("http://api.openweathermap.org/data/2.5/weather?id=".$locationID."&lang=de&units=metric&mode=json");
$json = json_decode($content);
/** Aktuelles Wetter über openweathermap auslesen & Variablen anlegen **/
//$OrtID = CreateVariableByName($_IPS['SELF'], "Ort", 3, $profile = "", $icon = "", $pos = 0, $hidden=false);
$PressureID = CreateVariableByName($_IPS['SELF'], "Luftdruck", 2, $profile = "~AirPressure.F", $icon = "Gauge", $pos = 0, $hidden=false);
$TemperatureID = CreateVariableByName($_IPS['SELF'], "Temperatur", 2, $profile = "~Temperature", $icon = "Temperature", $pos = 0, $hidden=false);
$HumidityID = CreateVariableByName($_IPS['SELF'], "rel. Feuchte", 1, $profile = "~Humidity", $icon = "Gauge", $pos = 0, $hidden=false);
$WeatherDescID = CreateVariableByName($_IPS['SELF'], "Beschreibung", 3, $profile = "", $icon = "", $pos = 0, $hidden=false);
$WindSpeedID = CreateVariableByName($_IPS['SELF'], "Windgeschwindigkeit", 2, $profile = "~WindSpeed.kmh", $icon = "WindSpeed", $pos = 0, $hidden=false);
$WindDirectionID = CreateVariableByName($_IPS['SELF'], "Windrichtung", 2, $profile = "~WindDirection.F", $icon = "WindDirection", $pos = 0, $hidden=false);
$CloudsID = CreateVariableByName($_IPS['SELF'], "Wolken", 1, $profile = "~Intensity.100", $icon = "Cloud", $pos = 0, $hidden=false);
$Rain3hID = CreateVariableByName($_IPS['SELF'], "Regen 3h", 2, $profile = "~Rainfall", $icon = "Rainfall", $pos = 0, $hidden=false);
$WeatherID = CreateVariableByName($_IPS['SELF'], "Weather ID", 1, $profile = "OpenWeatherAPI", $icon = "", $pos = 0, $hidden=false);
//SetValueString($OrtID, $json->name);
SetValueFloat($TemperatureID, $json->main->temp);
SetValueFloat($PressureID, $json->main->pressure);
SetValueInteger($HumidityID, $json->main->humidity);
SetValueString($WeatherDescID,utf8_decode($json->weather[0]->description));
SetValueFloat($WindSpeedID, $json->wind->speed);
SetValueFloat($WindDirectionID, $json->wind->deg);
SetValueInteger($CloudsID, $json->clouds->all);
if(isset($json->rain->{'3h'}))
{
SetValueFloat($Rain3hID, $json->rain->{'3h'});
}
else
{
SetValueFloat($Rain3hID, 0);
}
SetValueInteger($WeatherID, $json->weather[0]->id);
/** Variablen-Profil "OpenWeatherAPI" aktualisieren **/
if (!IPS_VariableProfileExists("OpenWeatherAPI"))
IPS_CreateVariableProfile("OpenWeatherAPI", 1);
IPS_SetVariableProfileAssociation("OpenWeatherAPI", $json->weather[0]->id, $json->weather[0]->description, "", -1);
/************************************************************************************************************************************/
/* IP Symcon-Variable anlegen
0 Legt eine Variable vom Typ Boolean an
1 Legt eine Variable vom Typ Integer an
2 Legt eine Variable vom Typ Float an
3 Legt eine Variable vom Typ String an
*/
//if (!function_exists('CreateVariableByName'))
//{
function CreateVariableByName($id, $name, $type, $profile = "", $icon = "", $pos = 0, $hidden=false)
{
global $IPS_SELF;
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
IPS_SetPosition($vid, $pos);
IPS_SetIcon($vid, $icon);
IPS_SetHidden($vid, $hidden);
IPS_SetVariableCustomProfile($vid, $profile);
IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
}
return $vid;
}
//}
?>
Fehlt nur noch ne Vorhersage und die Portierung nach IPSView