Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.0k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

Scheduled Pinned Locked Moved JavaScript
1.5k Posts 53 Posters 592.1k Views 52 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T ticaki

    @d4ve
    du must das 1. suchen und die Zeile durch das 2. (in) ersetzen

    D4vED Offline
    D4vED Offline
    D4vE
    wrote on last edited by
    #601

    @ticaki 22:27:16.803 error javascript.0 (126) script.js.common.JS.Wetterwarnung compile failed: at script.js.common.JS.Wetterwarnung:2381

    kommt nun

    Iobroker Installation date 2021-08-16
    Platform: linux init system: Docker
    cod.m Zigbee Coordinator: CZC v1.0

    T 1 Reply Last reply
    0
    • D4vED D4vE

      @ticaki 22:27:16.803 error javascript.0 (126) script.js.common.JS.Wetterwarnung compile failed: at script.js.common.JS.Wetterwarnung:2381

      kommt nun

      T Do not disturb
      T Do not disturb
      ticaki
      wrote on last edited by
      #602

      @d4ve
      dann hast du nicht die Zeile ersetzt

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      D4vED 1 Reply Last reply
      0
      • T ticaki

        @d4ve
        dann hast du nicht die Zeile ersetzt

        D4vED Offline
        D4vED Offline
        D4vE
        wrote on last edited by D4vE
        #603

        @ticaki ok hab es nochmal gemacht nun kommt kein fehler was genau hab ich da nun geändert lieben dank

                        w.repeatCounter += w2.repeatCounter + 2;
                    }
                    if (w.repeatCounter > 300 ) {
        

        Iobroker Installation date 2021-08-16
        Platform: linux init system: Docker
        cod.m Zigbee Coordinator: CZC v1.0

        T 1 Reply Last reply
        0
        • D4vED D4vE

          @ticaki ok hab es nochmal gemacht nun kommt kein fehler was genau hab ich da nun geändert lieben dank

                          w.repeatCounter += w2.repeatCounter + 2;
                      }
                      if (w.repeatCounter > 300 ) {
          
          T Do not disturb
          T Do not disturb
          ticaki
          wrote on last edited by ticaki
          #604

          @d4ve sagte in [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten:

          @ticaki ... was genau hab ich da nun geändert lieben dank

          Die erste Änderung sorgt dafür das der Wiederholungszähler jetzt 0, 2, 4 usw hochzählt. der Spruch mit der Verlängerung kommt jedoch ausschließlich wenn der Zähler bei 1 steht.

          Die 2. Änderung sorgt dafür das der Zähler "praktisch nie" zurück gesetzt wird. Der ist normalerweise so eingestellt das nach 30 wiederholungen die Warnung erneut gesendet wird. Bei einem refresh von 10 Minuten im DWD Adapter und mit durchgehender Erneuerung der Warnung ist das alle 5 Stunden. Mit der Änderung aus 1. wären es nur 2:30h mit der Änderung aus 2. 25 Stunden.

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          D4vED 1 Reply Last reply
          0
          • T ticaki

            @d4ve sagte in [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten:

            @ticaki ... was genau hab ich da nun geändert lieben dank

            Die erste Änderung sorgt dafür das der Wiederholungszähler jetzt 0, 2, 4 usw hochzählt. der Spruch mit der Verlängerung kommt jedoch ausschließlich wenn der Zähler bei 1 steht.

            Die 2. Änderung sorgt dafür das der Zähler "praktisch nie" zurück gesetzt wird. Der ist normalerweise so eingestellt das nach 30 wiederholungen die Warnung erneut gesendet wird. Bei einem refresh von 10 Minuten im DWD Adapter und mit durchgehender Erneuerung der Warnung ist das alle 5 Stunden. Mit der Änderung aus 1. wären es nur 2:30h mit der Änderung aus 2. 25 Stunden.

            D4vED Offline
            D4vED Offline
            D4vE
            wrote on last edited by
            #605

            @ticaki Danke nochmal nun geht alles! gestern nacht um 02:45 kamm eine meldung und um 08:00 die 2 meldung das es aufgehoben wurde!
            somit ist das teil PERFEKT! danke für die gute Arbeit...

            Iobroker Installation date 2021-08-16
            Platform: linux init system: Docker
            cod.m Zigbee Coordinator: CZC v1.0

            1 Reply Last reply
            0
            • T Do not disturb
              T Do not disturb
              ticaki
              wrote on last edited by ticaki
              #606

              Hallo,

              ich hab das UWZ Skript auf Axios umgestellt, wäre nett wenn jemand testet, ob es Probleme gibt.

              // Version 1.04
              // Author: dwm
              // Änderungen ticaki
              // 1.01 debuglevel keine Ausgabe bei 1;
              // 1.02 let und variable "Fehler" behoben (wurde als Syntaxfehler angezeigt)
              // 1.03 logausgabe fehler bei keiner Verbindung behoben
              // 1.03 schedule gegen setInterval() getauscht.
              // 1.04 umgestellt auf Axios.
              
              var intervalMinutes = 5;
              var debuglevel = 4;
              var debugchannel = 'info';
              
              const axios = require('axios');
              
              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 = ['UWZxxxxxxx'];
              /**************************************************************************************/
              
              
              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 (let 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,{min:0, max:6, 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, thedata) {
                 if (!thedata) {
                    return;
                 }
              
                 var warnings= [];
                 if (thedata.results.length>0) {
                     for (let 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),2);
                 let areaChannelId=ChannelId+"."+Area;
                 for (let 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);
              
              setInterval(work,intervalMinutes * 60 * 1000);
              work();
              
              async function work() {
                 for (var i=0; i<warncellid.length; i++) {
                     try {
                         const res = await axios.get(url.replace("XXXAREAXXX",warncellid[i]));
                         dwmlog("AREA: "+getAreaFromURI(res.config.url),4);
                         dwmlog("UWZ Body: " + JSON.stringify(res.data),4);
                         dwmlog("Status: " + res.status,4);
                         if (res.status == 200) {
                             processData(getAreaFromURI(res.config.url),res.data);
                         }
                     } catch (error) {
                         // Error 😨
                         if (error.response) {
                             /*
                             * The request was made and the server responded with a
                             * status code that falls out of the range of 2xx
                             */
                             dwmlog(error.response.data, 1);
                             dwmlog(error.response.status, 1);
                             dwmlog(error.response.headers, 1);
                         } else if (error.request) {
                             /*
                             * The request was made but no response was received, `error.request`
                             * is an instance of XMLHttpRequest in the browser and an instance
                             * of http.ClientRequest in Node.js
                             */
                             dwmlog("Server antwortet nicht", 1);
                         } else {
                             // Something happened in setting up the request and triggered an Error
                             dwmlog(error.message, 1, 'warn');
                         }
                         dwmlog(error,1);
                     }
                 }
              }
              
              

              Danke

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              Thomas BraunT sigi234S 2 Replies Last reply
              0
              • T ticaki

                Hallo,

                ich hab das UWZ Skript auf Axios umgestellt, wäre nett wenn jemand testet, ob es Probleme gibt.

                // Version 1.04
                // Author: dwm
                // Änderungen ticaki
                // 1.01 debuglevel keine Ausgabe bei 1;
                // 1.02 let und variable "Fehler" behoben (wurde als Syntaxfehler angezeigt)
                // 1.03 logausgabe fehler bei keiner Verbindung behoben
                // 1.03 schedule gegen setInterval() getauscht.
                // 1.04 umgestellt auf Axios.
                
                var intervalMinutes = 5;
                var debuglevel = 4;
                var debugchannel = 'info';
                
                const axios = require('axios');
                
                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 = ['UWZxxxxxxx'];
                /**************************************************************************************/
                
                
                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 (let 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,{min:0, max:6, 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, thedata) {
                   if (!thedata) {
                      return;
                   }
                
                   var warnings= [];
                   if (thedata.results.length>0) {
                       for (let 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),2);
                   let areaChannelId=ChannelId+"."+Area;
                   for (let 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);
                
                setInterval(work,intervalMinutes * 60 * 1000);
                work();
                
                async function work() {
                   for (var i=0; i<warncellid.length; i++) {
                       try {
                           const res = await axios.get(url.replace("XXXAREAXXX",warncellid[i]));
                           dwmlog("AREA: "+getAreaFromURI(res.config.url),4);
                           dwmlog("UWZ Body: " + JSON.stringify(res.data),4);
                           dwmlog("Status: " + res.status,4);
                           if (res.status == 200) {
                               processData(getAreaFromURI(res.config.url),res.data);
                           }
                       } catch (error) {
                           // Error 😨
                           if (error.response) {
                               /*
                               * The request was made and the server responded with a
                               * status code that falls out of the range of 2xx
                               */
                               dwmlog(error.response.data, 1);
                               dwmlog(error.response.status, 1);
                               dwmlog(error.response.headers, 1);
                           } else if (error.request) {
                               /*
                               * The request was made but no response was received, `error.request`
                               * is an instance of XMLHttpRequest in the browser and an instance
                               * of http.ClientRequest in Node.js
                               */
                               dwmlog("Server antwortet nicht", 1);
                           } else {
                               // Something happened in setting up the request and triggered an Error
                               dwmlog(error.message, 1, 'warn');
                           }
                           dwmlog(error,1);
                       }
                   }
                }
                
                

                Danke

                Thomas BraunT Online
                Thomas BraunT Online
                Thomas Braun
                Most Active
                wrote on last edited by
                #607

                Ist es eigentlich normal, dass alle 5 Minuten die deutschlandweite Corona-Hinweismeldung im log erscheint? Einmal würde mir reichen.
                Oder hab ich da irgendwas übersehen?

                Linux-Werkzeugkasten:
                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                NodeJS Fixer Skript:
                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                T 1 Reply Last reply
                0
                • Thomas BraunT Thomas Braun

                  Ist es eigentlich normal, dass alle 5 Minuten die deutschlandweite Corona-Hinweismeldung im log erscheint? Einmal würde mir reichen.
                  Oder hab ich da irgendwas übersehen?

                  T Do not disturb
                  T Do not disturb
                  ticaki
                  wrote on last edited by ticaki
                  #608

                  @thomas-braun
                  Ja es ist normal. Wenn du

                  var uLogAusgabe=        false;
                  

                  auf false setzt werden die Logausgaben auf nahe 0 reduziert. Für die Ersteinrichtung möchte ich das aber nicht als default setzten.

                  Etwas mehr Infos dazu: Nina erzeugt jedesmal "neue" States, wenn es aktualisiert wird. Wenn dein Adapter auf 5 Minuten steht, wird alle 5 Minuten eine neue Warnung gefunden und dazu gibt es dann Logausgaben (über das verändern der alten Warnung oder das hinzufügen einer neuen..)

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  1 Reply Last reply
                  0
                  • T ticaki

                    Hallo,

                    ich hab das UWZ Skript auf Axios umgestellt, wäre nett wenn jemand testet, ob es Probleme gibt.

                    // Version 1.04
                    // Author: dwm
                    // Änderungen ticaki
                    // 1.01 debuglevel keine Ausgabe bei 1;
                    // 1.02 let und variable "Fehler" behoben (wurde als Syntaxfehler angezeigt)
                    // 1.03 logausgabe fehler bei keiner Verbindung behoben
                    // 1.03 schedule gegen setInterval() getauscht.
                    // 1.04 umgestellt auf Axios.
                    
                    var intervalMinutes = 5;
                    var debuglevel = 4;
                    var debugchannel = 'info';
                    
                    const axios = require('axios');
                    
                    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 = ['UWZxxxxxxx'];
                    /**************************************************************************************/
                    
                    
                    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 (let 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,{min:0, max:6, 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, thedata) {
                       if (!thedata) {
                          return;
                       }
                    
                       var warnings= [];
                       if (thedata.results.length>0) {
                           for (let 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),2);
                       let areaChannelId=ChannelId+"."+Area;
                       for (let 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);
                    
                    setInterval(work,intervalMinutes * 60 * 1000);
                    work();
                    
                    async function work() {
                       for (var i=0; i<warncellid.length; i++) {
                           try {
                               const res = await axios.get(url.replace("XXXAREAXXX",warncellid[i]));
                               dwmlog("AREA: "+getAreaFromURI(res.config.url),4);
                               dwmlog("UWZ Body: " + JSON.stringify(res.data),4);
                               dwmlog("Status: " + res.status,4);
                               if (res.status == 200) {
                                   processData(getAreaFromURI(res.config.url),res.data);
                               }
                           } catch (error) {
                               // Error 😨
                               if (error.response) {
                                   /*
                                   * The request was made and the server responded with a
                                   * status code that falls out of the range of 2xx
                                   */
                                   dwmlog(error.response.data, 1);
                                   dwmlog(error.response.status, 1);
                                   dwmlog(error.response.headers, 1);
                               } else if (error.request) {
                                   /*
                                   * The request was made but no response was received, `error.request`
                                   * is an instance of XMLHttpRequest in the browser and an instance
                                   * of http.ClientRequest in Node.js
                                   */
                                   dwmlog("Server antwortet nicht", 1);
                               } else {
                                   // Something happened in setting up the request and triggered an Error
                                   dwmlog(error.message, 1, 'warn');
                               }
                               dwmlog(error,1);
                           }
                       }
                    }
                    
                    

                    Danke

                    sigi234S Online
                    sigi234S Online
                    sigi234
                    Forum Testing Most Active
                    wrote on last edited by sigi234
                    #609

                    @ticaki sagte in [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten:

                    ich hab das UWZ Skript auf Axios umgestellt, wäre nett wenn jemand testet, ob es Probleme gibt.

                    Danke, läuft soweit. Warte auf eine Warnung.

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

                    T 1 Reply Last reply
                    0
                    • sigi234S sigi234

                      @ticaki sagte in [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten:

                      ich hab das UWZ Skript auf Axios umgestellt, wäre nett wenn jemand testet, ob es Probleme gibt.

                      Danke, läuft soweit. Warte auf eine Warnung.

                      T Do not disturb
                      T Do not disturb
                      ticaki
                      wrote on last edited by ticaki
                      #610

                      @sigi234
                      Da war noch ein geerbter Fehler in der Logausgabe... Oder der Fehler ist durch updates im Javascript-Adapter erst als solcher entstanden.

                      // Version 1.05
                      // Author: dwm
                      // Änderungen ticaki
                      // 1.01 debuglevel keine Ausgabe bei 1;
                      // 1.02 let und variable "Fehler" behoben (wurde als Syntaxfehler angezeigt)
                      // 1.03 logausgabe fehler bei keiner Verbindung behoben
                      // 1.03 schedule gegen setInterval() getauscht.
                      // 1.04 umgestellt auf Axios.
                      // 1.05 Fehler in dwmlog behoben
                      
                      var intervalMinutes = 5;
                      var debuglevel = 1;
                      var debugchannel = 'info';
                      
                      const axios = require('axios');
                      
                      function dwmlog( message, level, channel) {
                        if (channel === undefined) {
                            channel = debugchannel;
                        }
                        if (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 = ['UWZxxxxxxx'];
                      /**************************************************************************************/
                      
                      
                      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 (let 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,{min:0, max:6, 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, thedata) {
                         if (!thedata) {
                            return;
                         }
                      
                         var warnings= [];
                         if (thedata.results.length>0) {
                             for (let 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),2);
                         let areaChannelId=ChannelId+"."+Area;
                         for (let 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);
                      
                      setInterval(work,intervalMinutes * 60 * 1000);
                      work();
                      
                      async function work() {
                         for (var i=0; i<warncellid.length; i++) {
                             try {
                                 const res = await axios.get(url.replace("XXXAREAXXX",warncellid[i]));
                                 dwmlog("AREA: "+getAreaFromURI(res.config.url),4);
                                 dwmlog("UWZ Body: " + JSON.stringify(res.data),4);
                                 dwmlog("Status: " + res.status,4);
                                 if (res.status == 200) {
                                     processData(getAreaFromURI(res.config.url),res.data);
                                 }
                             } catch (error) {
                                 // Error 😨
                                 if (error.response) {
                                     /*
                                     * The request was made and the server responded with a
                                     * status code that falls out of the range of 2xx
                                     */
                                     dwmlog(error.response.data, 1);
                                     dwmlog(error.response.status, 1);
                                     dwmlog(error.response.headers, 1);
                                 } else if (error.request) {
                                     /*
                                     * The request was made but no response was received, `error.request`
                                     * is an instance of XMLHttpRequest in the browser and an instance
                                     * of http.ClientRequest in Node.js
                                     */
                                     dwmlog("Server antwortet nicht", 1);
                                 } else {
                                     // Something happened in setting up the request and triggered an Error
                                     dwmlog(error.message, 1, 'warn');
                                 }
                                 dwmlog(error,1);
                             }
                         }
                      }
                      

                      Änderungen:
                      debuglevel auf 1 gesetzt

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      1 Reply Last reply
                      0
                      • NashraN Offline
                        NashraN Offline
                        Nashra
                        Most Active Forum Testing
                        wrote on last edited by Nashra
                        #611

                        Moin, ist die Ausgabe im Log so richtig wenn keine Warnungen vorliegen?

                        javascript.0 496 2021-09-07 11:52:17.046 info script.js.Wetter.DWD-UWZ-NINA-2: []
                        javascript.0 496 2021-09-07 11:52:17.046 info script.js.Wetter.DWD-UWZ-NINA-2: Status: 200
                        javascript.0 496 2021-09-07 11:52:17.046 info script.js.Wetter.DWD-UWZ-NINA-2: UWZ Body: {"results":],"generator":"PHPjf"}
                        javascript.0 496 2021-09-07 11:52:17.045 info script.js.Wetter.DWD-UWZ-NINA-2: AREA: UWZDExyz
                        

                        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.

                        T 1 Reply Last reply
                        0
                        • NashraN Nashra

                          Moin, ist die Ausgabe im Log so richtig wenn keine Warnungen vorliegen?

                          javascript.0 496 2021-09-07 11:52:17.046 info script.js.Wetter.DWD-UWZ-NINA-2: []
                          javascript.0 496 2021-09-07 11:52:17.046 info script.js.Wetter.DWD-UWZ-NINA-2: Status: 200
                          javascript.0 496 2021-09-07 11:52:17.046 info script.js.Wetter.DWD-UWZ-NINA-2: UWZ Body: {"results":],"generator":"PHPjf"}
                          javascript.0 496 2021-09-07 11:52:17.045 info script.js.Wetter.DWD-UWZ-NINA-2: AREA: UWZDExyz
                          
                          T Do not disturb
                          T Do not disturb
                          ticaki
                          wrote on last edited by
                          #612

                          @nashra
                          Welche Version?

                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                          Spenden

                          NashraN 1 Reply Last reply
                          0
                          • T ticaki

                            @nashra
                            Welche Version?

                            NashraN Offline
                            NashraN Offline
                            Nashra
                            Most Active Forum Testing
                            wrote on last edited by
                            #613

                            @ticaki sagte in [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten:

                            @nashra
                            Welche Version?

                            UWZ 1.05

                            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.

                            T 1 Reply Last reply
                            0
                            • NashraN Nashra

                              @ticaki sagte in [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten:

                              @nashra
                              Welche Version?

                              UWZ 1.05

                              T Do not disturb
                              T Do not disturb
                              ticaki
                              wrote on last edited by
                              #614

                              @nashra
                              Danke!
                              Stelle das debuglevel auf 1, werde ich nachher in der Vorlage ändern

                              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                              Spenden

                              NashraN 1 Reply Last reply
                              1
                              • T ticaki

                                @nashra
                                Danke!
                                Stelle das debuglevel auf 1, werde ich nachher in der Vorlage ändern

                                NashraN Offline
                                NashraN Offline
                                Nashra
                                Most Active Forum Testing
                                wrote on last edited by
                                #615

                                @ticaki sagte in [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten:

                                @nashra
                                Danke!
                                Stelle das debuglevel auf 1, werde ich nachher in der Vorlage ändern

                                gemacht :+1:

                                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 Reply Last reply
                                0
                                • crunchipC crunchip

                                  @d4ve das mit der Meldung Nebel....wurde verlängert....hatte ich heute auch

                                  T Do not disturb
                                  T Do not disturb
                                  ticaki
                                  wrote on last edited by
                                  #616

                                  @crunchip
                                  Ich denke ich hab den Fehler gefunden.

                                  0.97.19.4

                                  • DWD Spam hoffentlich behoben.
                                  • unnötigen Code entfernt

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  crunchipC 1 Reply Last reply
                                  0
                                  • T ticaki

                                    @crunchip
                                    Ich denke ich hab den Fehler gefunden.

                                    0.97.19.4

                                    • DWD Spam hoffentlich behoben.
                                    • unnötigen Code entfernt
                                    crunchipC Away
                                    crunchipC Away
                                    crunchip
                                    Forum Testing Most Active
                                    wrote on last edited by crunchip
                                    #617

                                    @ticaki ok, guck ich mal, dann muss ich das aber auch wieder zurückstellen

                                    w.repeatCounter += w2.repeatCounter + 2;
                                    
                                    if (w.repeatCounter > 300 ) { 
                                    

                                    edit
                                    brauch ich ja nicht ändern, wird ja überschrieben

                                    umgestiegen von Proxmox auf Unraid

                                    1 Reply Last reply
                                    0
                                    • Thomas BraunT Online
                                      Thomas BraunT Online
                                      Thomas Braun
                                      Most Active
                                      wrote on last edited by
                                      #618

                                      javascript.0 (7265) script.js.common.dwd_uwz_nina_warnungen: Alle Benachrichtigungen ausgeschaltet, bitte unter ioBroker - Objektansicht - Pfad des Skripts - config - UWZ und/oder DWD und/oder NINA auf true stellen.

                                      Kapier ich nicht. Wo ist das einzustellen?

                                      Linux-Werkzeugkasten:
                                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                      NodeJS Fixer Skript:
                                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                      P 1 Reply Last reply
                                      0
                                      • Thomas BraunT Thomas Braun

                                        javascript.0 (7265) script.js.common.dwd_uwz_nina_warnungen: Alle Benachrichtigungen ausgeschaltet, bitte unter ioBroker - Objektansicht - Pfad des Skripts - config - UWZ und/oder DWD und/oder NINA auf true stellen.

                                        Kapier ich nicht. Wo ist das einzustellen?

                                        P Offline
                                        P Offline
                                        patti_9000
                                        wrote on last edited by
                                        #619

                                        @thomas-braun
                                        Das Skript legt automatisch Objekte/Datenpunkte an und dort gobt es, wie angegeben, jeweils einen Datenpunkt für UWZ, Nina und DWD. Dort musst du den gewünschten Dienst auf TRUE stellen.

                                        1 Reply Last reply
                                        0
                                        • T Do not disturb
                                          T Do not disturb
                                          ticaki
                                          wrote on last edited by
                                          #620

                                          Habe in dem Logeintrag "Pfad des Skripts" durch den Inhalt von mainStatePath ersetzt.

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

                                          1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          690

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe