Eigentlich hab ich die Frage hier gestellt, aber ich habs selber herausgefunden.
Aus aktuellem Anlass hier die Wetterwarnungen für den aktuellen Standort aus dem Location-Control
<?php
$location_id=46071;
$adressen=array("mailadresse1@gmail.com","mailadresse2@outlook.at");
$text="";
$text_wf="";
$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"];
$url="https://warnungen.zamg.at/wsapp/api/getWarningsForCoords?lon=".number_format($long,4,".",".")."&lat=".number_format($lat,4,".",".")."&lang=de";
$warnungen=json_decode(file_get_contents($url),true);
//$text=$text.$warnungen["properties"]["location"]["properties"]["name"].PHP_EOL;
foreach ($warnungen["properties"]["warnings"] as $warnung)
{
$text="";
switch ($warnung["properties"]["warntypid"])
{
case 1: $warntyp="Sturm";break;
case 2: $warntyp="Regen";break;
case 3: $warntyp="Schnee";break;
case 4: $warntyp="Blitzeis";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";break;
case 2:$warnstufe="Orange";break;
case 3:$warnstufe="Rot";break;
}
$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.$warnung["properties"]["auswirkungen"].PHP_EOL;
$text=$text.$warnung["properties"]["empfehlungen"].PHP_EOL;
$text=$text.$warnung["properties"]["meteotext"].PHP_EOL;
if ($warnstufe == "Orange" or $warnstufe == "Rot")
{
foreach ($adressen as $adresse) SMTP_SendMailEx(27953,$adresse,"Wetterwarnung - ".$warntyp." - Warnstufe: ".$warnstufe,$text);
}
$text_wf=$text_wf.$text;
}
setvalue(52228,$text_wf);
Mich interessiert im Moment erstmal nur der Text. Es ist sicher mit dem Json String noch ausbaufähig. Man könnte dann noch eine Warnung per Mail oder was weiß ich ab einer gewissen Stufe schicken. Vielleicht mach ich das noch.
Der Text kommt in eine Stringvariable mit dem Profil ~TextBlox.
Sieht dann so aus:
Falls es jamenden interessiert 
Die API ist hier beschrieben
https://openapi.hub.geosphere.at/warnapi/v1/
Ich hab das ganze vorallem in der Optik noch einmal überarbeitet. Außerdem wollte ich bei Warnungen nicht jede Stunde ein Mail bekommen. Ich habe das mit einem CRC des Ergebnisstrings gemacht. Hoffe das funktioniert. Mails werden nur dann gesendet wenn sich der Originalstring ändert. Sollte jemand eine bessere Idee haben, her damit
.
<?php
$location_id=46071; //ID der Locationinstanz
$html_id=52228; //HTML-Box Variable
$warnungvorhanden_id=14981; //Variable ob Warnungen (Orange, Rot) vorhanden sind
$crc_id=15986; //CRC Variable um eine Änderung in den Warnungen festzustellen
$smtp_id=27953; //ID der SMTP Instanz für den Mailversand
$adressen=array("adresse1@gmail.com","adresse2@outlook.at"); //Liste der Empfänger
$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);
$html="<table class=\"wwx\" border=\"1\" style=\"width:100%;border-spacing: 0px;\">";
foreach ($warnungen["properties"]["warnings"] as $warnung)
{
$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="Blitzeis";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;
}
$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;
if (($warnstufe == "Orange" or $warnstufe == "Rot") and $crc_warnungen != $crcalt)
{
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>";
}
setvalue($crc_id,$crc_warnungen);
$html=$html."</table>";
setvalue($html_id,$html);
1 „Gefällt mir“
Vielen Dank fürs teilen. Hab die .de Kollegen schon lange um ihren DWD beneidet.
Werde es demnächst mal ausprobieren.
zzt. hab in schöpferischer Sommerpause.
Bernhard
Servus
Konnte nicht widerstehen und hab es trotz Sommerpause ausprobiert.
Thumbs Up, funktionierte auf Anhieb.
Sehr schöne Basis für individuelle Anpassungen oder Aufhübschungen.
Nochmals Vielen Dank
Bernhard
Bitte gerne. Ich hab noch eine Variable „Wetterwarnung vorhanden“ eingefügt. Die wird in dem IF-Zweig ob Orange oder Rot gesetzt. Wenn die true ist, dann zeigen meine Ulanzis einen Warnhinweis vor den Wetterdaten an.
So wie du sagst, man kann das sicher erweitern.
Ups, ich sehe eben, dass diese Variable oben schon drinnen ist 
Was ich auch noch geändert habe, wenn keine Warnung vorhanden ist, eine entsprechende Zeile erstellt und den Link zur Karte eingefügt. Aber das ändert nichts an der Funktion