Hallo zusammen,
ich bekomme bei meinem WetterScript folgenden Fehler angezeigt.
Parse error: Invalid numeric literal in /var/lib/symcon/scripts/18950.ips.php on line 95
Hier das Script
<?
$api = "API-KEY";
$ort = "Neuss";
//Start writing your scripts between the brackets
$IDEigen = $_IPS['SELF'];
$IDParent = IPS_GetParent ($IDEigen);
// IDs heraussuchen
$IDKat0Aktuell = IPS_GetCategoryIDByName ("Aktueller Zustand", $IDParent);
$IDKat1Tag = IPS_GetCategoryIDByName ("Tag 1 Heute", $IDParent);
$IDKat2Tag = IPS_GetCategoryIDByName ("Tag 2 Morgen", $IDParent);
$IDKat3Tag = IPS_GetCategoryIDByName ("Tag 3 Übermorgen", $IDParent);
$IDKat4Tag = IPS_GetCategoryIDByName ("Tag 4 Überübermorgen", $IDParent);
// aktuelles Wetter
$json_string = file_get_contents("http://api.wunderground.com/api/$api/geolookup/conditions/lang:DL/q/DL/$ort.json");
$parsed_json = json_decode($json_string);
setvalue ( IPS_GetVariableIDByName ("WetterIcon" ,$IDKat0Aktuell), IconCheck ($parsed_json->{'current_observation'}->{'icon'}));
setvalue ( IPS_GetVariableIDByName ("WetterText" ,$IDKat0Aktuell), $parsed_json->{'current_observation'}->{'weather'});
setvalue ( IPS_GetVariableIDByName ("TempAktuell" ,$IDKat0Aktuell), NurZahl ($parsed_json->{'current_observation'}->{'temp_c'}));
setvalue ( IPS_GetVariableIDByName ("Feuchte" ,$IDKat0Aktuell), NurZahl ($parsed_json->{'current_observation'}->{'relative_humidity'}));
setvalue ( IPS_GetVariableIDByName ("WindSpeed" ,$IDKat0Aktuell), NurZahl ($parsed_json->{'current_observation'}->{'wind_kph'}));
setvalue ( IPS_GetVariableIDByName ("WindRichtung" ,$IDKat0Aktuell), NurZahl ($parsed_json->{'current_observation'}->{'wind_degrees'}));
setvalue ( IPS_GetVariableIDByName ("Luftdruck" ,$IDKat0Aktuell), NurZahl ($parsed_json->{'current_observation'}->{'pressure_mb'}));
setvalue ( IPS_GetVariableIDByName ("Sichtweite" ,$IDKat0Aktuell), NurZahl ($parsed_json->{'current_observation'}->{'visibility_km'}));
setvalue ( IPS_GetVariableIDByName ("UV Index" ,$IDKat0Aktuell), NurZahl ($parsed_json->{'current_observation'}->{'UV'}));
// Vorhersage
$json_fc_string = file_get_contents("http://api.wunderground.com/api/$api/forecast/lang:DL/q/Germany/$ort.json");
$parsed_fc_json = json_decode($json_fc_string);
$prognose = $parsed_fc_json->{'forecast'}->{'simpleforecast'}->{'forecastday'};
//heute
setvalue ( IPS_GetVariableIDByName ("TagBezeichnung" ,$IDKat1Tag), $prognose[0]->date->weekday) ;
setvalue ( IPS_GetVariableIDByName ("WetterIcon" ,$IDKat1Tag), IconCheck ($prognose[0]->icon)) ;
setvalue ( IPS_GetVariableIDByName ("WetterBezeichnung" ,$IDKat1Tag), utf8_decode ($prognose[0]->conditions)) ;
setvalue ( IPS_GetVariableIDByName ("TempMin" ,$IDKat1Tag), NurZahl ($prognose[0]->low->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("TempMax" ,$IDKat1Tag), NurZahl ($prognose[0]->high->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("WindMax" ,$IDKat1Tag), NurZahl ($prognose[0]->maxwind->kph)) ;
setvalue ( IPS_GetVariableIDByName ("Regen mm" ,$IDKat1Tag), NurZahl ($prognose[0]->qpf_allday->mm)) ;
//morgen
setvalue ( IPS_GetVariableIDByName ("TagBezeichnung" ,$IDKat2Tag), $prognose[1]->date->weekday) ;
setvalue ( IPS_GetVariableIDByName ("WetterIcon" ,$IDKat2Tag), IconCheck ($prognose[1]->icon)) ;
setvalue ( IPS_GetVariableIDByName ("WetterBezeichnung" ,$IDKat2Tag), utf8_decode ($prognose[1]->conditions)) ;
setvalue ( IPS_GetVariableIDByName ("TempMin" ,$IDKat2Tag), NurZahl ($prognose[1]->low->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("TempMax" ,$IDKat2Tag), NurZahl ($prognose[1]->high->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("WindMax" ,$IDKat2Tag), NurZahl ($prognose[1]->maxwind->kph)) ;
setvalue ( IPS_GetVariableIDByName ("Regen mm" ,$IDKat2Tag), NurZahl ($prognose[1]->qpf_allday->mm)) ;
//übermorgen
setvalue ( IPS_GetVariableIDByName ("TagBezeichnung" ,$IDKat3Tag), $prognose[2]->date->weekday) ;
setvalue ( IPS_GetVariableIDByName ("WetterIcon" ,$IDKat3Tag), IconCheck ($prognose[2]->icon)) ;
setvalue ( IPS_GetVariableIDByName ("WetterBezeichnung" ,$IDKat3Tag), utf8_decode ($prognose[2]->conditions)) ;
setvalue ( IPS_GetVariableIDByName ("TempMin" ,$IDKat3Tag), NurZahl ($prognose[2]->low->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("TempMax" ,$IDKat3Tag), NurZahl ($prognose[2]->high->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("WindMax" ,$IDKat3Tag), NurZahl ($prognose[2]->maxwind->kph)) ;
setvalue ( IPS_GetVariableIDByName ("Regen mm" ,$IDKat3Tag), NurZahl ($prognose[2]->qpf_allday->mm)) ;
//überübermorgen
setvalue ( IPS_GetVariableIDByName ("TagBezeichnung" ,$IDKat4Tag), $prognose[3]->date->weekday) ;
setvalue ( IPS_GetVariableIDByName ("WetterIcon" ,$IDKat4Tag), IconCheck ($prognose[3]->icon)) ;
setvalue ( IPS_GetVariableIDByName ("WetterBezeichnung" ,$IDKat4Tag), utf8_decode ($prognose[3]->conditions)) ;
setvalue ( IPS_GetVariableIDByName ("TempMin" ,$IDKat4Tag), NurZahl ($prognose[3]->low->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("TempMax" ,$IDKat4Tag), NurZahl ($prognose[3]->high->celsius)) ;
setvalue ( IPS_GetVariableIDByName ("WindMax" ,$IDKat4Tag), NurZahl ($prognose[3]->maxwind->kph)) ;
setvalue ( IPS_GetVariableIDByName ("Regen mm" ,$IDKat4Tag), NurZahl ($prognose[3]->qpf_allday->mm)) ;
//Astronomie
$json_ast_string = file_get_contents("http://api.wunderground.com/api/$api/astronomy/q/Germany/$ort.json");
$parsed_ast_json = json_decode($json_ast_string);
setvalue (IPS_GetVariableIDByName ("Mondstatus" ,$IDKat0Aktuell), $parsed_ast_json->{'moon_phase'}->{'percentIlluminated'});
function IconCheck ($Eingang){
// Icon wird durch eine Zahl ersetzt
switch ($Eingang){
case "chanceflurries": $Ausgang = 01; break;
case "chancerain": $Ausgang = 02; break;
case "chancesleet": $Ausgang = 03; break;
case "chancesnow": $Ausgang = 04; break;
case "chancetstorms": $Ausgang = 05; break;
case "clear": $Ausgang = 06; break;
case "cloudy": $Ausgang = 07; break;
case "flurries": $Ausgang = 08; break;
case "fog": $Ausgang = 09; break;
case "hazy": $Ausgang = 10; break;
case "mostlycloudy": $Ausgang = 11; break;
case "mostlysunny": $Ausgang = 12; break;
case "partlycloudy": $Ausgang = 13; break;
case "partlysunny": $Ausgang = 14; break;
case "sleet": $Ausgang = 15; break;
case "rain": $Ausgang = 16; break;
case "snow": $Ausgang = 17; break;
case "sunny": $Ausgang = 18; break;
case "tstorms": $Ausgang = 19; break;
case "nt_chanceflurries": $Ausgang = 20; break;
case "nt_chancerain": $Ausgang = 21; break;
case "nt_chancesleet": $Ausgang = 22; break;
case "nt_chancesnow": $Ausgang = 23; break;
case "nt_chancetstorms": $Ausgang = 24; break;
case "nt_clear": $Ausgang = 25; break;
case "nt_cloudy": $Ausgang = 26; break;
case "nt_flurries": $Ausgang = 27; break;
case "nt_fog": $Ausgang = 28; break;
case "nt_hazy": $Ausgang = 29; break;
case "nt_mostlycloudy": $Ausgang = 30; break;
case "nt_mostlysunny": $Ausgang = 31; break;
case "nt_partlycloudy": $Ausgang = 32; break;
case "nt_partlysunny": $Ausgang = 33; break;
case "nt_sleet": $Ausgang = 34; break;
case "nt_rain": $Ausgang = 35; break;
case "nt_snow": $Ausgang = 36; break;
case "nt_sunny": $Ausgang = 37; break;
case "nt_tstorms": $Ausgang = 38; break;
default: $Ausgang = 0; break;
}
return $Ausgang;}
function NurZahl ($Input){
// Filtert aus dem String nur die Zahl heraus
if ($Input == "N/A"){$Output = -1;
}else{
preg_match("/-?\d+(,|\.)?\d*/",$Input,$result);
$Output = $result[0];}
return $Output;}
?>
IPS 5.0 läuft seit heute auf meiner Synology (Docker).
Kann mir jemand sagen was ich im Script ändern muss, damit es wieder funktioniert.
Besten Dank
Kai