Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Unwetterwarnung für Österreich bzw. Europa ?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Unwetterwarnung für Österreich bzw. Europa ?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
123 Beiträge 23 Kommentatoren 24.5k Aufrufe 13 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A Offline
    A Offline
    Alveran
    schrieb am zuletzt editiert von
    #28

    var debuglevel = 4;

    var debugchannel = 'info';

    function dwmlog( message, level, channel) {

    if (typeof channel === 'undefined') {

    channel = debugchannel;

    }

    if ( typeof level === 'undefined')

    {

    level = debuglevel;

    }

    if ( debuglevel >= level ) {

    log (message, channel );

    }

    }

    var AdapterId = "javascript."+instance;

    var ChannelId = "UWZ";

    var forceInitStates = false;

    var numOfWarnings = 3;

    var url='http://feed.alertspro.meteogroup.com/Al … XXXAREAXXX';

    /********************* Hier die Warnzellen-Id's eintragen *****************************/

    var warncellid = ['UWZDE07548','UWZDE77756'];

    /**************************************************************************************/

    var UWZTypesArray=["n/a","unbekannt","Sturm/Orkan","Schneefall","Starkregen","Extremfrost","Waldbrandgefahr","Gewitter","Glätte","Hitze","Glatteisregen","Bodenfrost"];

    function createStates(n){

    var AreaChannelID = null;

    for (var j=0; j <warncellid.length; j++)/{<br="">AreaChannelId=ChannelId+"."+warncellid[j];

    for (var i=0; i <n; i++)/{<br="">createState(AreaChannelId+".warning."+i+".ShortText","",forceInitStates,{type: 'string'});

    createState(AreaChannelId+".warning."+i+".LongText","",forceInitStates,{type: 'string'});

    createState(AreaChannelId+".warning."+i+".object","",forceInitStates,{type: 'string'});

    createState(AreaChannelId+".warning."+i+".begin","",forceInitStates,{type: 'string'});

    createState(AreaChannelId+".warning."+i+".end","",forceInitStates,{type: 'string'});

    createState(AreaChannelId+".warning."+i+".severity",0,forceInitStates,{type: 'number'});

    createState(AreaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:UWZTypesArray});

    createState(AreaChannelId+".warning."+i+".uwzLevel",0,forceInitStates,{min:0, max:5, type: 'number'});

    createState(AreaChannelId+".warning."+i+".uwzColor",0,forceInitStates,{type:'number'});

    createState(AreaChannelId+".warning."+i+".HTMLShort","",forceInitStates,{type: 'string'});

    createState(AreaChannelId+".warning."+i+".HTMLLong","",forceInitStates,{type: 'string'});

    }

    }

    }

    function getUWZLevel (warnName){

    var result = -1; // -1 is an error!

    var alert = warnName.split("_");

    var colors = ["green","darkgreen","yellow","orange","red","violet"];

    if (alert[0]=="notice") { result = 1; }

    else if (alert[1] == "forewarn") { result = 2; }

    else {

    result = colors.indexOf(alert[2]);

    }

    return result;

    }

    function getUWZUrgency (warnName){

    var result = 0;

    var alert = warnName.split("_");

    if (alert[1] == "forewarn") {

    result = 1;

    }

    else {

    result = 2; // immediate;

    }

    return result;

    }

    function getLevelColor(uwzLevel) {

    var uwzColor = [

    0x00ff00, // 0 - Grün

    0x009b00, // 1 - Dunkelgrün

    0xffff00, // 2 - Gelb Wetterwarnungen (Stufe 1)

    0xffb400, // 3 - Orange Warnungen vor markantem Wetter (Stufe 2)

    0xff0000, // 4 - Rot Unwetterwarnungen (Stufe 3)

    0xff00ff, // 5 - Violett Warnungen vor extremem Unwetter (Stufe 4)

    ];

    if (uwzLevel>=0 && uwzLevel<=5)

    return uwzColor[uwzLevel];

    else

    return 0;

    }

    function createHTMLShort(w){

    var html = '';

    var theData = JSON.parse(w.object);

    html += '

    ';

    if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";

    html += UWZTypesArray[w.type];

    html +="

    ";

    html += "

    Zeitraum von "+formatDate(new Date(theData.dtgStart1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd1000),"WW, DD. OO YYYY hh:mm")+" Uhr

    ";

    html += '

    '+w.ShortText+'

    ';

    html += "";

    return html;

    }

    function createHTMLLong(w){

    var html = '';

    var theData = JSON.parse(w.object);

    html += '

    ';

    if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";

    html += UWZTypesArray[w.type];

    html +="

    ";

    html += "

    Zeitraum von "+formatDate(new Date(theData.dtgStart1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd1000),"WW, DD. OO YYYY hh:mm")+" Uhr

    ";

    html += '

    '+w.LongText+'

    ';

    html += "";

    return html;

    }

    function processResultEntry(w) {

    this.object = JSON.stringify(w);

    this.begin=formatDate(new Date(w.dtgStart*1000),"DD.MM.YYYY hh:mm");

    this.end=formatDate(new Date(w.dtgEnd*1000),"DD.MM.YYYY hh:mm");

    // dwmlog (formatDate(this.begin,"DD.MM.YYYY hh:mm"),4);

    // dwmlog (formatDate(this.end,"DD.MM.YYYY hh:mm"),4);

    this.LongText = w.payload.translationsLongText.DE;

    this.ShortText = w.payload.translationsShortText.DE;

    this.severity = w.severity;

    this.type = w.type;

    this.uwzLevel = getUWZLevel(w.payload.levelName);

    this.uwzUrgency = getUWZUrgency(w.payload.levelName);

    this.uwzColor = getLevelColor(this.uwzLevel);

    var x = this;

    this.HTMLShort = createHTMLShort(x);

    this.HTMLLong = createHTMLLong(x);

    }

    function processData(Area,data) {

    if (!data) {

    return;

    }

    var AreaChannelId=ChannelId+"."+Area;

    var thedata = JSON.parse(data);

    var warnings= [];

    if (thedata.results.length>0) {

    for (i=0; i <thedata.results.length; i++)/{<br="">warnings.push(new processResultEntry(thedata.results__));

    }

    }

    warnings.sort(function(a,b){

    var asort = a.severity;

    var bsort = b.severity;

    return bsort-asort;

    });

    dwmlog(JSON.stringify(warnings));

    for (i=0; i <numofwarnings; i++)/{<br="">if (i <warnings.length) {<br="">setState(AreaChannelId+".warning."+i+".LongText",warnings__.LongText);

    setState(AreaChannelId+".warning."+i+".ShortText",warnings__.ShortText);

    setState(AreaChannelId+".warning."+i+".object",warnings__.object);

    setState(AreaChannelId+".warning."+i+".begin",warnings__.begin);

    setState(AreaChannelId+".warning."+i+".end",warnings__.end);

    setState(AreaChannelId+".warning."+i+".severity",warnings__.severity);

    setState(AreaChannelId+".warning."+i+".type",warnings__.type);

    setState(AreaChannelId+".warning."+i+".uwzLevel",warnings__.uwzLevel);

    setState(AreaChannelId+".warning."+i+".uwzColor",warnings__.uwzColor);

    setState(AreaChannelId+".warning."+i+".HTMLShort",warnings_.HTMLShort);

    setState(AreaChannelId+".warning."+i+".HTMLLong",warnings_.HTMLLong);

    } else {

    setState(AreaChannelId+".warning."+i+".LongText","");

    setState(AreaChannelId+".warning."+i+".ShortText","");

    setState(AreaChannelId+".warning."+i+".object","{}");

    setState(AreaChannelId+".warning."+i+".begin","");

    setState(AreaChannelId+".warning."+i+".end","");

    setState(AreaChannelId+".warning."+i+".severity",0);

    setState(AreaChannelId+".warning."+i+".type",0);

    setState(AreaChannelId+".warning."+i+".uwzLevel",0);

    setState(AreaChannelId+".warning."+i+".uwzColor",0);

    setState(AreaChannelId+".warning."+i+".HTMLShort","");

    setState(AreaChannelId+".warning."+i+".HTMLLong","");

    }

    }

    }

    function getAreaFromURI(uri) {

    var searchstr = "&areaID=";

    var n = uri.search(searchstr);

    var result = uri.slice(n+searchstr.length,uri.length);

    return result;

    }

    createStates(numOfWarnings);

    // processData(jsond2);

    var request = require('request');

    schedule ("* * * * *", function(){

    for (var i=0; i <warncellid.length; i++)/{<br="">request({

    uri: url.replace("XXXAREAXXX",warncellid_),

    method: "GET",

    timeout: 10000,

    followRedirect: true,

    maxRedirects: 10

    }, function(error, response, body) {

    // dwmlog("UWZ Error" + error,2);

    // dwmlog("UWZ Response: " + JSON.stringify(response),4);

    dwmlog("AREA: "+getAreaFromURI(response.request.uri.href),4);

    dwmlog("UWZ Body: " + body,4);

    if (response.statusCode == 200) {

    processData(getAreaFromURI(response.request.uri.href),body);

    }

    });

    }

    });_</warncellid.length;>__________________</warnings.length)></numofwarnings;></thedata.results.length;></n;></warncellid.length;>

    1 Antwort Letzte Antwort
    0
    • H Offline
      H Offline
      homecineplexx
      schrieb am zuletzt editiert von
      #29

      sag mal sigi234, bei deinem screenshot (dem ersten der beiden) wie holst du dir die 2 pictures (von uwz und meteogramm) und kann man da dann zoomen, scrollen bzw ist es klickbar?

      @sigi234:

      Geht bei mir…...

      Screenshot (481)_LI.jpg

      Screenshot (483).png `

      1 Antwort Letzte Antwort
      0
      • sigi234S Online
        sigi234S Online
        sigi234
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #30

        2858_screenshot__1587__li.jpg

        UWZ:

        Basic Image mir dieser Url:

        http://www.uwz.at/at/de/outwards/current_uwz.png

        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Immer Daten sichern!

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          deifel
          schrieb am zuletzt editiert von
          #31

          @Negalein:

          @dwm:

          Aber schon mal ein Anfang :) `

          Danke für dein tolles Script!

          Sehe ich das richtig, dass wenn keine Warnung ist, auch nichts im VIS geschrieben wird?

          Widget ist das "basic - string (unescaped)" mit folgender Einstellung:

          Edit vis (4).pngobjects - ioBroker (6).png

          Danke `

          PUSH ;)

          Interessiert mich auch

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            dwm
            schrieb am zuletzt editiert von
            #32

            Richtig, bei keiner Warnung sollte das leer sein. Man kanns evt dann das Widget auch unsichtbar machen, mit Sichtbarkeit auf Severity 0 prüfen …

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              Alveran
              schrieb am zuletzt editiert von
              #33

              @Alveran:

              Ich muss mich hier leider mal einreihen. Ich habe versucht meine ID für den Ort Gera in Deutschland zu generieren. Aber das Script kommt nicht damit klar. Was habe ich falsch gemacht?

              Sowohl "UWZDE07548" (Postleitzahl) also auch "116052000" funktioniert nicht. `

              Darf ich nochmal nachfragen, ist irgendwie untergegangen. Wieso funktioniert der Ort Gera nicht?

              1 Antwort Letzte Antwort
              0
              • NashraN Offline
                NashraN Offline
                Nashra
                Most Active Forum Testing
                schrieb am zuletzt editiert von
                #34

                @dwm:

                Das wird im schedule festgelegt.

                Jede Stunde wäre z.B.:

                schedule ("3 * * * *", function(){
                
                

                dann wird das script zu jeder vollen Stunde in der dritten Minute ausgeführt, also 00:03, 01:03 usw.

                Die "CRON" Taste beim Script Editor oben rechts erzeugt solche Schedule strings für Dich …

                D `

                Ich bekomme das irgendwie nicht hin, sorry Anfänger.

                Wenn ichschedule ("3 * * * *", function(){an den Anfang vom Script setze, muß ich am Ende davon doch noch dies````
                }(;

                
                Wie gesagt, wo liegt der Fehler von mir.

                Gruß Ralf
                Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  homecineplexx
                  schrieb am zuletzt editiert von
                  #35

                  der fehler liegt daran, dass es so gehört

                  });
                  
                  
                  1 Antwort Letzte Antwort
                  0
                  • NashraN Offline
                    NashraN Offline
                    Nashra
                    Most Active Forum Testing
                    schrieb am zuletzt editiert von
                    #36

                    @homecineplexx:

                    der fehler liegt daran, dass es so gehört

                    });
                    
                    ```` `  
                    

                    Sorry das war hier ein Tipfehler, ist natürlich````
                    });

                    Gruß Ralf
                    Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    1 Antwort Letzte Antwort
                    0
                    • H Offline
                      H Offline
                      homecineplexx
                      schrieb am zuletzt editiert von
                      #37

                      dann hast vermutlich ein anderes problem…vielleicht solltest den code mal posten

                      1 Antwort Letzte Antwort
                      0
                      • NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #38

                        @Nashra:

                        [`~~[code]~~schedule ("3 * * * *", function(){` `

                        schedule ("3 * * * *", function(){ musst du nicht neu ins Script schreiben.

                        Dies ist in diesem Script schon vorhanden.

                        Steht ziemlich weit unten im Script!

                        Such danach und editier es dir passend.

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        1 Antwort Letzte Antwort
                        0
                        • NashraN Offline
                          NashraN Offline
                          Nashra
                          Most Active Forum Testing
                          schrieb am zuletzt editiert von
                          #39

                          @Negalein:

                          @Nashra:

                          [`~~[code]~~schedule ("3 * * * *", function(){` `

                          schedule ("3 * * * *", function(){ musst du nicht neu ins Script schreiben.

                          Dies ist in diesem Script schon vorhanden.

                          Steht ziemlich weit unten im Script!

                          Such danach und editier es dir passend. `
                          Sorry blutiger Anfänger bin :lol:

                          Stimmt, steht ganz am Ende was mit Schedule. Jetzt kapier ich das, zuerst hat er gewartet und wenn er dann

                          einmal gestartet ist, hat er durch den anderen es wieder auf eine Minute gesetzt. :oops:

                          Man lernt immer dazu, vielen Dank.

                          Gruß Ralf
                          Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          1 Antwort Letzte Antwort
                          0
                          • D dwm

                            Die Zahlen bei begin und end sind der Anfangs- und Endzeitpunkt in ms seit dem 1.1.1970.

                            Hm, ja. Könnte man noch "human readable" gestalten :D.

                            Was severity und type bei der Unwetterzentrale jetzt heissen … keine Ahnung. Wie Hormoran schrieb, beim DWD ist das gut dokumentiert.

                            type=7 ist wohl "Gewitter"... aber das ist mit der Stange im Nebel stochern. Mal sehen, ob sich da nicht im Netz eine Doku findet...

                            Ein Bug ist auch noch drin ... das "object" sollte eigentlich das JSON der Warnung zeigen.

                            ! ```
                            var AdapterId = "javascript.0"; var ChannelId = "UWZ"; ! var forceInitStates = true; var numOfWarnings = 3; ! var warncellid = 'UWZDE92540'; // HIER DIE EIGENE AREA ID eintragen! ! //============================================================== var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX'; ! url=url.replace("XXXAREAXXX",warncellid); ! function createStates(n){ for (var i=0; i<n; i++)/{/createstate(channelid+".warning."+i+".name","",forceinitstates,{type:/'string'});/createstate(channelid+".warning."+i+".text","",forceinitstates,{type:/createstate(channelid+".warning."+i+".shorttext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".longtext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".object","",forceinitstates,{type:/createstate(channelid+".warning."+i+".begin",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".end",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".severity",0,forceinitstates,{type:/'number'});/createstate(channelid+".warning."+i+".type",0,forceinitstates,{type:/}/function/processresultentry(w)/this.object="JSON.stringify(w);" this.begin="formatDate(new" date(w.dtgstart),"dd.mm.yyyy/hh:mm");/this.end="formatDate(new" date(w.dtgend),"dd.mm.yyyy/this.longtext="w.payload.translationsLongText.DE;" this.shorttext="w.payload.translationsShortText.DE;" this.severity="w.severity;" this.type="w.type;" processdata(data)/if/(!data)/return;/var/thedata="JSON.parse(data);" warnings="[];" (thedata.results.length="">0) { for (i=0; i<thedata.results.length; 3/10/i++)/{/warnings.push(new/processresultentry(thedata.results[i]));/}/*/warnings.sort(function(a,b){/var/asort="a.urgency*1000+a.category*100+a.severity;" bsort="b.urgency*1000+b.category*100+b.severity;" return/bsort-asort;/});/for/(i="0;" i<numofwarnings;/if/(i<warnings.length)/setstate(channelid+".warning."+i+".longtext",warnings[i].longtext);/setstate(channelid+".warning."+i+".shorttext",warnings[i].shorttext);/setstate(channelid+".warning."+i+".object","{}");/setstate(channelid+".warning."+i+".begin",warnings[i].begin);/setstate(channelid+".warning."+i+".end",warnings[i].end);/setstate(channelid+".warning."+i+".severity",warnings[i].severity);/setstate(channelid+".warning."+i+".type",warnings[i].type);/else/setstate(channelid+".warning."+i+".longtext","");/setstate(channelid+".warning."+i+".shorttext","");/setstate(channelid+".warning."+i+".begin",0);/setstate(channelid+".warning."+i+".end",0);/setstate(channelid+".warning."+i+".severity",0);/setstate(channelid+".warning."+i+".type",0);/createstates(numofwarnings);/request="require('request');" schedule/("*/*",/function(){/request({/uri:/url,/method:/"get",/timeout:/10000,/followredirect:/true,/maxredirects:/},/function(error,/response,/body)/(response.statuscode="=" 200)/processdata(body);/<e=""></thedata.results.length;></n;>
                            ! ... object drin und begin und end sind lesbar.
                            ! Bitte aus der Zeile
                            ~~[code]~~var forceInitStates = true; [/code]
                            nach dem ersten Mal laufenlassen wieder ein
                            ~~[code]~~var forceInitStates = false; [/code]
                            ! machen - dient dazu, das Neuanlegen der Datenpunkte für begin und end zu erzwingen, da sich ja der Typ geändert hat.
                            ! CU
                            ! Werner[/i][/i][/i][/i][/i][/i][/i]

                            S Offline
                            S Offline
                            sectorchan
                            schrieb am zuletzt editiert von sectorchan
                            #40

                            @dwm said in Unwetterwarnung für Österreich bzw. Europa ?:

                            Die Zahlen bei begin und end sind der Anfangs- und Endzeitpunkt in ms seit dem 1.1.1970.

                            Hm, ja. Könnte man noch "human readable" gestalten :D.

                            Was severity und type bei der Unwetterzentrale jetzt heissen … keine Ahnung. Wie Hormoran schrieb, beim DWD ist das gut dokumentiert.

                            type=7 ist wohl "Gewitter"... aber das ist mit der Stange im Nebel stochern. Mal sehen, ob sich da nicht im Netz eine Doku findet...

                            Ein Bug ist auch noch drin ... das "object" sollte eigentlich das JSON der Warnung zeigen.

                            ! ```
                            var AdapterId = "javascript.0"; var ChannelId = "UWZ"; ! var forceInitStates = true; var numOfWarnings = 3; ! var warncellid = 'UWZDE92540'; // HIER DIE EIGENE AREA ID eintragen! ! //============================================================== var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX'; ! url=url.replace("XXXAREAXXX",warncellid); ! function createStates(n){ for (var i=0; i<n; i++)/{/createstate(channelid+".warning."+i+".name","",forceinitstates,{type:/'string'});/createstate(channelid+".warning."+i+".text","",forceinitstates,{type:/createstate(channelid+".warning."+i+".shorttext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".longtext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".object","",forceinitstates,{type:/createstate(channelid+".warning."+i+".begin",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".end",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".severity",0,forceinitstates,{type:/'number'});/createstate(channelid+".warning."+i+".type",0,forceinitstates,{type:/}/function/processresultentry(w)/this.object="JSON.stringify(w);" this.begin="formatDate(new" date(w.dtgstart),"dd.mm.yyyy/hh:mm");/this.end="formatDate(new" date(w.dtgend),"dd.mm.yyyy/this.longtext="w.payload.translationsLongText.DE;" this.shorttext="w.payload.translationsShortText.DE;" this.severity="w.severity;" this.type="w.type;" processdata(data)/if/(!data)/return;/var/thedata="JSON.parse(data);" warnings="[];" (thedata.results.length="">0) { for (i=0; i<thedata.results.length; 3/10/i++)/{/warnings.push(new/processresultentry(thedata.results[i]));/}/*/warnings.sort(function(a,b){/var/asort="a.urgency*1000+a.category*100+a.severity;" bsort="b.urgency*1000+b.category*100+b.severity;" return/bsort-asort;/});/for/(i="0;" i<numofwarnings;/if/(i<warnings.length)/setstate(channelid+".warning."+i+".longtext",warnings[i].longtext);/setstate(channelid+".warning."+i+".shorttext",warnings[i].shorttext);/setstate(channelid+".warning."+i+".object","{}");/setstate(channelid+".warning."+i+".begin",warnings[i].begin);/setstate(channelid+".warning."+i+".end",warnings[i].end);/setstate(channelid+".warning."+i+".severity",warnings[i].severity);/setstate(channelid+".warning."+i+".type",warnings[i].type);/else/setstate(channelid+".warning."+i+".longtext","");/setstate(channelid+".warning."+i+".shorttext","");/setstate(channelid+".warning."+i+".begin",0);/setstate(channelid+".warning."+i+".end",0);/setstate(channelid+".warning."+i+".severity",0);/setstate(channelid+".warning."+i+".type",0);/createstates(numofwarnings);/request="require('request');" schedule/("*/*",/function(){/request({/uri:/url,/method:/"get",/timeout:/10000,/followredirect:/true,/maxredirects:/},/function(error,/response,/body)/(response.statuscode="=" 200)/processdata(body);/<e=""></thedata.results.length;></n;>
                            ! ... object drin und begin und end sind lesbar.
                            ! Bitte aus der Zeile
                            ~~[code]~~var forceInitStates = true; [/code]
                            nach dem ersten Mal laufenlassen wieder ein
                            ~~[code]~~var forceInitStates = false; [/code]
                            ! machen - dient dazu, das Neuanlegen der Datenpunkte für begin und end zu erzwingen, da sich ja der Typ geändert hat.
                            ! CU
                            ! Werner[/i][/i][/i][/i][/i][/i][/i]

                            Werden die Javascript topics automatisch angelegt wenn das Script erstmal läuft?

                            Ganz dumme frage, weil ich Javascript nicht kann, sondern mich eher mit c# besser zurecht finde und die syntax auch mit Google nicht deuten kann.

                            Ich versteh die Ausrufezeichen als kommentar, aber nach recherche ist es das nicht.
                            Die Syntax stimmt doch ganz und gar nicht, oder stell ich mich nur dumm an?
                            Woher kommen die ganzen "/" Die werden mir bei einem Javascript checker als Fehler angezeigt.
                            den unteren Teil entfernt habe, werden mir Error mit Compile failed angezeigt.

                            1 Antwort Letzte Antwort
                            0
                            • jackblacksonJ Offline
                              jackblacksonJ Offline
                              jackblackson
                              schrieb am zuletzt editiert von
                              #41

                              @dwm Meinst du du könntest das Script für die UWZ bitte nochmal posten? Hier scheint das Forum das Format verhaut zu haben.

                              NegaleinN 1 Antwort Letzte Antwort
                              0
                              • NashraN Offline
                                NashraN Offline
                                Nashra
                                Most Active Forum Testing
                                schrieb am zuletzt editiert von Nashra
                                #42

                                Seit einiger Zeit wird mir vom UWZ-Script nichts mehr angezeigt. DWD und andere geben Unwetterwarnungen raus
                                aber hier bei mir tut sich gar nichts. Hat das sonst noch jemand hier.

                                Gruß Ralf
                                Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                sigi234S NegaleinN 2 Antworten Letzte Antwort
                                0
                                • jackblacksonJ jackblackson

                                  @dwm Meinst du du könntest das Script für die UWZ bitte nochmal posten? Hier scheint das Forum das Format verhaut zu haben.

                                  NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  schrieb am zuletzt editiert von
                                  #43

                                  @jackblackson sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                  @dwm Meinst du du könntest das Script für die UWZ bitte nochmal posten? Hier scheint das Forum das Format verhaut zu haben.

                                  hier ist es!

                                  var debuglevel = 4;
                                  var debugchannel = 'info';
                                  
                                  function dwmlog( message, level, channel) {
                                      if (typeof channel === 'undefined') {
                                          channel = debugchannel;
                                      }
                                      if ( typeof level === 'undefined')
                                      {
                                          level = debuglevel;
                                      }
                                      if ( debuglevel >= level ) {
                                          log (message, channel );
                                      }
                                  }
                                  
                                  var AdapterId = "javascript."+instance;
                                  var ChannelId = "UWZ";
                                  
                                  var forceInitStates = false;
                                  var numOfWarnings = 3;
                                  
                                  var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
                                  
                                  
                                  /********************* Hier die Warnzellen-Id's eintragen *****************************/
                                  var warncellid = ['UWZAT00928'];
                                  /**************************************************************************************/
                                  
                                  
                                  var UWZTypesArray=["n/a","unbekannt","Sturm/Orkan","Schneefall","Starkregen","Extremfrost","Waldbrandgefahr","Gewitter","Glätte","Hitze","Glatteisregen","Bodenfrost"];
                                  
                                  function createStates(n){
                                      var AreaChannelID = null;
                                      
                                      for (var j=0; j<warncellid.length; j++) {
                                          AreaChannelId=ChannelId+"."+warncellid[j];        
                                          for (var i=0; i<n; i++) {
                                              createState(AreaChannelId+".warning."+i+".ShortText","",forceInitStates,{type: 'string'});
                                              createState(AreaChannelId+".warning."+i+".LongText","",forceInitStates,{type: 'string'});
                                              createState(AreaChannelId+".warning."+i+".object","",forceInitStates,{type: 'string'});
                                              createState(AreaChannelId+".warning."+i+".begin","",forceInitStates,{type: 'string'});
                                              createState(AreaChannelId+".warning."+i+".end","",forceInitStates,{type: 'string'});
                                              createState(AreaChannelId+".warning."+i+".severity",0,forceInitStates,{type: 'number'});
                                              createState(AreaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:UWZTypesArray});
                                              createState(AreaChannelId+".warning."+i+".uwzLevel",0,forceInitStates,{min:0, max:5, type: 'number'});
                                              createState(AreaChannelId+".warning."+i+".uwzColor",0,forceInitStates,{type:'number'});
                                              createState(AreaChannelId+".warning."+i+".HTMLShort","",forceInitStates,{type: 'string'});
                                              createState(AreaChannelId+".warning."+i+".HTMLLong","",forceInitStates,{type: 'string'});
                                          }
                                      }
                                  }
                                  
                                  function getUWZLevel (warnName){
                                      var result = -1; // -1 is an error!
                                      var alert = warnName.split("_");
                                      var colors = ["green","darkgreen","yellow","orange","red","violet"];
                                      
                                      if (alert[0]=="notice") { result = 1; }
                                      else if (alert[1] == "forewarn") { result = 2; }
                                      else {
                                          result = colors.indexOf(alert[2]);
                                      }
                                      return result;
                                  }
                                  
                                  function getUWZUrgency (warnName){
                                      var result = 0;
                                      
                                      var alert = warnName.split("_");
                                      if (alert[1] == "forewarn") { 
                                          result = 1; 
                                      }
                                      else {
                                          result = 2; // immediate;
                                      }
                                      return result;
                                  }
                                  
                                  function getLevelColor(uwzLevel) {
                                      var uwzColor = [
                                          0x00ff00, // 0 - Grün
                                          0x009b00, // 1 - Dunkelgrün
                                          0xffff00, // 2 - Gelb Wetterwarnungen (Stufe 1)
                                          0xffb400, // 3 - Orange Warnungen vor markantem Wetter (Stufe 2)
                                          0xff0000, // 4 - Rot Unwetterwarnungen (Stufe 3)
                                          0xff00ff, // 5 - Violett Warnungen vor extremem Unwetter (Stufe 4)
                                      ];
                                      if (uwzLevel>=0 && uwzLevel<=5)
                                          return uwzColor[uwzLevel];
                                      else
                                          return 0;
                                  }
                                  
                                  function createHTMLShort(w){
                                      var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                      
                                      var theData = JSON.parse(w.object);
                                      
                                      html += '<h3>';
                                      if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                      html += UWZTypesArray[w.type];
                                      html +="</h3>";
                                      html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                      html += '<p>'+w.ShortText+'</p>';
                                      html += "</div>";
                                      return html;
                                  }
                                  
                                  function createHTMLLong(w){
                                      var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
                                      
                                      var theData = JSON.parse(w.object);
                                      
                                      html += '<h3>';
                                      if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                                      html += UWZTypesArray[w.type];
                                      html +="</h3>";
                                      html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
                                      html += '<p>'+w.LongText+'</p>';
                                      html += "</div>";
                                      return html;    
                                  }
                                  
                                  function processResultEntry(w) {
                                      this.object = JSON.stringify(w);
                                  
                                      this.begin=formatDate(new Date(w.dtgStart*1000),"DD.MM.YYYY hh:mm");
                                      this.end=formatDate(new Date(w.dtgEnd*1000),"DD.MM.YYYY hh:mm");
                                      
                                      // dwmlog (formatDate(this.begin,"DD.MM.YYYY hh:mm"),4);
                                      // dwmlog (formatDate(this.end,"DD.MM.YYYY hh:mm"),4);
                                      
                                      this.LongText = w.payload.translationsLongText.DE;
                                      this.ShortText = w.payload.translationsShortText.DE;
                                      
                                      this.severity = w.severity;
                                      this.type = w.type;
                                      this.uwzLevel = getUWZLevel(w.payload.levelName);
                                      this.uwzUrgency = getUWZUrgency(w.payload.levelName);
                                      this.uwzColor = getLevelColor(this.uwzLevel);
                                      var x = this;
                                      this.HTMLShort = createHTMLShort(x);
                                      this.HTMLLong  = createHTMLLong(x);
                                  }
                                  
                                  function processData(Area,data) {
                                      if (!data) {
                                         return;
                                      }
                                      var AreaChannelId=ChannelId+"."+Area;
                                      
                                      var thedata = JSON.parse(data);
                                      var warnings= [];
                                      
                                      if (thedata.results.length>0) {
                                          for (i=0; i<thedata.results.length; i++) {
                                              warnings.push(new processResultEntry(thedata.results[i]));
                                          }
                                      }
                                      
                                      warnings.sort(function(a,b){
                                          var asort = a.severity; 
                                          var bsort = b.severity;
                                          
                                          return bsort-asort;
                                      });
                                      
                                      
                                      dwmlog(JSON.stringify(warnings));
                                      
                                      for (i=0; i<numOfWarnings; i++) {
                                          if (i<warnings.length) {
                                              setState(AreaChannelId+".warning."+i+".LongText",warnings[i].LongText);
                                              setState(AreaChannelId+".warning."+i+".ShortText",warnings[i].ShortText);
                                              setState(AreaChannelId+".warning."+i+".object",warnings[i].object);
                                              setState(AreaChannelId+".warning."+i+".begin",warnings[i].begin);
                                              setState(AreaChannelId+".warning."+i+".end",warnings[i].end);
                                              setState(AreaChannelId+".warning."+i+".severity",warnings[i].severity);
                                              setState(AreaChannelId+".warning."+i+".type",warnings[i].type);
                                              setState(AreaChannelId+".warning."+i+".uwzLevel",warnings[i].uwzLevel);
                                              setState(AreaChannelId+".warning."+i+".uwzColor",warnings[i].uwzColor);
                                              setState(AreaChannelId+".warning."+i+".HTMLShort",warnings[i].HTMLShort);
                                              setState(AreaChannelId+".warning."+i+".HTMLLong",warnings[i].HTMLLong);
                                          } else {
                                              setState(AreaChannelId+".warning."+i+".LongText","");
                                              setState(AreaChannelId+".warning."+i+".ShortText","");
                                              setState(AreaChannelId+".warning."+i+".object","{}");
                                              setState(AreaChannelId+".warning."+i+".begin","");
                                              setState(AreaChannelId+".warning."+i+".end","");
                                              setState(AreaChannelId+".warning."+i+".severity",0);
                                              setState(AreaChannelId+".warning."+i+".type",0);
                                              setState(AreaChannelId+".warning."+i+".uwzLevel",0);
                                              setState(AreaChannelId+".warning."+i+".uwzColor",0);
                                              setState(AreaChannelId+".warning."+i+".HTMLShort","");
                                              setState(AreaChannelId+".warning."+i+".HTMLLong","");
                                        }
                                      }
                                  }
                                  
                                  function getAreaFromURI(uri) {
                                      var searchstr = "&areaID=";
                                      var n = uri.search(searchstr);
                                      var result = uri.slice(n+searchstr.length,uri.length);
                                      return result;
                                  }
                                  
                                  createStates(numOfWarnings);
                                  // processData(jsond2);
                                  
                                  var request = require('request');
                                  schedule ("3 * * * *", function(){
                                      for (var i=0; i<warncellid.length; i++) {
                                              request({  
                                                  uri: url.replace("XXXAREAXXX",warncellid[i]),
                                                  method: "GET",
                                                  timeout: 10000,
                                                  followRedirect: true,
                                                  maxRedirects: 10
                                              }, function(error, response, body) {
                                                  // dwmlog("UWZ Error" + error,2);
                                                  // dwmlog("UWZ Response: " + JSON.stringify(response),4);
                                                  dwmlog("AREA: "+getAreaFromURI(response.request.uri.href),4);
                                                  dwmlog("UWZ Body: " + body,4);
                                                  if (response.statusCode == 200) {
                                                      processData(getAreaFromURI(response.request.uri.href),body);
                                                  }
                                              });    
                                      }
                                  });
                                  
                                  

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  1 Antwort Letzte Antwort
                                  0
                                  • NashraN Nashra

                                    Seit einiger Zeit wird mir vom UWZ-Script nichts mehr angezeigt. DWD und andere geben Unwetterwarnungen raus
                                    aber hier bei mir tut sich gar nichts. Hat das sonst noch jemand hier.

                                    sigi234S Online
                                    sigi234S Online
                                    sigi234
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #44

                                    @Nashra sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                    Seit einiger Zeit wird mir vom UWZ-Script nichts mehr angezeigt. DWD und andere geben Unwetterwarnungen raus
                                    aber hier bei mir tut sich gar nichts. Hat das sonst noch jemand hier.

                                    Warnzellen-Id im Skript Richtig?

                                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                    Immer Daten sichern!

                                    NashraN 1 Antwort Letzte Antwort
                                    0
                                    • sigi234S sigi234

                                      @Nashra sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                      Seit einiger Zeit wird mir vom UWZ-Script nichts mehr angezeigt. DWD und andere geben Unwetterwarnungen raus
                                      aber hier bei mir tut sich gar nichts. Hat das sonst noch jemand hier.

                                      Warnzellen-Id im Skript Richtig?

                                      NashraN Offline
                                      NashraN Offline
                                      Nashra
                                      Most Active Forum Testing
                                      schrieb am zuletzt editiert von
                                      #45

                                      @sigi234 sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                      @Nashra sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                      Seit einiger Zeit wird mir vom UWZ-Script nichts mehr angezeigt. DWD und andere geben Unwetterwarnungen raus
                                      aber hier bei mir tut sich gar nichts. Hat das sonst noch jemand hier.

                                      Warnzellen-Id im Skript Richtig?

                                      Ja alles korrekt, hat ja auch vor einigen Wochen mal Warnungen angezeigt.
                                      Momentan geht hier richtig was ab mit Wind uns so und die anderen zeigen es ja auch an,
                                      aber leider nicht nicht das Script obwohl alle 15 Minuten aktualisiert wird.

                                      Gruß Ralf
                                      Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      sigi234S 1 Antwort Letzte Antwort
                                      0
                                      • NashraN Nashra

                                        @sigi234 sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                        @Nashra sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                        Seit einiger Zeit wird mir vom UWZ-Script nichts mehr angezeigt. DWD und andere geben Unwetterwarnungen raus
                                        aber hier bei mir tut sich gar nichts. Hat das sonst noch jemand hier.

                                        Warnzellen-Id im Skript Richtig?

                                        Ja alles korrekt, hat ja auch vor einigen Wochen mal Warnungen angezeigt.
                                        Momentan geht hier richtig was ab mit Wind uns so und die anderen zeigen es ja auch an,
                                        aber leider nicht nicht das Script obwohl alle 15 Minuten aktualisiert wird.

                                        sigi234S Online
                                        sigi234S Online
                                        sigi234
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #46

                                        @Nashra
                                        Hast du mal eine andere ID dazu gefügt zum testen........

                                        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                        Immer Daten sichern!

                                        NashraN 1 Antwort Letzte Antwort
                                        0
                                        • sigi234S sigi234

                                          @Nashra
                                          Hast du mal eine andere ID dazu gefügt zum testen........

                                          NashraN Offline
                                          NashraN Offline
                                          Nashra
                                          Most Active Forum Testing
                                          schrieb am zuletzt editiert von Nashra
                                          #47

                                          @sigi234 sagte in Unwetterwarnung für Österreich bzw. Europa ?:

                                          @Nashra
                                          Hast du mal eine andere ID dazu gefügt zum testen........

                                          Ja mehrere, aber es kommen keine Daten, seltsam :confused:

                                          Nachtrag: Datenpunkte sind alle vorhanden.

                                          Gruß Ralf
                                          Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          751

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe