Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Unwetterwarnung für Österreich bzw. Europa ?

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Unwetterwarnung für Österreich bzw. Europa ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • crunchip
      crunchip Forum Testing Most Active @crunchip last edited by

      @crunchip was mir dabei auch noch auffällt, die Warnzellen-ID,
      das ist gar nicht meine, die im log erscheint.

      sigi234 1 Reply Last reply Reply Quote 0
      • sigi234
        sigi234 Forum Testing Most Active @crunchip last edited by

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

        @crunchip was mir dabei auch noch auffällt, die Warnzellen-ID,
        das ist gar nicht meine, die im log erscheint.

        Diese? UWZDE07356

        crunchip 1 Reply Last reply Reply Quote 0
        • crunchip
          crunchip Forum Testing Most Active @sigi234 last edited by

          @sigi234 ja

          sigi234 1 Reply Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active @crunchip last edited by sigi234

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

            @sigi234 ja

            Wie schaut dein Skript bis Zeile 30 aus?

            crunchip 1 Reply Last reply Reply Quote 0
            • crunchip
              crunchip Forum Testing Most Active @sigi234 last edited by

              @sigi234
              das ganze sieht so aus

              var debuglevel = 1;
              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 = 7;
              
              var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
              
              
              /********************* Hier die Warnzellen-Id's eintragen *****************************/
              var warncellid = ['UWZDE96178'];
              /**************************************************************************************/
              
              
              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 ("* /10* * * *", 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);
                              }
                          });    
                  }
              });
              
              sigi234 1 Reply Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @crunchip last edited by sigi234

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

                UWZDE96178

                Die hast du aber eingetragen, hier muss deine Aktuelle ID rein!

                Hier meine:

                /********************* Hier die Warnzellen-Id's eintragen *****************************/
                var warncellid = ['UWZATxxx10', 'UWZATxxx85'];
                /**************************************************************************************/
                
                crunchip 2 Replies Last reply Reply Quote 0
                • crunchip
                  crunchip Forum Testing Most Active @sigi234 last edited by

                  @sigi234 das ist meine!!
                  und im log erscheint
                  UWZDE07356

                  1 Reply Last reply Reply Quote 0
                  • crunchip
                    crunchip Forum Testing Most Active @sigi234 last edited by

                    @sigi234 steht doch in Zeile 27

                    sigi234 2 Replies Last reply Reply Quote 0
                    • sigi234
                      sigi234 Forum Testing Most Active @crunchip last edited by

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

                      @sigi234 steht doch in Zeile 27

                      Nein das steht:

                      var warncellid = ['UWZDE96178'];

                      Negalein 1 Reply Last reply Reply Quote 0
                      • Negalein
                        Negalein Global Moderator @sigi234 last edited by

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

                        Nein das steht:

                        var warncellid = ['UWZDE96178'];

                        Das ist seine!
                        Im Log steht aber eine andere!

                        sigi234 1 Reply Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator last edited by

                          Log: UWZDE07356
                          Script: UWZDE96178

                          crunchip 1 Reply Last reply Reply Quote 0
                          • sigi234
                            sigi234 Forum Testing Most Active @Negalein last edited by

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

                            Das ist seine!
                            Im Log steht aber eine andere!

                            JA, jetzt hab ich es gecheckt, der Log ist falsch.......

                            crunchip 1 Reply Last reply Reply Quote 0
                            • crunchip
                              crunchip Forum Testing Most Active @Negalein last edited by

                              @Negalein du hast es verstanden😀

                              1 Reply Last reply Reply Quote 0
                              • crunchip
                                crunchip Forum Testing Most Active @sigi234 last edited by

                                @sigi234 richtig,der ist falsch und deshalb wahrscheinlich auch ein Problem, das die Meldung erst um 0:00Uhr kam

                                1 Reply Last reply Reply Quote 0
                                • sigi234
                                  sigi234 Forum Testing Most Active @crunchip last edited by

                                  @crunchip

                                  Hm.......welche Objekte legt er an?

                                  crunchip 1 Reply Last reply Reply Quote 0
                                  • crunchip
                                    crunchip Forum Testing Most Active @sigi234 last edited by crunchip

                                    @sigi234 663f7eab-1fb6-4ba5-aaa1-dfc0db4cbbde-image.png
                                    die Warnung ist Gültig bis 10:00Uhr, steht aber immer noch drin
                                    angezeigt wird
                                    letzter Zeitstempel 2019-06-11 00:59
                                    letzte Änderung 2019-06-11 00:00..02

                                    1 Reply Last reply Reply Quote 0
                                    • Nashra
                                      Nashra Most Active Forum Testing last edited by

                                      Hm, ist mir gar nicht aufgefallen. Im Log bei mir steht auch was anderes

                                      2019-06-11 17:00:00.269 - info: javascript.0 script.js.Meine_Geräte.Unwetter: [{"object":"{\"center\":\"UWZ\",\"areaID\":\"UWZAT01417\",
                                      

                                      aber trotzdem wird dir richtige UWZDE47xxx angelegt bzw. die Daten geholt.

                                      crunchip 1 Reply Last reply Reply Quote 0
                                      • crunchip
                                        crunchip Forum Testing Most Active @Nashra last edited by

                                        @Nashra ja angelegt ist es bei mir auch richtig und die Meldung stimmt auch, nur halt paar Stunden zu spät.
                                        so wie jetzt auch wieder, DWD meldet, Radar2 meldet auch nur UWZ-Skript kommt wieder nix.

                                        sigi234 1 Reply Last reply Reply Quote 0
                                        • sigi234
                                          sigi234 Forum Testing Most Active @crunchip last edited by

                                          @crunchip

                                          Wer ist der Skriptersteller?

                                          crunchip D 2 Replies Last reply Reply Quote 0
                                          • crunchip
                                            crunchip Forum Testing Most Active @sigi234 last edited by

                                            @sigi234 der war gut😂 😂
                                            das Skript hatte ich von dir

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            683
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            23
                                            123
                                            14834
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo