{'current_observation'}->{'icon'}; $temp_c = $parsed_json->{'current_observation'}->{'temp_c'}; $min_temp = $parsed_json->{'current_observation'}->{'dewpoint_c'}; $humid = $parsed_json->{'current_observation'}->{'relative_humidity'}; $wind_speed = $parsed_json->{'current_observation'}->{'wind_kph'}; $wind_dir = $parsed_json->{'current_observation'}->{'wind_dir'}; $luftdruck = $parsed_json->{'current_observation'}->{'pressure_mb'}; $wetter = $parsed_json->{'current_observation'}->{'weather'}; $sichtweite = $parsed_json->{'current_observation'}->{'visibility_km'}; /* echo "${icon}\n"; echo "akt. Temp: ${temp_c}°C\n"; echo "Minimal: ${min_temp}°C\n"; echo "akt. Luftfeuchte: ${humid}\n"; echo "Windgeschwindigkeit: ${wind_speed} Km/h\n"; echo "Windrichtung: ${wind_dir} \n"; echo "Luftdruck: ${luftdruck} HPa \n"; echo "Wetter: ${wetter}\n"; echo "Sichtweite: ${sichtweite} Km\n"; */ SetValue(CreateVariableByName($_IPS['SELF'], "Aktuelles Icon", 3, "~String"), $icon); SetValue(CreateVariableByName($_IPS['SELF'], "Aktuelle Temperatur", 2, "~Temperature"), $temp_c); SetValue(CreateVariableByName($_IPS['SELF'], "Aktuelle Luftfeuchtigkeit", 3, "~String"), $humid); SetValue(CreateVariableByName($_IPS['SELF'], "Aktuelle Windgeschwindigkeit", 1, ""), $wind_speed); SetValue(CreateVariableByName($_IPS['SELF'], "Aktueller Luftdruck", 1, ""), $luftdruck); SetValue(CreateVariableByName($_IPS['SELF'], "Aktuelles Wetter", 3, "~String"), $wetter); //============================================================================== // Vorhersage $json_fc_string = file_get_contents("http://api.wunderground.com/api/$api/forecast/lang:DL/q/DL/$ort.json"); $parsed_fc_json = json_decode($json_fc_string); $prognose = $parsed_fc_json->{'forecast'}->{'simpleforecast'}->{'forecastday'}; //var_dump($prognose); //heute $icon0 = ($prognose[0]->icon); $high0 = ($prognose[0]->high->celsius); $low0 = ($prognose[0]->low->celsius); $low0 = ($prognose[0]->low->celsius); $wind0 = ($prognose[0]->avewind->kph); $conditions0 = utf8_decode($prognose[0]->conditions); /* echo $icon0 = ($prognose[0]->icon) . "\n"; echo $high0 = ($prognose[0]->high->celsius) . "\n"; echo $low0 = ($prognose[0]->low->celsius) . "\n"; echo $low0 = ($prognose[0]->low->celsius) . "\n"; echo $wind0 = ($prognose[0]->avewind->kph) . "\n"; echo $conditions0 = utf8_decode($prognose[0]->conditions) . "\n"; */ SetValue(CreateVariableByName($_IPS['SELF'], "Heute Icon", 3, "~String"), $icon0); SetValue(CreateVariableByName($_IPS['SELF'], "Heute max Temperatur", 2, "~Temperature"), $high0); SetValue(CreateVariableByName($_IPS['SELF'], "Heute min Temperatur", 2, "~Temperature"), $low0); SetValue(CreateVariableByName($_IPS['SELF'], "Heute Windgeschwindigkeit", 1, ""), $wind0); SetValue(CreateVariableByName($_IPS['SELF'], "Heute Wetter", 3, "~String"), $conditions0); //morgen $icon1 = ($prognose[1]->icon); $high1 = ($prognose[1]->high->celsius); $low1 = ($prognose[1]->low->celsius); $wind1 = ($prognose[1]->avewind->kph); $conditions1 = utf8_decode($prognose[1]->conditions); /* echo $icon1 = ($prognose[1]->icon) . "\n"; echo $high1 = ($prognose[1]->high->celsius) . "\n"; echo $low1 = ($prognose[1]->low->celsius) . "\n"; echo $wind1 = ($prognose[1]->avewind->kph) . "\n"; echo $conditions1 = utf8_decode($prognose[1]->conditions) . "\n"; */ SetValue(CreateVariableByName($_IPS['SELF'], "Morgen Icon", 3, "~String"), $icon1); SetValue(CreateVariableByName($_IPS['SELF'], "Morgen max Temperatur", 2, "~Temperature"), $high1); SetValue(CreateVariableByName($_IPS['SELF'], "Morgen min Temperatur", 2, "~Temperature"), $low1); SetValue(CreateVariableByName($_IPS['SELF'], "Morgen Windgeschwindigkeit", 1, ""), $wind1); SetValue(CreateVariableByName($_IPS['SELF'], "Morgen Wetter", 3, "~String"), $conditions1); //übermorgen $icon2 = ($prognose[2]->icon); $high2 = ($prognose[2]->high->celsius); $low2 = ($prognose[2]->low->celsius); $wind2 = ($prognose[2]->avewind->kph); $conditions2 = utf8_decode($prognose[2]->conditions); /* echo $icon2 = ($prognose[2]->icon) . "\n"; echo $high2 = ($prognose[2]->high->celsius) . "\n"; echo $low2 = ($prognose[2]->low->celsius) . "\n"; echo $wind2 = ($prognose[2]->avewind->kph) . "\n"; echo $conditions2 = utf8_decode($prognose[2]->conditions) . "\n"; */ SetValue(CreateVariableByName($_IPS['SELF'], "Uebermorgen Icon", 3, "~String"), $icon2); SetValue(CreateVariableByName($_IPS['SELF'], "Uebermorgen max Temperatur", 2, "~Temperature"), $high2); SetValue(CreateVariableByName($_IPS['SELF'], "Uebermorgen min Temperatur", 2, "~Temperature"), $low2); SetValue(CreateVariableByName($_IPS['SELF'], "Uebermorgen Windgeschwindigkeit", 1, ""), $wind2); SetValue(CreateVariableByName($_IPS['SELF'], "Uebermorgen Wetter", 3, "~String"), $conditions2); //überübermorgen $icon3 = ($prognose[3]->icon); $high3 = ($prognose[3]->high->celsius); $low3 = ($prognose[3]->low->celsius); $wind3 = ($prognose[3]->avewind->kph); $conditions3 = utf8_decode($prognose[3]->conditions); /* echo $icon3 = ($prognose[3]->icon) . "\n"; echo $high3 = ($prognose[3]->high->celsius) . "\n"; echo $low3 = ($prognose[3]->low->celsius) . "\n"; echo $wind3 = ($prognose[3]->avewind->kph) . "\n"; echo $conditions3 = utf8_decode($prognose[3]->conditions) . "\n"; */ SetValue(CreateVariableByName($_IPS['SELF'], "Ueberuebermorgen Icon", 3, "~String"), $icon3); SetValue(CreateVariableByName($_IPS['SELF'], "Ueberuebermorgen max Temperatur", 2, "~Temperature"), $high3); SetValue(CreateVariableByName($_IPS['SELF'], "Ueberuebermorgen min Temperatur", 2, "~Temperature"), $low3); SetValue(CreateVariableByName($_IPS['SELF'], "Ueberuebermorgen Windgeschwindigkeit", 1, ""), $wind3); SetValue(CreateVariableByName($_IPS['SELF'], "Ueberuebermorgen Wetter", 3, "~String"), $conditions3); // Diese Hilfsvariable wurde manuell für das Loggen der Luftfeuchtigkeit // angelegt, da man einen String mit % am Ende von Wunderground bekommt $luftfeuchte = str_replace("%", "", GetValueString(49653 /*[Zeit-Scripte\Wetter Wunderground\Wunderground json\Aktuelle Luftfeuchtigkeit]*/)); SetValueInteger(40365 /*[Zeit-Scripte\Wetter Wunderground\Wunderground json\Aktuelle Luftfeuchtigkeit Integer]*/, $luftfeuchte); //echo $luftfeuchte; //============================================================================== // Bilden der Assoziationen über eine Integer Var in Abhängigkeit des Wettertextes // Dabei weichen die Assoziationen des aktuellen Wetters von denen der Vorhersage ab // Es werden nicht die Werte von $conditions abgefragt, sondern die englischen // Ausdrücke für die Icons. Der Grund muss im utf8_decode liegen was dazu führt, // dass unter Win 7 zwar Regen möglich angezeigt wird, dies aber hier nicht als // Abfrage funktioniert. Es gibt zahlreiche Foreneinträge zu diesem Thema // Hier findet man die Beschreibungen für die Assoziationen // https://www.wunderground.com/weather/api/d/docs?d=resources/phrase-glossary switch ($icon) { case "clear": $asso = 0; break; case "partlycloudy": $asso = 1; break; case "cloudy": $asso = 2; break; case "mostlycloudy": $asso = 3; break; case "chancerain": $asso = 4; break; case "rain": $asso = 5; break; case "chancetstorms": $asso = 6; break; case "tstorms": $asso = 7; break; case "sleet": // Graupel $asso = 8; break; case "snow": $asso = 9; break; case "hazy": // Dunst $asso = 10; break; case "fog": // Nebel $asso = 11; break; case "flurries": // Schneegestöber $asso = 12; break; case "sunny": $asso = 13; break; } switch ($icon0) { case "clear": $asso0 = 0; break; case "partlycloudy": $asso0 = 1; break; case "cloudy": $asso0 = 2; break; case "mostlycloudy": $asso0 = 3; break; case "chancerain": $asso0 = 4; break; case "rain": $asso0 = 5; break; case "chancetstorms": $asso0 = 6; break; case "tstorms": $asso0 = 7; break; case "sleet": // Graupel $asso0 = 8; break; case "snow": $asso0 = 9; break; case "hazy": // Dunst $asso0 = 10; break; case "fog": // Nebel $asso0 = 11; break; case "flurries": // Schneegestöber $asso0 = 12; break; case "sunny": $asso0 = 13; break; } switch ($icon1) { case "clear": $asso1 = 0; break; case "partlycloudy": $asso1 = 1; break; case "cloudy": $asso1 = 2; break; case "mostlycloudy": $asso1 = 3; break; case "chancerain": $asso1 = 4; break; case "rain": $asso1 = 5; break; case "chancetstorms": $asso1 = 6; break; case "tstorms": $asso1 = 7; break; case "sleet": // Graupel $asso1 = 8; break; case "snow": $asso1 = 9; break; case "hazy": // Dunst $asso1 = 10; break; case "fog": // Nebel $asso1 = 11; break; case "flurries": // Schneegestöber $asso1 = 12; break; case "sunny": $asso1 = 13; break; } switch ($icon2) { case "clear": $asso2 = 0; break; case "partlycloudy": $asso2 = 1; break; case "cloudy": $asso2 = 2; break; case "mostlycloudy": $asso2 = 3; break; case "chancerain": $asso2 = 4; break; case "rain": $asso2 = 5; break; case "chancetstorms": $asso2 = 6; break; case "tstorms": $asso2 = 7; break; case "sleet": // Graupel $asso2 = 8; break; case "snow": $asso2 = 9; break; case "hazy": // Dunst $asso2 = 10; break; case "fog": // Nebel $asso2 = 11; break; case "flurries": // Schneegestöber $asso2 = 12; break; case "sunny": $asso2 = 13; break; } switch ($icon3) { case "clear": $asso3 = 0; break; case "partlycloudy": $asso3 = 1; break; case "cloudy": $asso3 = 2; break; case "mostlycloudy": $asso3 = 3; break; case "chancerain": $asso3 = 4; break; case "rain": $asso3 = 5; break; case "chancetstorms": $asso3 = 6; break; case "tstorms": $asso3 = 7; break; case "sleet": // Graupel $asso3 = 8; break; case "snow": $asso3 = 9; break; case "hazy": // Dunst $asso3 = 10; break; case "fog": // Nebel $asso3 = 11; break; case "flurries": // Schneegestöber $asso3 = 12; break; case "sunny": $asso3 = 13; break; } // Anlegen der Assoziationsvariablen für die Icons in IPSView SetValue(CreateVariableByName($_IPS['SELF'], "Aktuell Asso", 1, "Wetter"), $asso); SetValue(CreateVariableByName($_IPS['SELF'], "Heute Asso", 1, "Wetter"), $asso0); SetValue(CreateVariableByName($_IPS['SELF'], "Morgen Asso", 1, "Wetter"), $asso1); SetValue(CreateVariableByName($_IPS['SELF'], "Uebermorgen Asso", 1, "Wetter"), $asso2); SetValue(CreateVariableByName($_IPS['SELF'], "Ueberuebermorgen Asso", 1, "Wetter"), $asso3); //============================================================================== function CreateVariableByName($id, $name, $type, $profile = "") { # type: 0=boolean, 1 = integer, 2 = float, 3 = string; global $IPS_SELF; $vid = @IPS_GetVariableIDByName($name, $id); if($vid === false) { $vid = IPS_CreateVariable($type); IPS_SetParent($vid, $id); IPS_SetName($vid, $name); IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF"); if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); } } return $vid; } ?>