+ Antworten
Seite 1 von 5 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 46
  1. #1
    Registriert seit
    Sep 2012
    Beiträge
    135

    Standard DWD (Un)Wetterwarnung

    Hallo in die Runde,

    Ich habe mich auch mal ein bisschen mit den DWD Wetterdaten beschäftigt und wollte das Ergebnis mal hier teilen.

    Weitere Anregungen zur Verbesserung sind gerne Willkommen.

    Version 0.31 - FIx Variablen Profilerstellung
    Version 0.33 - (voruebergehender) Fix für IPS 4.0 bei Umlautproblemen
    Version 0.35 - Warnbilder an-/abschaltber
    Version 0.37 - weitere Warnungen hinzugefügt

    PHP-Code:
    <?

    # ******************************************
    # Wettervorhersage / Warnungen aus den Daten des DWD
    #
    # nach Anregungen aus dem Forum:
    # https://www.symcon.de/forum/threads/18782 /*[Objekt #18782 existiert nicht]*/-DWD-Unwetterwarnung-%28WFE-Mail-und-html%29?highlight=dwd+unwetterwarnung+wfe
    # https://www.symcon.de/forum/threads/29674 /*[Objekt #29674 existiert nicht]*/-DWD-Wetterwarnungen-JSON-Daten-auswerten
    #
    # Username: dzvo
    # Stand: v0.35 - 11.03.2016
    #
    # 0.31
    #  - Grosse Vorschaubilder des aktuellen Wetters eingefuegt (muss noch eventuell nachgearbeitet werden ;-) )
    #  - Fix VariablenProfil
    #
    # 0.33
    #     - Es gibt zusaetzlich Variablen fuer die externe Benutzung:
    #    - Warnlevel - die Zahl der hoechsten Warnstufe ueber alle Kreise
    #     - Warnevent - in kurzform zusammengefasste Infos zur Verarbeitung als Pushnachricht
    #       beide Variablen werden nur auf Aendrung aktualisiert damit nicht jedesmal bei gleichem Inhalt eine Nachricht gesente wird.
    #
    # 0.35
    #  - Ueber eine Variable ($warnbilder_anzeigen) definiert ob die Landkreis Warnbilder mit angezeigt werden sollen oder nicht.
    #
    # 0.36
    #  - Fehlerbeseitigung, wenn keine Warnmeldungen vorlagen
    #
    # 0.37
    #  - weitere Warnungen hinzugefügt
    #
    # Installation
    # ------------
    # Einfach Ausfuehren, die benoetigten Variablen werden automatisch angelegt.
    #
    #
    # Bekannte Fehler
    # ---------------
    # Da ich leider keine umfassende Uebersicht der einzelnen definitonen des aktuellen Wetters gefunden habe, kommt es vor das
    # bei neuen Wettervorkommnissen ab Zeile 410 / das Array weiter gefuellt werden muss. Gerne pfelge ich diese nach.
    # Unter Übersicht unter http://www.dwd.de/DE/wetter/warnungen_aktuell/objekt_einbindung/objekteinbindung.htm gibt es eine Uebersicht
    # der von DWD zur Verfuegung gestellen Kreise.
    #
    # Konfiguration
    # -------------
    # Hier eine beliebige Anzahl von Warnkreisen eintragen
    # Die passenden Regionsnamen findet man unter der Übersichtskarte nach dem ankicken der Region
    # http://wettergefahren.de/warnungen/warnsituation.html
    #

    $region = array ("Hansestadt Hamburg""Ostfrisische Küste""Nordfriesische Küste""Kreis Prignitz");


    # Anzahl der Warnbilder in einer Zeile
    $warnbilder_anzeigen true;
    $warnbilder_tabellenbreite 715;
    $warnbilder_anzahl_je_reihe 6;

    # Im Debug Modus das Script einfach 2 mal hintereinader ausfuehren.
    # Dadurch das dass Script nicht über dem Timer ausgeführt wird werden alle Orte / Warnungen ausgewertet, ob z.B. alle Billder geladen werden.
    # Wird das Script über den Timer ausgeführt werden nur die eigenen Orte geladen.

    $debug true;


    # *** Script Code *******************************

    // Datenquelle
    $json file_get_contents("http://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json");


    // fals die Daten nicht geladen werden koennen
    if( empty($json) || $json == "" ) { goto ende; }
    // Erst einmal die Enden Abschneiden
    $daten json_decode(substr($json24strlen($json) - 26 ),TRUE);


    // Daten aufloesen
    $daten_einzeln = array();
        if( !empty(
    $daten['warnings']) ) {
            foreach(
    $daten['warnings'] as $eintrag ) {
                        for ( 
    $i 0$i count($eintrag); $i ++ ) {
                            
    $daten_einzeln[] =
                                    array(
    "state" => utf8_decode($eintrag[$i]['state']),
                                            
    "stateShort" => $eintrag[$i]['stateShort'],
                                            
    "regionName" => utf8_decode($eintrag[$i]['regionName']),
                                            
    "description" => utf8_decode($eintrag[$i]['description']),
                                            
    "startTime" => date("d.m.Y H:i:s"substr($eintrag[$i]['start'], 010)),
                                            
    "endTime" => date("d.m.Y H:i:s"substr($eintrag[$i]['end'], 010)),
                                            
    "startUnix" => substr($eintrag[$i]['start'], 010),
                                            
    "endUnix" => substr($eintrag[$i]['end'], 010),
                                            
    "headline" => utf8_decode($eintrag[$i]['headline']),
                                            
    "event" => utf8_decode($eintrag[$i]['event']),
                                            
    "instruction" => utf8_decode($eintrag[$i]['instruction']),
                                            
    "altitudeStart" => $eintrag[$i]['altitudeStart'],
                                            
    "altitudeEnd" => $eintrag[$i]['altitudeEnd'],
                                            
    "type" => utf8_decode($eintrag[$i]['type']),
                                            
    "level" => $eintrag[$i]['level']
                                            );
                        }
            }
        }


    if (
    $debug && $_IPS['SENDER'] == "Execute" ) {
        
    $region = array ("");

            if (
    $debug && GetValue(CreateVariableByIdent($_IPS['SELF'], "Orte""Orte"3)) != "" ) {
            
    $region explode('"@"'GetValue(CreateVariableByIdent($_IPS['SELF'], "Orte""Orte"3)) );
            }
        }

    // gesuchte Daten auslesen
        
    for ($i=0$i<count($daten_einzeln); $i++) {

                
    // Nachschauen ob die gesuchten Kreise im JSON enthalten sind
                
    if( in_array$daten_einzeln[$i]["regionName"] , $region) ) {
                    
    // Region neu schreiben
                    
    $kreise[] = $daten_einzeln[$i];
                }

            
    // Debug auf alle Regionen abfragen
            
    if ( $debug ) {
                    
    // Region neu schreiben
                    
    $orte_export[] = $daten_einzeln[$i]["regionName"];
                }
        }

        
    // Debug ... alle aktuellen Orte einzeln rausschreiben

            
    if ($debug && GetValue(CreateVariableByIdent($_IPS['SELF'], "Orte""Orte"3)) == ""  && !empty($daten['warnings']) ) {
                
    $export "";
                    
    $result array_values(array_unique($orte_export));
                        for (
    $x=0$xcount($result) - 1$x++) {
                            
    $export .= $result[$x] . '"@"';
                        }

                       
    SetValue(CreateVariableByIdent($_IPS['SELF'], "Orte""Orte"3),  $export );

                    } else {
                    
    // Variable nach Import loeschen
                        
    IPS_DeleteVariable(CreateVariableByIdent($_IPS['SELF'], "Orte""Orte"3) );

                    }


      
    // weiter gehts im Normalprogramm


    // Array neu sortieren
    if ( !empty($kreise) ) {
            
    $kreise sortArrayByFields$kreise, array( "level" => SORT_DESC"type" => SORT_DESC"event" => SORT_DESC  )     );
    }

    // Warnlevel & Warnevent definieren
    $warnlevel0 0$warnlevel1 0$warnlevel2 0$warnlevel3 0$warnlevel4 0$warnlevel5 0;
    $warnevent "";

        for (
    $i=0; (!empty($kreise) && $i<count($kreise)); $i++) {

                        if (
    $kreise[$i]["level"] == ) {
                            
    $warnlevel1++;
                                
    $warnevent .= $kreise[$i]["level"] . "." $kreise[$i]["type"] . " - " $kreise[$i]["event"] . " - " $kreise[$i]["regionName"] . "\n";
                        }
                        if (
    $kreise[$i]["level"] == ) {
                            
    $warnlevel2++;
                                
    $warnevent .= $kreise[$i]["level"] . "." $kreise[$i]["type"] . " - " $kreise[$i]["event"] . " - " $kreise[$i]["regionName"] . "\n";
                        }
                        if (
    $kreise[$i]["level"] == ) {
                            
    $warnlevel3++;
                                
    $warnevent .= $kreise[$i]["level"] . "." $kreise[$i]["type"] . " - " $kreise[$i]["event"] . " - " $kreise[$i]["regionName"] . "\n";
                        }
                        if (
    $kreise[$i]["level"] == ) {
                            
    $warnlevel4++;
                                
    $warnevent .= $kreise[$i]["level"] . "." $kreise[$i]["type"] . " - " $kreise[$i]["event"] . " - " $kreise[$i]["regionName"] . "\n";
                        }
                        if (
    $kreise[$i]["level"] == ) {
                            
    $warnlevel5++;
                                
    $warnevent .= $kreise[$i]["level"] . "." $kreise[$i]["type"] . " - " $kreise[$i]["event"] . " - " $kreise[$i]["regionName"] . "\n";
                        }
                }



    // Warnevent ausgeben.
    if ( empty($warnevent) ) { $warnevent "Es sind keine Warnmeldungen vorhanden."; }

    // Warnlevelstufe generieren
    if ( $warnlevel0 >= ) { $level 0; } if ( $warnlevel1 >= ) { $level 1; } if ( $warnlevel2 >= ) { $level 2; } if ( $warnlevel3 >= ) { $level 3; } if ( $warnlevel4 >= ) { $level 4; } if ( $warnlevel5 >= ) { $level 5; }

    $inhaltkreis "";
    $hoehe "";
    $warnbilderlaender "";

        if ( 
    $warnlevel1 $warnlevel2 $warnlevel3 $warnlevel4 $warnlevel5  ) {
            for (
    $i=0$i<count($kreise); $i++) {

                        
    // eigene Zeile fuer die Hoehenangaben
                      
    if ( $kreise[$i]['altitudeStart'] != ""  ) {
                            
    $hoehe =    "<tr><td style='padding-left: 5px;'>ab: " $kreise[$i]['altitudeStart'] . "m H&ouml;he</td></tr>";
                      }
                      if ( 
    $kreise[$i]['altitudeEnd'] != ""  ) {
                            
    $hoehe =    "<tr><td style='padding-left: 5px;'>bis zu einer H&ouml;he von: " $kreise[$i]['altitudeStart'] . "m </td></tr>";
                      }

                
    $inhaltkreis .= "
                        <table border='0' width='650px'>
                        <tr>
                        <td rowspan='5' style='width: 15px; background-" 
    farbe($kreise[$i]["level"]) . " '>&nbsp;</td>

                        <td style='padding-left: 5px; " 
    farbe($kreise[$i]["level"]) . " ' ><b>" $kreise[$i]['headline'] . "";

                        if (
    $debug && $_IPS['SENDER'] == "Execute" ) {
                            
    $inhaltkreis .= " <br>(" $kreise[$i]["event"] . " - " $kreise[$i]["state"] . ")";

                        }

                
    $inhaltkreis .= "</b></td>
                        </tr>

                        <tr><td style='padding-left: 5px;' >" 
    $kreise[$i]["level"] . "<font size='4'>Meldung f&uuml;r " $kreise[$i]["regionName"] . "</font></td></tr>

                        <tr><td style='padding-left: 5px;'>Zeitraum von: " 
    $kreise[$i]['startTime'] . " bis: " $kreise[$i]['endTime'] . "
                                                                        " 
    $hoehe "</td></tr>
                        <tr><td style='padding-left: 5px;'><font size='3'>" 
    $kreise[$i]['description'] . " </font></td></tr>

                        </table>

                  <div style='height: 5px;'>&nbsp;</div>
                    "
    ;

                if (
    $warnbilder_anzeigen) {
                     
    $warnbilderlaender .= warnuebersicht($kreise[$i]["state"], $kreise[$i]["event"] );
                }

            }
        } else {
            
    $inhaltkreis .= "
                        <table border='0' width='650px' >
                        <tr>
                        <td rowspan='1' style='width: 15px; background-" 
    farbe(0) . " '>&nbsp;</td>

                        <td style='padding-left: 5px; " 
    farbe(0) . " ' >" $warnevent "</td>
                        </tr>
                        <tr height='450px'>
                           <td>
                           &nbsp;
                            </td>
                        </tr>
                        </table>
                        "
    ;
        }






    $output "

    <script type='text/javascript' >

    function applyVisibility(obj_name, new_value) {
           document.getElementById(obj_name).style.zindex=new_value;
        }
    </script>

    <style type='text/css'>
    a.menue, a.menue:link, a.menue:visited, a.menue:active {
        position: relative;
        text-decoration: none;
        padding: 0px;
        margin: 0px;
    }

    a.menue:hover {
        z-index:1000;
        background: transparent;
        padding: 0px;
        margin: 0px;
    }

    a.menue span {
        display: none;
        text-decoration: none;
    }

    a.menue:hover span {
        z-index:1;
        display: block;
        position: absolute;
        width:300px; height:133px;

    }

    </style>



    <table border='0' align='center' style='width: " 
    $warnbilder_tabellenbreite "px;'>
        <tr>
           <td>Stand: " 
    date("d.m.Y"substr($json3210 )) . " um " date("H:i:s"substr($json3210 )) . "
                <span style='float: right; widht: 100%; '>Es sind " 
    . ( $warnlevel1 $warnlevel2 $warnlevel3 $warnlevel4 $warnlevel5) . " Meldungen vorhanden.</span>
            </td>
        </tr>

        <tr>
           <td>

                    <table border='0' width='100%' align='center'>
                       <tr align='center' >
                          <td width=20%  style='color: #000000; background-" 
    farbe(1) . " '><b> " $warnlevel1 " </b></td>
                          <td width=20%  style='color: #000000; background-" 
    farbe(2) . " '><b> " $warnlevel2 " </b></td>
                          <td width=20%  style='color: #000000; background-" 
    farbe(3) . " '><b> " $warnlevel3 " </b></td>
                          <td width=20%  style='color: #000000; background-" 
    farbe(4) . " '><b> " $warnlevel4 " </b></td>
                            <td width=20%  style='color: #000000; background-" 
    farbe(5) . " '><b> " $warnlevel5 " </b></td>
                        </tr>
                    </table>

            </td>
        </tr>
        <tr>
           <td>

              <!---
              <div style='background-color: #aaaaaa; height: 200px; '>
              http://www.wettergefahren.de/DWD/wetter/radar/Radarfilm_WEB_DL.gif
                //-->

                <a href='#' class='menue'><img src='http://www.niederschlagsradar.de/image.ashx?type=loop1stunde&jaar=&regio=homepage' width='216px' height='200px'>
                <span style='top: -100px; left: 70px;'><img src='http://www.niederschlagsradar.de/image.ashx?type=loop1stunde&jaar=&regio=homepage' id='bild' onmouseout='javascript: applyVisibility(\"bild\", \"-100\");'></span></a>
             <a href='#' class='menue'><img src='http://www.dwd.de/DWD/wetter/sat/bilder/meteosat/stc/METE_STC_wwwEuropa8km_aktuell_m00s.png' width='267px' height='200px'>
                <span style='top: -100px; left: -260px;'><img src='http://www.dwd.de/DWD/wetter/sat/bilder/meteosat/stc/METE_STC_wwwEuropa8km_aktuell_m00s.png'></span></a>
                <a href='#' class='menue'><img src='http://www.wettergefahren.de/DWD/wetter/wv_allg/deutschland/bilder/Deutschland.jpg' width='216px' height='200px'>
                <span style='top: -100px; left: -420px;'><img src='http://www.wettergefahren.de/DWD/wetter/wv_allg/deutschland/bilder/Deutschland.jpg'></span></a>

                <!--
                </div>
                //-->

            </td>
        </tr>

        <tr>
           <td>
                            " 
    $warnbilderlaender "


                  <div style='height: 5px;'>&nbsp;</div>

           </td>
         </tr>

        <tr>
           <td>
             
    $inhaltkreis
            </td>
        </tr>
    </table>
    </div>
    "
    ;



    // Varablen anlegen und Werte schreiben
    // Aktualisierung
    SetValue(CreateVariableByIdent($_IPS['SELF'], "Datenbestand""Datenbestand"3),  date("d.m.Y H:i:s"substr($json3210 )) );
    // Webfront Output
    SetValue(CreateVariableByIdent($_IPS['SELF'], "WFOutput""WFOutput"3),  $output );
    IPS_SetVariableCustomProfile(CreateVariableByIdent($_IPS['SELF'], "WFOutput""WFOutput"3), "~HTMLBox");
    // Level & Varablenprofil
    $id_level CreateVariableByIdent($_IPS['SELF'], "Warnlevel""Warnlevel"1);

    // Profil anlegen
        
    if (IPS_VariableProfileExists("Script.WetterWarnstatus")) {
            
    //altes Pofil loeschen und neu anlegen
                
    IPS_DeleteVariableProfile("Script.WetterWarnstatus");
             
    variablenprofil("Script.WetterWarnstatus");
              
    IPS_SetVariableCustomProfileCreateVariableByIdent($_IPS['SELF'], "Warnlevel""Warnlevel"1) , "Script.WetterWarnstatus");
        } else {
              
    variablenprofil("Script.WetterWarnstatus");
              
    IPS_SetVariableCustomProfileCreateVariableByIdent($_IPS['SELF'], "Warnlevel""Warnlevel"1) , "Script.WetterWarnstatus");
        }

        if ( 
    GetValue($id_level) != $level ) {
            
    SetValue(CreateVariableByIdent($_IPS['SELF'], "Warnlevel""Warnlevel"1),  $level );
        }

    //Warnevent
    $id_warnevent CreateVariableByIdent($_IPS['SELF'], "Warnevent""Warnevent"3);
        if( 
    GetValue($id_warnevent) != $warnevent) {
            
    SetValue(CreateVariableByIdent($_IPS['SELF'], "Warnevent""Warnevent"3),  $warnevent );
            
    IPS_SetVariableCustomProfile(CreateVariableByIdent($_IPS['SELF'], "Warnevent""Warnevent"3), "~TextBox");
        }






    function 
    farbe($warnlevel) {

        
    $warnfarbe = array("color: #C5E566; "// Es ist keine amtliche Warnung aktiv (Grün)
                                 
    "color: #E0E0E0; background-image: repeating-linear-gradient(135deg, transparent, transparent 5px, rgba(229,57,57,.8) 5px, rgba(229,57,57,.8) 8px); "// Vorabinformation Unwetter (schraffiert)
                                 
    "color: #FFFF00; "// Amtliche Wetterwarnung (Gelb)
                                 
    "color: #FA9600; "// Amtliche Warnung vor markantem Wetter (Orange/Ocker)
                                 
    "color: #E53935; "// Amtliche Unwetterwarnung (Rot)
                                 
    "color: #AF0064; "// Amtliche Warnung vor extremem Unwetter (Dunkelrot)
                                 
    "color: #FE68FE; "// Hitze- oder UV-Warnung (Violett)
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    "color: #cc99ff; ",
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    "",
                                 
    // aus unerfindlichen Gründen ist der UV Index 20
                                 
    "color: #fb66fc; "// Hitze- oder UV-Warnung (Violett)
                                 
    );

        return 
    $warnfarbe[$warnlevel];

    }



    function 
    warnuebersicht($bundesland$warnevent ) {
        global 
    $warnbilder_anzahl_je_reihe;
        global 
    $warnbilder_tabellenbreite;

    $bl = array ("Baden-Württemberg" => "baw""Bayern" => "bay""Berlin" => "bbb""Brandenburg" => "bbb""Bremen" => "nib""Hamburg" => "shh""Hessen" => "hes""Mecklenburg-Vorpommern" => "mvp""Niedersachsen" => "nib""Nordrhein-Westfalen" => "nrw""Rheinland-Pfalz" => "rps""Saarland" => "rps""Sachsen" => "sac""Sachsen-Anhalt" => "saa""Schleswig-Holstein" => "shh""Thüringen" => "thu",
                 
    "baden-w?rttemberg" => "baw""bayern" => "bay""berlin" => "bbb""brandenburg" => "bbb""bremen" => "nib""hamburg" => "shh""hessen" => "hes""mecklenburg-vorpommern" => "mvp""niedersachsen" => "nib""nordrhein-westfalen" => "nrw""rheinland-pfalz" => "rps""saarland" => "rps""sachsen" => "sac""sachsen-anhalt" => "saa""schleswig-holstein" => "shh""th?ringen" => "thu");

    $wk = array (

                        
    // Darauf achten das alles klein geschrieben ist - gegebenen Fall ist die Liste zu ergaenzen
                        // Übersicht unter http://www.dwd.de/DE/wetter/warnungen_aktuell/objekt_einbindung/objekteinbindung.htm

                        
    "gewitter" => "gewitter",
                        
    "starkregen" => "regen",
                        
    "dauerregen" => "regen",
                        
    "leichter schneefall" => "schnee",
                        
    "schneefall" => "schnee",
                        
    "wind" => "sturm",
                        
    "böen" => "sturm",
                           
    "b?en" => "sturm",
                        
    "windböen" => "sturm",
                           
    "windb?en" => "sturm",
                        
    "starkwind" => "sturm",
                        
    "sturm" => "sturm",
                        
    "sturmböen" => "sturm",
                           
    "sturmb?en" => "sturm",
                        
    "schwere sturmböen" => "sturm",
                            
    "schwere sturmb?en" => "sturm",
                        
    "orkanböen" => "sturm",
                           
    "orkanb?en" => "sturm",
                        
    "orkan" => "sturm",
                        
    "orkanartige böen" => "sturm",
                           
    "orkanartige b?en" => "sturm",
                   
    "starkes gewitter" => "sturm",
                   
    "starkes gewitter" => "gewitter",
                   
    "ergiebiger dauerregen" => "regen",
                   
    "STARKES GEWITTER" => "sturm",
                   
    "schweres gewitter mit extrem heftigem starkregen und hagel" => "sturm",
                   
    "schweres gewitter mit heftigem starkregen und hagel"  => "sturm",
                   
    "SCHWERES GEWITTER mit HEFTIGEM STARKREGEN und HAGEL" => "sturm",
                        
    "nebel" => "nebel",
                        
    "frost" => "frost",
                        
    "glätte" => "glatteis",
                           
    "gl?tte" => "glatteis",
                        
    "glatteis" => "glatteis",
                        
    "tauwetter" => "tauwetter",
                        
    "hitze" => "hitze",
                        
    "uv-index" => "uv");

    $daten ="";
    #$daten .= "<div><img src='http://www.dwd.de/DWD/warnungen/warnapp/json/warning_map_" . $bl[$bundesland] . "_" . $wk[mb_strtolower($warnevent)] . ".png'></div>\n";

    $daten .= "<img src='http://www.dwd.de/DWD/warnungen/warnapp/json/warning_map_" $bl[strtolower_utf8($bundesland)] . "_" $wk[strtolower_utf8($warnevent)] . ".png' width='" . ( ($warnbilder_tabellenbreite 3) / $warnbilder_anzahl_je_reihe) . "px' height='". ((($warnbilder_tabellenbreite 3) / $warnbilder_anzahl_je_reihe) * 1.25)  . "px' ></div>";


    return 
    $daten;


    }

    function 
    strtolower_utf8($string) {

    #setlocale(LC_CTYPE, 'de_DE@euro', 'de_DE', 'de', 'ge');

    $result utf8_decode($string);
    $result strtolower($result);
    $result utf8_encode($result);

    return 
    $result;

    }



    function 
    toAscii($str) {
        
    $clean preg_replace("/[^a-zA-Z0-9\/_|+ -]/"''$str);
        
    $clean strtolower(trim($clean'-'));
        
    $clean preg_replace("/[\/_|+ -]+/"'-'$clean);

        return 
    $clean;
    }

    function 
    CreateVariableByIdent($id$ident$name$type)
    {
         
    $vid = @IPS_GetObjectIDByIdent($ident$id);
         if(
    $vid === false)
         {
             
    $vid IPS_CreateVariable($type);
             
    IPS_SetParent($vid$id);
             
    IPS_SetName($vid$name);
             
    IPS_SetIdent($vid$ident);
         }
         return 
    $vid;
    }

    function 
    sortArrayByFields($arr$fields)
    {
        
    $sortFields = array();
        
    $args       = array();

        foreach (
    $arr as $key => $row) {
            foreach (
    $fields as $field => $order) {
                
    $sortFields[$field][$key] = $row[$field];
            }
        }

        foreach (
    $fields as $field => $order) {
            
    $args[] = $sortFields[$field];

            if (
    is_array($order)) {
                foreach (
    $order as $pt) {
                    
    $args[$pt];
                }
            } else {
                
    $args[] = $order;
            }
        }

        
    $args[] = &$arr;
            
    call_user_func_array('array_multisort'$args);
        return 
    $arr;
    }


    function 
    variablenprofil ($profilname) {

        
    IPS_CreateVariableProfile($profilname1);
            
    IPS_SetVariableProfileValues($profilname051);
                
    IPS_SetVariableProfileAssociation($profilname0"Level 0"""0xC5E566);
                
    IPS_SetVariableProfileAssociation($profilname1"Level 1"""0xE0E0E0);
                
    IPS_SetVariableProfileAssociation($profilname2"Level 2"""0xFFFF00);
                
    IPS_SetVariableProfileAssociation($profilname3"Level 3"""0xFA9600);
                
    IPS_SetVariableProfileAssociation($profilname4"Level 4"""0xE53935);
                
    IPS_SetVariableProfileAssociation($profilname5"Level 5"""0xAF0064);
                
    IPS_SetVariableProfileAssociation($profilname5"Level 6"""0xFE68FE);

    }


    // Script Timer installieren
    IPS_SetScriptTimer($IPS_SELF600);


    ende:


    ?>
    Name:  wetterarnung.jpg
