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

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

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. 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.3k

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

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

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
1.5k Beiträge 53 Kommentatoren 570.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 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
                              • T Nicht stören
                                T Nicht stören
                                ticaki
                                schrieb am zuletzt editiert von
                                #620

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

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                1 Antwort Letzte Antwort
                                1
                                • wendy2702W Online
                                  wendy2702W Online
                                  wendy2702
                                  schrieb am zuletzt editiert von
                                  #621

                                  Hallo,

                                  ich nutze Script Version 0.97.19.2

                                  Und habe seit gestern das Problem das alle 20 minuten die exact gleiche Meldung gesendet und ausgegeben wird bis sich diese ändert:

                                  c7514fc8-11df-497c-b3e2-c888c61c6596-image.png

                                  Ist das noch ein Bug den ich mit einer neueren Version wegbekomme?

                                  Bitte keine Fragen per PN, die gehören ins Forum!

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

                                  T 1 Antwort Letzte Antwort
                                  0
                                  • crunchipC Abwesend
                                    crunchipC Abwesend
                                    crunchip
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von crunchip
                                    #622

                                    @wendy2702 siehe https://forum.iobroker.net/post/677331

                                    umgestiegen von Proxmox auf Unraid

                                    wendy2702W 1 Antwort Letzte Antwort
                                    0
                                    • crunchipC crunchip

                                      @wendy2702 siehe https://forum.iobroker.net/post/677331

                                      wendy2702W Online
                                      wendy2702W Online
                                      wendy2702
                                      schrieb am zuletzt editiert von
                                      #623

                                      @crunchip ok.

                                      Dann werde ich die mal testen.

                                      Danke

                                      Bitte keine Fragen per PN, die gehören ins Forum!

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

                                      1 Antwort Letzte Antwort
                                      0
                                      • wendy2702W wendy2702

                                        Hallo,

                                        ich nutze Script Version 0.97.19.2

                                        Und habe seit gestern das Problem das alle 20 minuten die exact gleiche Meldung gesendet und ausgegeben wird bis sich diese ändert:

                                        c7514fc8-11df-497c-b3e2-c888c61c6596-image.png

                                        Ist das noch ein Bug den ich mit einer neueren Version wegbekomme?

                                        T Nicht stören
                                        T Nicht stören
                                        ticaki
                                        schrieb am zuletzt editiert von
                                        #624

                                        @wendy2702
                                        Ich hatte den Fehler gestern auch, hab dann die aktuelle Version rüberkopiert und dann wars weg. Kann aber noch immer sein, war mir nicht sicher ob ich die aktuelle Version benutze :)

                                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                        Spenden

                                        1 Antwort Letzte Antwort
                                        0
                                        • T Nicht stören
                                          T Nicht stören
                                          ticaki
                                          schrieb am zuletzt editiert von ticaki
                                          #625

                                          Version 0.97.23

                                          • Restartfunktion überarbeitet (alive Datenpunkt ist jetzt ohne Funktion und kann gelöscht werden)
                                          • Unter .alert den Datenpunkt current angelegt, der auf true schaltet wenn der aktuelle Zeitpunkt zwischen start und ende der Warnung liegt.
                                          • kk

                                          Ich nutze current in Abwesenheit für meinen Rolladen an der Balkontür, die nicht immer zu ist.

                                          Beispiel:

                                          on ({id:['javascript.0.wetterwarnung.alert.dwd.Regen.current','javascript.0.wetterwarnung.alert.dwd.Sturm.current','javascript.0.wetterwarnung.alert.dwd.Hitzewarnungen.current'], change:'gt', ack:true}, 
                                          function(obj){
                                              let aId = obj.id.split('.');
                                              aId[aId.length-1] = 'level';
                                              let oId = aId.join('.');
                                              if (getState(oId).val > 1
                                              && !getState('0_userdata.0.Sensoren.Anwesenheit.Anyone').val
                                              ) {
                                                  log('Rollladen geschlossen Aufgrund von Wetterwarnungen!');
                                                  setState('shelly.0.SHSW-25#C45BBE5FC53F#1.Shutter.Close', true);
                                              }
                                          })
                                          

                                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                          Spenden

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          662

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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