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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • 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 @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
                                    • jackblackson
                                      jackblackson last edited by jackblackson

                                      Vielleicht wär dieser Adapter auch was für euch: https://forum.iobroker.net/topic/23783/aufruf-neuer-adapter-meteoalarm-eu/23. Ich hab hier einen neuen Adapter erstellt, der Unwetterwarnungen für ganz Europe abrufen kann. Ist aktuell noch in der Testphase und nur über Github installierbar, sollte dann aber bald auch "normal" verfügbar sein.

                                      1 Reply Last reply Reply Quote 0
                                      • Michael Salzer
                                        Michael Salzer last edited by

                                        Schöne Grüße dem Forum

                                        Kann jemand einem newbie wie mir mal erklären wie wo wann was ich machen muß um dieses skript in mein iobroker zu bekommen?

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          dwm @sigi234 last edited by

                                          @sigi234 ... ich 🙂

                                          Michael Salzer 1 Reply Last reply Reply Quote 0
                                          • Michael Salzer
                                            Michael Salzer @dwm last edited by

                                            oh hy @ Sigi234
                                            Habe mir das sigiWetter.zip mal runtergeladen.ich würde jetzt gern das skript für die unwetter warnungen aktivieren.
                                            Wie mache ich das ?

                                            sigi234 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

                                            940
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            23
                                            123
                                            14805
                                            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