Hits: 1566
Größe:  156.8 KB
    Geändert von dzvo (17.09.16 um 13:12 Uhr) Grund: Update

  2. #2
    Registriert seit
    Feb 2010
    Beiträge
    221

    Hi dzvo,

    danke für dein Script! Scheint super zu funktionieren. Muss das ganze jetzt nur noch an einen Push Versand koppeln.

    Liebe Grüße Sebastan

  3. #3
    Registriert seit
    Dec 2013
    Ort
    Sauerland
    Beiträge
    492

    Notice: Undefined index: gl?tte in [Smarthome\W27\Scripte\Wetter\DWD\Warnmeldungen] on line 354

  4. #4
    Registriert seit
    Jul 2005
    Ort
    Schwanewede/Niedersachsen
    Beiträge
    1,802

    Hallo,

    erhalte diese Meldung

    PHP-Code:
    Warning:  Profil mit Namen "Script.WetterWarnstatus" existiert nicht in [Wetter aktuell\Unwetterwarnungen\DWD Wetterwarnungen\Unwetterwarnungenon line 291 
    Gruss
    Horst

    IP-Symcon 5.0 IPS-868, FS20, HM, HUE, Plugwise

  5. #5
    Registriert seit
    Sep 2012
    Beiträge
    135

    Zitat Zitat von Gosef Beitrag anzeigen
    Notice: Undefined index: gl?tte in [Smarthome\W27\Scripte\Wetter\DWD\Warnmeldungen] on line 354
    Da ich leider keine umfassende Uebersicht der einzelnen definitonen des aktuellen Wetters gefunden habe, kommt es vor das bei neuen Wettervorkommnissen ab Zeile 410 / das Array weiter gefuellt werden muss. Gerne pflege ich diese nach.
    Unter Uebersicht unter Wetter und Klima - Deutscher Wetterdienst - Warnungen aktuell - Ihr Homepagewetter gibt es eine Uebersicht der von DWD zur Verfuegung gestellen Kreise.


    Zitat Zitat von hbraun Beitrag anzeigen
    Hallo,

    erhalte diese Meldung

    PHP-Code:
    Warning:  Profil mit Namen "Script.WetterWarnstatus" existiert nicht in [Wetter aktuell\Unwetterwarnungen\DWD Wetterwarnungen\Unwetterwarnungenon line 291 
    ist gefixt. Wird kontolliert und das VariablenProfil neu angelegt.

    Gruß
    Thomas
    Geändert von dzvo (24.02.16 um 21:56 Uhr)

  6. #6

    Bei mir generiert er als eine Bild URL folgendes:

    404 Not Found

    Dieses Bild gibt es aber wohl nicht auf dem DWD Server:

    Not Found

    The requested URL /DWD/warnungen/warnapp/json/ was not found on this server.


    Die anderen URLs funktionieren:

    http://www.dwd.de/DWD/warnungen/warn..._bay_frost.png
    http://www.dwd.de/DWD/warnungen/warn..._nib_frost.png


    EDIT:

    mit
    PHP-Code:
     "gl?tte" => 'glatteis'
    in Zeile 344gehts dann.
    Geändert von wupperi (25.02.16 um 08:49 Uhr) Grund: typo
    IPS Ninja \\ Webfront auf 15" ELO Touch \\ z-wave \\ IPS-868 \\ FS20 \\ 1-wire \\ Oregon WMRS200 \\ Mediaportal \\ 4x Squeezebox \\ SONOS \\ Denon AVR1912 \\ Kostal Piko 5.5 \\ 7x Vivotek \\ 1x INStar \\ Gardena R40Li mit Robonect HX30
    Mehr auf www.diewuppers.de

  7. #7
    Registriert seit
    Dec 2013
    Ort
    Sauerland
    Beiträge
    492

    Zeile 344


  8. #8

    Danke, korrigiert.
    IPS Ninja \\ Webfront auf 15" ELO Touch \\ z-wave \\ IPS-868 \\ FS20 \\ 1-wire \\ Oregon WMRS200 \\ Mediaportal \\ 4x Squeezebox \\ SONOS \\ Denon AVR1912 \\ Kostal Piko 5.5 \\ 7x Vivotek \\ 1x INStar \\ Gardena R40Li mit Robonect HX30
    Mehr auf www.diewuppers.de

  9. #9
    Registriert seit
    Sep 2012
    Beiträge
    135

    Moin,

    eigentlich stand "glätte" => "glatteis", ja schon drinne.

    Und die Daten sollen auch vom DWD richtig (En)Codiert sein, sodas das "gl?tte" im zu vergleichenden String nicht vorkommen sollte.

    ...

    Grüße
    Thomas

  10. #10
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,278

    Bzgl. "Gl?tte" sag ich nur >> IPS 4 und Umlaute

    Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

Ähnliche Themen

  1. DWD im WebFront
    Von ColdIce im Forum WebFront
    Antworten: 5
    Letzter Beitrag: 19.08.13, 09:40
  2. DWD Wetter
    Von _muckel_ im Forum Mobile (iOS/Android)
    Antworten: 3
    Letzter Beitrag: 25.11.12, 11:49
  3. Wetterwarnung vom DWD
    Von weatherman im Forum Skripte, PHP, SQL
    Antworten: 1
    Letzter Beitrag: 14.01.12, 15:40
  4. DWD Warnmodul
    Von Raketenschnecke im Forum Off Topic
    Antworten: 0
    Letzter Beitrag: 04.11.11, 19:15
  5. Wetterwarnung
    Von steiner im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 79
    Letzter Beitrag: 09.06.10, 12:03

Stichworte