Regenradar von morgenwirdes.de

Genau, bis jetzt ist es nicht möglich die Daten für die Schweiz abzurufen.

Vielleicht über den Tellerrand schaun, ösis sind auch da! Vielleicht kann man da ja was machen.
Mfg
Maxx

Für das Regenradar GIF (und alle weiteren Regenradar bezogenen APIs) solltet ihr auf diese Daten zugreifen können(sofern diese existieren), wenn ihr eure Koordination benutzt. Die Idee mit einer neuen Karte ist nicht schlecht und ich werde versuchen, eine neue Karte zu bekommen.

Hallo Jonas. Der Pointer und die Daten stimmen, aber der ist natürlich im Niemandsland… Soweit schon alles gut.

Ich stelle den Zahlenstrahl jetzt auch als SVG zur Verfügung https://morgenwirdes.de/api/v3/bar.php?plz=84051&delay=0&type=0 . Sollte die Einbindung als SVG nicht funktionieren, kann ich auch PNGs oder JPGs erstellen. delay steht für die Anzahl an Tagen in der Zukunft und type ist 0 für Niederschlagswahrscheinlichkeit und 1 für Niederschlagsmenge.

2 „Gefällt mir“

Sehr cool, Danke weiter so :slight_smile:

Vielen lieben Dank Jonas!
Ich habe die letzten Tage viel gebastelt, um unser altes Modul durch deine Daten zu ersetzen.
Wirklich Klasse! Auch das animierte Gif und der Zeitstrahl helfen mir enorm!
Vielen, vielen Dank!

Wobei ich für den Zeitstrahl wohl eher im Konjunktiv schreiben muss… das Einbinden in das Webfront habe ich noch nicht geschafft. :wink: Liegt aber sicher nur an meinem fehlenden Html Wissen. :wink:

das wäre definitiv einfacher für die Anwendung ;-), runterladen, lokal als Mediaobjekt speichern und zyklisch aktualisieren. Die Aktualisierung könntest du ja auch nur alle x Minuten bereitstellen, dann muss dein Server nicht jeden Abruf rendern.

Für SVG wäre die ImageMagick Bibliothek notwendig, dann kann man lokal umwandeln.

Danke für die Information. Ich habe schon geahnt, das SVGs nicht optimal sind. Dann werde ich wohl in den nächsten Tagen einen PNG/JPG renderer schreiben.

Warum? Browser können SVG direkt anzeigen. Die Apps können es auch. Oder was hast du damit vor?

Die Konsole, das Frontend von SymOs und einiges aus dem WebFront enthalten auch SVGs.
Michael

Ich vermute fast, dass die Meisten hier drüber stolpern, dass die SVG, so wie Sie von Jonas kommt, eben nicht direkt im Browser geöffnet/angezeigt werden kann. Da kriegste erstmal nur den SVG-Quelltext, also XML, zu lesen. Im Gegensatz zu einer JPG, welche im Browser direkt das Bild zeigt.

Jonas’ SVG muss entweder über ein IMG oder iFrame-Tag eingebunden werden, oder einfach um einen HTML-Header+Footer angereichert werden, etwa so:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <title>HTML/SVG-Beispiel</title>
</head>
<body>

<svg height="100%" width="100%" viewBox="-2 0 2404 214"><rect x="0" y="60" width="2400" height="100" style="fill:white;stroke-width:4;stroke:#000000"/><text fill="#000000" x="0" y="50" font-size="46">22:00</text><text fill="#000000" x="480" y="50" font-size="46">04:00</text><text fill="#000000" x="1090" y="50" font-size="46">10:00</text><text fill="#000000" x="1680" y="50" font-size="46">16:00</text><text fill="#000000" x="2260" y="50" font-size="46">22:00</text><rect x="0" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.31"/><rect x="100" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.3"/><rect x="200" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.27"/><rect x="300" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.27"/><rect x="400" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.29"/><rect x="500" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.3"/><rect x="600" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.36"/><rect x="700" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.4"/><rect x="800" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.42"/><rect x="900" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.45"/><rect x="1000" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.45"/><rect x="1100" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.44"/><rect x="1200" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.44"/><rect x="1300" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.48"/><rect x="1400" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.52"/><rect x="1500" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.57"/><rect x="1600" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.58"/><rect x="1700" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.55"/><rect x="1800" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.53"/><rect x="1900" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.49"/><rect x="2000" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.47"/><rect x="2100" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.45"/><rect x="2200" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.41"/><rect x="2300" y="60" width="100" height="100" style="fill:blue;fill-opacity:0.4"/><text fill="#000000" x="1632" y="202" font-size="40">0%</text><text fill="#000000" x="1942" y="202" font-size="40">100%</text><rect x="1714" y="166" width="40" height="40" style="fill:white"/><rect x="1714" y="166" width="40" height="40" style="fill:blue;fill-opacity:0.2"/><rect x="1754" y="166" width="40" height="40" style="fill:white"/><rect x="1754" y="166" width="40" height="40" style="fill:blue;fill-opacity:0.4"/><rect x="1794" y="166" width="40" height="40" style="fill:white"/><rect x="1794" y="166" width="40" height="40" style="fill:blue;fill-opacity:0.6"/><rect x="1834" y="166" width="40" height="40" style="fill:white"/><rect x="1834" y="166" width="40" height="40" style="fill:blue;fill-opacity:0.8"/><rect x="1874" y="166" width="40" height="40" style="fill:white"/><rect x="1874" y="166" width="40" height="40" style="fill:blue;fill-opacity:1"/><text fill="#000000" x="64" y="202" font-size="40">Regenrisiko Vorhersage jetzt ⇾ +24h </text></svg>


  
</body>
</html>

…und weil gerade im Discord nochmal die Frage aufkam, wie man denn die von Jonas genannten URLs für die Radarbilder sinnvoll in IPS Webfront oder auch IPSview einbindet:

In der IPS-Console eine Variable anlegen, Typ String, unter Profil ~HTMLbox auswählen und als Inhalt z.B. Folgendes in die Variable schreiben:

<iframe title="Regenradar" src="https://morgenwirdes.de/api/v3/gif3.php?lat=49&long=12&delay=50&dark=0&type=1" style="position:absolute;top:0;left:0; width:100%;height:100%;" scrolling="no" frameborder="0"></iframe>

Diese Variable zeigt nun im Webfront oder IPSview ohne Weiteres zutun das Regenradar an.

Je nach Anwendung mag es in anderen Fällen allerdings sinnvoller sein, die Dateien richtig downzuloaden und z.B. als Medienobjekt zu speichern.

Ja das ist wohl war.
Meinte mit direkt auch nur das man es nicht aufwendig in ein pixelbasiertes Bild plotten muß, sondern dass die Browser SVG selber rendern und darstellen können.
Michael

1 „Gefällt mir“

Ich finde euren Einsatz hier echt cool!
@jonas, danke für diese Klasse API.

@ika, danke für deinen Einsatz mit den Scripten und dem Modul. Wollen wir nicht daraus ein cooles Modul bauen? Was auch direkt die Wettervorhersage und alles weitere enthält.

Grüße,
Kai

Sehr gerne, da brauche ich aber Deine/Eure Unterstützung; siehe Discord! Wäre ja mein erstes Modul. Zeigt mir doch mal, wie wir unter Github aus sowas ne coole Gruppenarbeit machen!

Ich muss mal schauen, wann ich Zeit dafür finde.
Dann forke ich das mal und baue eine Kleinigkeit ein.

Grüße,
Kai

Falls es jemandem hilft…
Nicht schön, aber es funktioniert.
Im oberen Teil kann man die Textwunschfarbe auswählen und die Breite fürs Webfront.

<?php

$Colour = 'FFFFFF';     //HEX
$Width  = 1000;         //Pixels
$Plz    = 61273;        //Postleitzahl

###################

$svg = file_get_contents("https://morgenwirdes.de/api/v3/bar.php?plz=".$Plz."&delay=0&type=0");

//Text in Wunschfarbe
$svg = str_replace('<text fill="#000000"', '<text fill="#'.$Colour.'"', $svg);
//Größe ändern
$svg = str_replace('<svg height="100%" width="100%"', '<svg height="100%" width="'.$Width.'px"', $svg);

$html = "";
$html = $html.'<!DOCTYPE html>';
$html = $html.'<html>';
$html = $html.'<head>';
$html = $html.'<meta charset="UTF-8" />';
$html = $html.'<title>HTML/SVG-Beispiel</title>';
$html = $html.'</head>';
$html = $html.'<body>';
$html = $html.$svg;
$html = $html.'/<body>';
$html = $html.'/<html>';

SetValue(FC_Variables(IPS_GetParent($_IPS['SELF']), 'Zeitstrahl', 3, '~HTMLBox'), $html);



function FC_Variables($id, $name, $type, $profile = "")
{
    # type: 0=boolean, 1 = integer, 2 = float, 3 = string;
    global $IPS_SELF;
    $vid = @IPS_GetObjectIDByIdent($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetIdent($vid, $name);
        IPS_SetName($vid, $name);
        if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
    }
    IPS_SetName($vid, $name);
    if($profile !== "") IPS_SetVariableCustomProfile($vid, $profile);
    return $vid;
}

@jonas Könntest du evtl auch einen Zeitstrahl für die Regenmenge zur Verfügung stellen? Aktuell ist es ja die Wahrscheinlichkeit. :wink: Daaaaaaanke

und… kann es sein, dass bei dir gerade „was hängt“? Die Regenradar Zeit hängt gerade noch auf 07:35h…

Hat er schon! Siehe weiter oben in seiner Beschreibung, du musst in der URL lediglich den „type=1“ stellen, dann bekommst du die Regenmenge.

Ein „Hängen“ von morgenwirdes.de bzw. der API kann ich gerade nicht bestätigen. Läuft seit Tagen knochenzuverlässig. Vielleicht hat dein Skript nicht zyklisch aktualisiert?