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

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

Community Forum

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

NEWS

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

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

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

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
1.5k Beiträge 53 Kommentatoren 571.4k Aufrufe 52 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T ticaki

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

    D4vED Offline
    D4vED Offline
    D4vE
    schrieb am zuletzt editiert von D4vE
    #600

    //Version 13.6

    //nachbearbeitet von ticaki

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

    1 Antwort Letzte Antwort
    0
    • T ticaki

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

      D4vED Offline
      D4vED Offline
      D4vE
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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 Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von
        #602

        @d4ve
        dann hast du nicht die Zeile ersetzt

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        D4vED 1 Antwort Letzte Antwort
        0
        • T ticaki

          @d4ve
          dann hast du nicht die Zeile ersetzt

          D4vED Offline
          D4vED Offline
          D4vE
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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 Nicht stören
            T Nicht stören
            ticaki
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • T Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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 Nicht stören
                    T Nicht stören
                    ticaki
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      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 Nicht stören
                        T Nicht stören
                        ticaki
                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                        0
                        • NashraN Offline
                          NashraN Offline
                          Nashra
                          Most Active Forum Testing
                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                          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 Nicht stören
                            T Nicht stören
                            ticaki
                            schrieb am zuletzt editiert von
                            #612

                            @nashra
                            Welche Version?

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            NashraN 1 Antwort Letzte Antwort
                            0
                            • T ticaki

                              @nashra
                              Welche Version?

                              NashraN Offline
                              NashraN Offline
                              Nashra
                              Most Active Forum Testing
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • NashraN Nashra

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

                                @nashra
                                Welche Version?

                                UWZ 1.05

                                T Nicht stören
                                T Nicht stören
                                ticaki
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • crunchipC crunchip

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

                                    T Nicht stören
                                    T Nicht stören
                                    ticaki
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    • T ticaki

                                      @crunchip
                                      Ich denke ich hab den Fehler gefunden.

                                      0.97.19.4

                                      • DWD Spam hoffentlich behoben.
                                      • unnötigen Code entfernt
                                      crunchipC Abwesend
                                      crunchipC Abwesend
                                      crunchip
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                      0
                                      • Thomas BraunT Online
                                        Thomas BraunT Online
                                        Thomas Braun
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          851

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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