Füge einfach NACH $url=„https://warnungen…“ var_dump($warnungen_json); ein, dann siehst das Ergebnis. Bei „grün“ ist der Index $warnungen[„properties“][„warnings“] leer.
Mein var_dump() der Variable $warnungen_json
string(569) "{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[568197,502836],[569657,503017],[570345,503116],[570560,502309],[570047,500584],[570781,500292],[569985,499414],[569252,498665],[569495,497817],[568725,497879],[567317,499042],[566709,498331],[566329,498427],[566837,498587],[566702,499285],[567091,499635],[567468,499717],[567473,501158],[567750,501822],[568151,501885],[568197,502836]]]]},"properties":{"location":{"type":"Municipal","properties":{"gemeindenr":31309,"name":"Furth bei G\u00f6ttweig","urlname":"furth_bei_goettweig"}},"warnings":[]}}"
Mein var_dump($warnungen[„properties“][„warnings“]);
array(0) { }
Was soviel bedeutet wie nix, leer.
Eventuell hilft dir diese Version eher
<?php
$location_id=12213; //ID der Locationinstanz
$html_id=14955; //HTML-Box Variable
$warnungvorhanden_id=24275; //Variable ob Warnungen (Orange, Rot) vorhanden sind
$crc_id=32307; //CRC Variable um eine Änderung in den Warnungen festzustellen
$smtp_id=47375; //ID der SMTP Instanz für den Mailversand
$adressen=array("fl.lanzinger@gmail.com"); //Liste der Empfänger
$immersenden=true;
//$immersenden=false;
$text="";
$html="";
SetValue($warnungvorhanden_id,false);
$lat=json_decode(json_decode(IPS_GetConfiguration($location_id),true)["Location"],true)["latitude"];
$long=json_decode(json_decode(IPS_GetConfiguration($location_id),true)["Location"],true)["longitude"];
$crcalt=getvalue($crc_id);
$url="https://warnungen.zamg.at/wsapp/api/getWarningsForCoords?lon=".number_format($long,4,".",".")."&lat=".number_format($lat,4,".",".")."&lang=de";
$warnungen_json=file_get_contents($url);
$crc_warnungen=crc32($warnungen_json);
$warnungen=json_decode($warnungen_json,true);
$heute_beginn=mktime(0,0,0,date("m",time()),date("d",time()),date("Y",time()));
$heute_ende=mktime(23,59,0,date("m",time()),date("d",time()),date("Y",time()));
$morgen_beginn=$heute_beginn+(3600*24);
$morgen_ende=$heute_ende+(3600*24);
$meldungen=0;
$warnstufenum=0;
$html=$html."<html><head><link rel=\"stylesheet\" href=\"../skins/WwXSkin/webfront.css\"></head>";
$html=$html."<table class=\"wwx\" border=\"1\" style=\"width:100%;border-spacing: 0px;\">";
foreach ($warnungen["properties"]["warnings"] as $warnung)
{
/*
echo date("d.m.Y G:i:s",$warnung["properties"]["rawinfo"]["start"]).PHP_EOL;
echo date("d.m.Y G:i:s",$warnung["properties"]["rawinfo"]["end"]).PHP_EOL;
echo date("d.m.Y G:i:s",$heute_beginn).PHP_EOL;
echo date("d.m.Y G:i:s",$heute_ende).PHP_EOL;
echo date("d.m.Y G:i:s",$morgen_beginn).PHP_EOL;
echo date("d.m.Y G:i:s",$morgen_ende).PHP_EOL;
echo ($warnung["properties"]["rawinfo"]["start"]>=$heute_beginn and $warnung["properties"]["rawinfo"]["end"]<=$heute_ende).PHP_EOL;
echo ($warnung["properties"]["rawinfo"]["start"]>=$morgen_beginn and $warnung["properties"]["rawinfo"]["end"]<=$morgen_ende).PHP_EOL;
if (($warnung["properties"]["rawinfo"]["start"]>=$heute_beginn and $warnung["properties"]["rawinfo"]["end"]<=$heute_ende) or
($warnung["properties"]["rawinfo"]["start"]>=$morgen_beginn and $warnung["properties"]["rawinfo"]["end"]<=$morgen_ende))
*/
if (true)
{
$meldungen++;
$html=$html."<tr>";
$text="";
switch ($warnung["properties"]["warntypid"])
{
case 1: $warntyp="Sturm";break;
case 2: $warntyp="Regen";break;
case 3: $warntyp="Schnee";break;
case 4: $warntyp="Glatteis";break;
case 5: $warntyp="Unwetter";break;
case 6: $warntyp="Hitze";break;
case 7: $warntyp="Kälte";break;
}
switch ($warnung["properties"]["warnstufeid"])
{
case 1:$warnstufe="Gelb";$color="yellow"; break;
case 2:$warnstufe="Orange";$color="orange"; break;
case 3:$warnstufe="Rot";$color="red"; break;
}
$warnstufenum=max($warnstufenum,$warnung["properties"]["warnstufeid"]);
$text=$text."Warnung: ".$warntyp." - Stufe: ".$warnstufe.PHP_EOL;
$text=$text.$warnung["properties"]["begin"]." - ".$warnung["properties"]["end"].PHP_EOL;
$text=$text.$warnung["properties"]["text"].PHP_EOL;
$text=$text."Auswirkungen".PHP_EOL.$warnung["properties"]["auswirkungen"].PHP_EOL.PHP_EOL;
$text=$text."Empfehlungen".PHP_EOL.$warnung["properties"]["empfehlungen"].PHP_EOL.PHP_EOL;
$text=$text.$warnung["properties"]["meteotext"].PHP_EOL;
$text=$text."https://a33048f121722d0a8a8f12051779cfe9.ipmagic.de/#19358".PHP_EOL;
if ($warnstufe == "Orange" or $warnstufe == "Rot")
{
if (($crc_warnungen != $crcalt or $immersenden) and ($warnung["properties"]["warntypid"]==1 or $warnung["properties"]["warntypid"]==2 or $warnung["properties"]["warntypid"]==4 or $warnung["properties"]["warntypid"]==5))
{
foreach ($adressen as $adresse) SMTP_SendMailEx($smtp_id,$adresse,"Wetterwarnung - ".$warntyp." - Warnstufe: ".$warnstufe,$text);
}
SetValue($warnungvorhanden_id,true);
}
$html=$html.
"<td style='padding:0px;background-color:".$color."; '> </td>";
$html=$html.
"<td style='padding:5px;'><center>".$warntyp."</center></td>";
$html=$html.
"<td style='padding:5px;'><center>".$warnung["properties"]["begin"]."<br>".$warnung["properties"]["end"]."</center></td>";
$html=$html.
"<td style='padding:5px;'><center>".$warnung["properties"]["text"]."</center></td>";
$html=$html.
"<td style='padding:0px;'><ul>".str_replace("*","<li>",str_replace("\n","<br>",$warnung["properties"]["auswirkungen"]))."</ul></td>";
$html=$html.
"<td style='padding:0px;'><ul>".str_replace("*","<li>",str_replace("\n","<br>",$warnung["properties"]["empfehlungen"]))."</ul></td>";
$html=$html.
"<td style='padding:5px;'><center>".$warnung["properties"]["meteotext"]."</center></td>";
$html=$html."</tr>";
}
}
if($meldungen == 0)
{
$html=$html.
"<tr><td style='padding:0px;background-color:green;width:20px;'> </td><td colspan=7 style='padding:5px;'><center>Keine Warnungen vorhanden!</center></td></tr>";
}
setvalue($crc_id,$crc_warnungen);
$html=$html."<tr><td colspan=7><center><a target=_blank href='https://warnungen.zamg.at/wsapp/de/alle/gesamterzeitraum/'>Wetterwarnungen</a></center></tr></td>";
$html=$html."</table>";
setvalue($html_id,$html);
Ich habe die ID’s an deine angepasst. Sollte (die Betonung liegt auf "sollte) sofort bei dir funktionieren