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.1k

  • 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.6k 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

    @megawaldi
    Poste sie und wenn du Github benutzt gib mir den Link und ich setzte sie ins erste Posting. Hoffe du benutzt Interval und nicht schedule :)

    M Offline
    M Offline
    Megawaldi
    schrieb am zuletzt editiert von
    #693

    @ticaki
    Ich hab mich eigendlich für schedule entschieden 😉. Gibt es aus deiner sicht nen Grund warum interval bessser ist?

    T 1 Antwort Letzte Antwort
    0
    • M Megawaldi

      @ticaki
      Ich hab mich eigendlich für schedule entschieden 😉. Gibt es aus deiner sicht nen Grund warum interval bessser ist?

      T Offline
      T Offline
      ticaki
      schrieb am zuletzt editiert von ticaki
      #694

      @megawaldi
      Wenn alle Leute die bei DWD Daten abrufen schedule verwenden, freut sich der Server sicherlich zu jeder vollen Stunde ganz doll über das hohe Interesse. :) Intervall richtet sich nach dem Startzeitpunkt des Skriptes und damit werden die Zugriffe mehr verteilt und es gibt nicht diese Peaks wie mit schedule.

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      M 1 Antwort Letzte Antwort
      0
      • T ticaki

        @megawaldi
        Wenn alle Leute die bei DWD Daten abrufen schedule verwenden, freut sich der Server sicherlich zu jeder vollen Stunde ganz doll über das hohe Interesse. :) Intervall richtet sich nach dem Startzeitpunkt des Skriptes und damit werden die Zugriffe mehr verteilt und es gibt nicht diese Peaks wie mit schedule.

        M Offline
        M Offline
        Megawaldi
        schrieb am zuletzt editiert von
        #695

        @ticaki
        Hier mal zum testen: Habs auf Intervall geändert 😉

        const axios = require('axios'); 
        
        var debuglevel = 1;
        var debugchannel = 'info';
        
        var channelId = "0_userdata.0.UWZ";
        
        var intervalMinutes = 5; 
        var forceInitStates = false;
        var numOfWarnings = 5;
        
        var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
        
        
        /********************* Hier die Warnzellen-Id's eintragen *****************************/
        var warncellid = ['UWZDE53879'];
        /**************************************************************************************/
        
        createStates(numOfWarnings);
        
        setInterval(work,intervalMinutes * 60 * 1000);
        work();
        
        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: 'object'});
                 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:10, type: 'number'});
                 createState(areaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:{0:"n/a",1:"unbekannt",2:"Sturm/Orkan",3:"Schneefall",4:"Starkregen",5:"Extremfrost",6:"Waldbrandgefahr",7:"Gewitter",8:"Glätte",9:"Hitze",10:"Glatteisregen",11:"Bodenfrost"}});
                 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){
           if(warnName != undefined){
               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;
           } else {
               return 0;
           }
        }
        
        function getUWZUrgency (warnName){
           if(warnName != undefined){
               var result = 0;
               
               var alert = warnName.split("_");
               if (alert[1] == "forewarn") {
                   result = 1;
               }
               else {
                   result = 2; // immediate;
               }
               return result;
           } else {
               return 0;
           }
        }
        
        function getLevelColor(uwzLevel,levelName) {
           if(levelName != undefined){
               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;
               }
           } else {
               return 0;
           }
        }
        
        function createHTMLShort(theData,uwzColor,uwzUrgency,shortText){
           if(theData.type != undefined){
               var html = '<div style="background: #'+uwzColor.toString(16)+'" border:"10px">';
               html += '<h3>';
               if (uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
               html += UWZTypesArray[theData.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>'+shortText+'</p>';
               html += "</div>";
               return html;
           } else {
               return '';
           }
        }
        
        function createHTMLLong(theData,uwzColor,uwzUrgency,longText){
           if(theData.type != undefined){
               var html = '<div style="background: #'+uwzColor.toString(16)+'" border:"10px">';
               html += '<h3>';
               if (uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
               html += UWZTypesArray[theData.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>'+longText+'</p>';
               html += "</div>";
               return html;
           } else {
               return '';
           }
        }
        
        async function writeResultEntry(_warnObj,_i,_area) {
           let areaChannelId=channelId+"."+_area+".warning."+_i;
           
           var warnObjSting = JSON.stringify(_warnObj)|| '{}';
           var warnObj = JSON.parse(warnObjSting);
           
           var object = _warnObj != undefined ? _warnObj : Object({});
           var begin = _warnObj != undefined ? formatDate(new Date(warnObj.dtgStart*1000),"DD.MM.YYYY hh:mm") : "";
           var end = _warnObj != undefined ? formatDate(new Date(warnObj.dtgEnd*1000),"DD.MM.YYYY hh:mm") : "";
           var longText = _warnObj != undefined ? warnObj.payload.translationsLongText.DE : "";
           var shortText = _warnObj != undefined ? warnObj.payload.translationsShortText.DE : ""; 
           var severity = warnObj.severity || 0;
           var type = warnObj.type || 0;
           var uwzLevel = _warnObj != undefined ? getUWZLevel(warnObj.payload.levelName) : getUWZLevel(undefined);
           var uwzUrgency = _warnObj != undefined ? getUWZUrgency(warnObj.payload.levelName) : getUWZUrgency(undefined);
           var uwzColor = _warnObj != undefined ? getLevelColor(uwzLevel,warnObj.payload.levelName):  getLevelColor(uwzLevel,undefined) ;
           var htmlShort = createHTMLShort(warnObj,uwzColor,uwzUrgency,shortText);
           var htmlLong  = createHTMLLong(warnObj,uwzColor,uwzUrgency,longText);
        
           var oldObject = (await getStateAsync(areaChannelId+".object")).val;
        
           if(JSON.stringify(object) != JSON.stringify(oldObject)){
               setState(areaChannelId+".LongText",longText);
               setState(areaChannelId+".ShortText",shortText);
               setState(areaChannelId+".object",object);
               setState(areaChannelId+".begin",begin)
               setState(areaChannelId+".end",end);
               setState(areaChannelId+".severity",severity);
               setState(areaChannelId+".type",type);
               setState(areaChannelId+".uwzLevel",uwzLevel);
               setState(areaChannelId+".uwzColor",uwzColor);
               setState(areaChannelId+".HTMLShort",htmlShort);
               setState(areaChannelId+".HTMLLong",htmlLong);
           } else {
               dwmlog('Datensatz '+_i+' ist schon vorhanden',4);
           }
           
        }
        
        function processData(area, thedata) {
           if (!thedata) {
               return;
           }
        
           var jsonResults= [];
           if (thedata.results.length>0) {
               for (let i=0; i<thedata.results.length; i++) {
                   jsonResults.push(thedata.results[i]);
               }
           }
        
           jsonResults.sort(function(a,b){
               var asort = a.severity;
               var bsort = b.severity;
               return bsort-asort;
           });
        
           dwmlog(JSON.stringify(jsonResults),2);
           for (let i=0; i<numOfWarnings; i++) {
               if (i<jsonResults.length) {
                   //console.log(i+' -> mit Result'); 
                   writeResultEntry(jsonResults[i],i,area);
               } else {
                   //console.log(i+' -> ohne Result'); 
                   writeResultEntry(undefined,i,area);
               }
           }
        }
        
        function getAreaFromURI(uri) {
         var searchstr = "&areaID=";
         var n = uri.search(searchstr);
         var result = uri.slice(n+searchstr.length,uri.length);
         return result;
        }
        
        async function work() {
           for (var i=0; i<warncellid.length; i++) {
               await axios.get(url.replace("XXXAREAXXX",warncellid[i]))
               .then(results => {
                   dwmlog("AREA: "+warncellid[i],4);
                   dwmlog("UWZ Body: " + JSON.stringify(results.data),4);
                   dwmlog("Status: " + results.status,4);
                   if (results.status == 200) {
                       processData(getAreaFromURI(results.config.url),results.data);
                   } else {
                       dwmlog('Keine Daten empfangen',1);
                   }
               })
               .catch(error => {
                   if (error.response.status == 404){
                       dwmlog(error.message, 1);
                   } else {
                       dwmlog(error.response.data, 1);
                       dwmlog(error.response.status, 1);
                       dwmlog(error.response.headers, 1);
                   }
               })            
           }
        }
        
        function dwmlog( message, level, channel) {
         if (channel === undefined) {
             channel = debugchannel;
         }
         if (level === undefined)
         {
             level = debuglevel;
         }
         if ( debuglevel >= level ) {
             log (message, channel );
         }
        }
        

        const axios = require('axios');
        
        var debuglevel = 1;
        var debugchannel = 'info';
        
        var channelId = '0_userdata.0.DWD.'+instance+'.warning';
        
        var intervalMinutes = 5;
        var forceInitStates = false;
        var numOfWarnings = 5;
        
        var url='https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json';
        
        /********************* Hier die Warnzellen-Id's eintragen *****************************/
        const warncellid = ['105366000'];
        const land = 'nrw';
        /**************************************************************************************/
        
        createStates(numOfWarnings);
        
        setInterval(work,intervalMinutes * 60 * 1000);
        work();
        
        
        
        function createStates(anz){
           for (let i=0; i<anz; i++) {
                   if(i==0){
                       var baseChannelId = channelId;
                   } else {
                       var baseChannelId = channelId+i;
                   } 
                   createState(baseChannelId+".begin","",forceInitStates,{name: "Warning begin",type: "number",role: "value.time",read: true,write: true});
                   createState(baseChannelId+".description","",forceInitStates,{name: "Warning description",type: "string",role: "weather.state",read: true,write: true});
                   createState(baseChannelId+".end","",forceInitStates,{name: "Warning end",type: "number",role: "value.time",read: true,write: true});
                   createState(baseChannelId+".headline","",forceInitStates,{name: "Warning description",type: "string",role: "weather.state",read: true,write: true});
                   createState(baseChannelId+".level",0,forceInitStates,{name: "Warning level",type: "number",role: "value.warning",read: true,write: true,states: {1: "Preliminary info",2: "Minor",3: "Moderate",4: "Severe",5: "Extreme"}});
                   createState(baseChannelId+".map","",forceInitStates,{name: "Link to chart",type: "string",role: "weather.chart.url",read: true,write: true});
                   createState(baseChannelId+".object","",forceInitStates,{name: "JSON object with warning",type: "object",role: "weather.json",read: true,write: true});
                   createState(baseChannelId+".severity",0,forceInitStates,{name: "Warning severity",type: "number",role: "value.severity",read: true,write: true,states: {0: "None",1: "Minor",2: "Moderate",3: "Severe",4: "Extreme",9: "Heat Warning",11: "No Warning",19: "UV Warning",49: "Strong Heat",50: "Extreme Heat"}});
                   createState(baseChannelId+".text","",forceInitStates,{name: "Warning text",type: "string",role: "weather.title.short",read: true,write: true});
                   createState(baseChannelId+".type",0,forceInitStates,{name: "Warning type",type: "number",role: "weather.type",read: true,write: true,states: {0: "Thunderstorm",1: "Wind/Storm",2: "Rain",3: "Snow",4: "Fog",5: "Frost",6: "Ice",7: "Thawing",8: "Heat",9: "UV warning"}});  
           }
         
        }
        
        async function writeResultEntry(_warnObj,_i) {
           
           if(_i==0){
               var baseChannelId = channelId;
           } else {
               var baseChannelId = channelId+_i;
           }
            
           const maps = ['gewitter', 'sturm', 'regen', 'schnee', 'nebel', 'frost', 'glatteis', 'tauwetter', 'hitze', 'uv'];
           var warnObj = _warnObj || '{}';
           
           warnObj = JSON.parse(warnObj);
           var begin=warnObj.start || Number("");
           var description=warnObj.description || '';
           var end=warnObj.end || Number("");
           var headline=warnObj.headline || '';
           var level = warnObj.level === undefined || warnObj.level === null ? null : parseInt(warnObj.level, 10);
           var object = warnObj;
           var severity = warnObj.level > 1 ? warnObj.level - 1 : 0;
           var text=warnObj.event || '';
           var type = warnObj.type  === undefined || warnObj.type  === null ? null : parseInt(warnObj.type, 10);
           if (warnObj.type !== undefined && warnObj.type !== null) {
               var map = 'https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/json/warnungen_gemeinde_map_'+land+'_'+maps[warnObj.type]+'.png';
           } else {
               var map ='';
           }
           
           var oldObject = (await getStateAsync(baseChannelId+".object")).val;
        
           if(JSON.stringify(object) != JSON.stringify(oldObject)){
               setState(baseChannelId+".begin",begin);
               setState(baseChannelId+".description",description);
               setState(baseChannelId+".end",end);
               setState(baseChannelId+".headline",headline);
               setState(baseChannelId+".level",Number(level));
               setState(baseChannelId+".map",map);
               setState(baseChannelId+".object",object);
               setState(baseChannelId+".severity",severity);
               setState(baseChannelId+".text",text);
               setState(baseChannelId+".type",Number(type));
           } else {
               dwmlog('Datensatz '+_i+' ist schon vorhanden',4);
           }
        }
        
        function processData(area, thedata) {
           if (!thedata) {
               return;
           }
           var jsonString = String(thedata);
           var newString = jsonString.replace('warnWetter.loadWarnings(','');
           newString = newString.replace(');','');
           var newJSON = JSON.parse(newString);
           
           var jsonResults = [];
           if (newJSON.warnings.hasOwnProperty(area)) {
               var anz = newJSON.warnings[area].length;
               for(var i=0;i<anz;i++){
                   jsonResults.push(JSON.stringify(newJSON.warnings[area][i]));
               }
           } 
        
           dwmlog(JSON.stringify(jsonResults),2);
           for (let i=0; i<numOfWarnings; i++) {
               if (i<jsonResults.length) {
                   //console.log(i+' -> mit Result'); 
                   writeResultEntry(jsonResults[i],i);
               } else {
                   //console.log(i+' -> ohne Result'); 
                   writeResultEntry(undefined,i);
               }
           }
           
        }
          
        async function work() {
           for (var i=0; i<warncellid.length; i++) {
               await axios.get(url)
               .then(results => {
                   dwmlog("AREA: "+warncellid[i],4);
                   dwmlog("UWZ Body: " + JSON.stringify(results.data),4);
                   dwmlog("Status: " + results.status,4);
                   if (results.status == 200) {
                       processData(+warncellid[i],results.data);
                   } else {
                       dwmlog('Keine Daten empfangen',1);
                   }
               })
               .catch(error => {
                   if (error.response.status == 404){
                       dwmlog(error.message, 1);
                   } else {
                       dwmlog(error.response.data, 1);
                       dwmlog(error.response.status, 1);
                       dwmlog(error.response.headers, 1);
                   }
               })            
           }
        }
        
        function dwmlog( message, level, channel) {
           if (channel === undefined) {
               channel = debugchannel;
           }
           if (level === undefined) {
               level = debuglevel;
           }
           if ( debuglevel >= level ) {
               log (message, channel );
           }
        }
        

        T 1 Antwort Letzte Antwort
        0
        • M Megawaldi

          @ticaki
          Hier mal zum testen: Habs auf Intervall geändert 😉

          const axios = require('axios'); 
          
          var debuglevel = 1;
          var debugchannel = 'info';
          
          var channelId = "0_userdata.0.UWZ";
          
          var intervalMinutes = 5; 
          var forceInitStates = false;
          var numOfWarnings = 5;
          
          var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
          
          
          /********************* Hier die Warnzellen-Id's eintragen *****************************/
          var warncellid = ['UWZDE53879'];
          /**************************************************************************************/
          
          createStates(numOfWarnings);
          
          setInterval(work,intervalMinutes * 60 * 1000);
          work();
          
          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: 'object'});
                   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:10, type: 'number'});
                   createState(areaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:{0:"n/a",1:"unbekannt",2:"Sturm/Orkan",3:"Schneefall",4:"Starkregen",5:"Extremfrost",6:"Waldbrandgefahr",7:"Gewitter",8:"Glätte",9:"Hitze",10:"Glatteisregen",11:"Bodenfrost"}});
                   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){
             if(warnName != undefined){
                 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;
             } else {
                 return 0;
             }
          }
          
          function getUWZUrgency (warnName){
             if(warnName != undefined){
                 var result = 0;
                 
                 var alert = warnName.split("_");
                 if (alert[1] == "forewarn") {
                     result = 1;
                 }
                 else {
                     result = 2; // immediate;
                 }
                 return result;
             } else {
                 return 0;
             }
          }
          
          function getLevelColor(uwzLevel,levelName) {
             if(levelName != undefined){
                 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;
                 }
             } else {
                 return 0;
             }
          }
          
          function createHTMLShort(theData,uwzColor,uwzUrgency,shortText){
             if(theData.type != undefined){
                 var html = '<div style="background: #'+uwzColor.toString(16)+'" border:"10px">';
                 html += '<h3>';
                 if (uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                 html += UWZTypesArray[theData.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>'+shortText+'</p>';
                 html += "</div>";
                 return html;
             } else {
                 return '';
             }
          }
          
          function createHTMLLong(theData,uwzColor,uwzUrgency,longText){
             if(theData.type != undefined){
                 var html = '<div style="background: #'+uwzColor.toString(16)+'" border:"10px">';
                 html += '<h3>';
                 if (uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
                 html += UWZTypesArray[theData.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>'+longText+'</p>';
                 html += "</div>";
                 return html;
             } else {
                 return '';
             }
          }
          
          async function writeResultEntry(_warnObj,_i,_area) {
             let areaChannelId=channelId+"."+_area+".warning."+_i;
             
             var warnObjSting = JSON.stringify(_warnObj)|| '{}';
             var warnObj = JSON.parse(warnObjSting);
             
             var object = _warnObj != undefined ? _warnObj : Object({});
             var begin = _warnObj != undefined ? formatDate(new Date(warnObj.dtgStart*1000),"DD.MM.YYYY hh:mm") : "";
             var end = _warnObj != undefined ? formatDate(new Date(warnObj.dtgEnd*1000),"DD.MM.YYYY hh:mm") : "";
             var longText = _warnObj != undefined ? warnObj.payload.translationsLongText.DE : "";
             var shortText = _warnObj != undefined ? warnObj.payload.translationsShortText.DE : ""; 
             var severity = warnObj.severity || 0;
             var type = warnObj.type || 0;
             var uwzLevel = _warnObj != undefined ? getUWZLevel(warnObj.payload.levelName) : getUWZLevel(undefined);
             var uwzUrgency = _warnObj != undefined ? getUWZUrgency(warnObj.payload.levelName) : getUWZUrgency(undefined);
             var uwzColor = _warnObj != undefined ? getLevelColor(uwzLevel,warnObj.payload.levelName):  getLevelColor(uwzLevel,undefined) ;
             var htmlShort = createHTMLShort(warnObj,uwzColor,uwzUrgency,shortText);
             var htmlLong  = createHTMLLong(warnObj,uwzColor,uwzUrgency,longText);
          
             var oldObject = (await getStateAsync(areaChannelId+".object")).val;
          
             if(JSON.stringify(object) != JSON.stringify(oldObject)){
                 setState(areaChannelId+".LongText",longText);
                 setState(areaChannelId+".ShortText",shortText);
                 setState(areaChannelId+".object",object);
                 setState(areaChannelId+".begin",begin)
                 setState(areaChannelId+".end",end);
                 setState(areaChannelId+".severity",severity);
                 setState(areaChannelId+".type",type);
                 setState(areaChannelId+".uwzLevel",uwzLevel);
                 setState(areaChannelId+".uwzColor",uwzColor);
                 setState(areaChannelId+".HTMLShort",htmlShort);
                 setState(areaChannelId+".HTMLLong",htmlLong);
             } else {
                 dwmlog('Datensatz '+_i+' ist schon vorhanden',4);
             }
             
          }
          
          function processData(area, thedata) {
             if (!thedata) {
                 return;
             }
          
             var jsonResults= [];
             if (thedata.results.length>0) {
                 for (let i=0; i<thedata.results.length; i++) {
                     jsonResults.push(thedata.results[i]);
                 }
             }
          
             jsonResults.sort(function(a,b){
                 var asort = a.severity;
                 var bsort = b.severity;
                 return bsort-asort;
             });
          
             dwmlog(JSON.stringify(jsonResults),2);
             for (let i=0; i<numOfWarnings; i++) {
                 if (i<jsonResults.length) {
                     //console.log(i+' -> mit Result'); 
                     writeResultEntry(jsonResults[i],i,area);
                 } else {
                     //console.log(i+' -> ohne Result'); 
                     writeResultEntry(undefined,i,area);
                 }
             }
          }
          
          function getAreaFromURI(uri) {
           var searchstr = "&areaID=";
           var n = uri.search(searchstr);
           var result = uri.slice(n+searchstr.length,uri.length);
           return result;
          }
          
          async function work() {
             for (var i=0; i<warncellid.length; i++) {
                 await axios.get(url.replace("XXXAREAXXX",warncellid[i]))
                 .then(results => {
                     dwmlog("AREA: "+warncellid[i],4);
                     dwmlog("UWZ Body: " + JSON.stringify(results.data),4);
                     dwmlog("Status: " + results.status,4);
                     if (results.status == 200) {
                         processData(getAreaFromURI(results.config.url),results.data);
                     } else {
                         dwmlog('Keine Daten empfangen',1);
                     }
                 })
                 .catch(error => {
                     if (error.response.status == 404){
                         dwmlog(error.message, 1);
                     } else {
                         dwmlog(error.response.data, 1);
                         dwmlog(error.response.status, 1);
                         dwmlog(error.response.headers, 1);
                     }
                 })            
             }
          }
          
          function dwmlog( message, level, channel) {
           if (channel === undefined) {
               channel = debugchannel;
           }
           if (level === undefined)
           {
               level = debuglevel;
           }
           if ( debuglevel >= level ) {
               log (message, channel );
           }
          }
          

          const axios = require('axios');
          
          var debuglevel = 1;
          var debugchannel = 'info';
          
          var channelId = '0_userdata.0.DWD.'+instance+'.warning';
          
          var intervalMinutes = 5;
          var forceInitStates = false;
          var numOfWarnings = 5;
          
          var url='https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json';
          
          /********************* Hier die Warnzellen-Id's eintragen *****************************/
          const warncellid = ['105366000'];
          const land = 'nrw';
          /**************************************************************************************/
          
          createStates(numOfWarnings);
          
          setInterval(work,intervalMinutes * 60 * 1000);
          work();
          
          
          
          function createStates(anz){
             for (let i=0; i<anz; i++) {
                     if(i==0){
                         var baseChannelId = channelId;
                     } else {
                         var baseChannelId = channelId+i;
                     } 
                     createState(baseChannelId+".begin","",forceInitStates,{name: "Warning begin",type: "number",role: "value.time",read: true,write: true});
                     createState(baseChannelId+".description","",forceInitStates,{name: "Warning description",type: "string",role: "weather.state",read: true,write: true});
                     createState(baseChannelId+".end","",forceInitStates,{name: "Warning end",type: "number",role: "value.time",read: true,write: true});
                     createState(baseChannelId+".headline","",forceInitStates,{name: "Warning description",type: "string",role: "weather.state",read: true,write: true});
                     createState(baseChannelId+".level",0,forceInitStates,{name: "Warning level",type: "number",role: "value.warning",read: true,write: true,states: {1: "Preliminary info",2: "Minor",3: "Moderate",4: "Severe",5: "Extreme"}});
                     createState(baseChannelId+".map","",forceInitStates,{name: "Link to chart",type: "string",role: "weather.chart.url",read: true,write: true});
                     createState(baseChannelId+".object","",forceInitStates,{name: "JSON object with warning",type: "object",role: "weather.json",read: true,write: true});
                     createState(baseChannelId+".severity",0,forceInitStates,{name: "Warning severity",type: "number",role: "value.severity",read: true,write: true,states: {0: "None",1: "Minor",2: "Moderate",3: "Severe",4: "Extreme",9: "Heat Warning",11: "No Warning",19: "UV Warning",49: "Strong Heat",50: "Extreme Heat"}});
                     createState(baseChannelId+".text","",forceInitStates,{name: "Warning text",type: "string",role: "weather.title.short",read: true,write: true});
                     createState(baseChannelId+".type",0,forceInitStates,{name: "Warning type",type: "number",role: "weather.type",read: true,write: true,states: {0: "Thunderstorm",1: "Wind/Storm",2: "Rain",3: "Snow",4: "Fog",5: "Frost",6: "Ice",7: "Thawing",8: "Heat",9: "UV warning"}});  
             }
           
          }
          
          async function writeResultEntry(_warnObj,_i) {
             
             if(_i==0){
                 var baseChannelId = channelId;
             } else {
                 var baseChannelId = channelId+_i;
             }
              
             const maps = ['gewitter', 'sturm', 'regen', 'schnee', 'nebel', 'frost', 'glatteis', 'tauwetter', 'hitze', 'uv'];
             var warnObj = _warnObj || '{}';
             
             warnObj = JSON.parse(warnObj);
             var begin=warnObj.start || Number("");
             var description=warnObj.description || '';
             var end=warnObj.end || Number("");
             var headline=warnObj.headline || '';
             var level = warnObj.level === undefined || warnObj.level === null ? null : parseInt(warnObj.level, 10);
             var object = warnObj;
             var severity = warnObj.level > 1 ? warnObj.level - 1 : 0;
             var text=warnObj.event || '';
             var type = warnObj.type  === undefined || warnObj.type  === null ? null : parseInt(warnObj.type, 10);
             if (warnObj.type !== undefined && warnObj.type !== null) {
                 var map = 'https://www.dwd.de/DWD/warnungen/warnapp_gemeinden/json/warnungen_gemeinde_map_'+land+'_'+maps[warnObj.type]+'.png';
             } else {
                 var map ='';
             }
             
             var oldObject = (await getStateAsync(baseChannelId+".object")).val;
          
             if(JSON.stringify(object) != JSON.stringify(oldObject)){
                 setState(baseChannelId+".begin",begin);
                 setState(baseChannelId+".description",description);
                 setState(baseChannelId+".end",end);
                 setState(baseChannelId+".headline",headline);
                 setState(baseChannelId+".level",Number(level));
                 setState(baseChannelId+".map",map);
                 setState(baseChannelId+".object",object);
                 setState(baseChannelId+".severity",severity);
                 setState(baseChannelId+".text",text);
                 setState(baseChannelId+".type",Number(type));
             } else {
                 dwmlog('Datensatz '+_i+' ist schon vorhanden',4);
             }
          }
          
          function processData(area, thedata) {
             if (!thedata) {
                 return;
             }
             var jsonString = String(thedata);
             var newString = jsonString.replace('warnWetter.loadWarnings(','');
             newString = newString.replace(');','');
             var newJSON = JSON.parse(newString);
             
             var jsonResults = [];
             if (newJSON.warnings.hasOwnProperty(area)) {
                 var anz = newJSON.warnings[area].length;
                 for(var i=0;i<anz;i++){
                     jsonResults.push(JSON.stringify(newJSON.warnings[area][i]));
                 }
             } 
          
             dwmlog(JSON.stringify(jsonResults),2);
             for (let i=0; i<numOfWarnings; i++) {
                 if (i<jsonResults.length) {
                     //console.log(i+' -> mit Result'); 
                     writeResultEntry(jsonResults[i],i);
                 } else {
                     //console.log(i+' -> ohne Result'); 
                     writeResultEntry(undefined,i);
                 }
             }
             
          }
            
          async function work() {
             for (var i=0; i<warncellid.length; i++) {
                 await axios.get(url)
                 .then(results => {
                     dwmlog("AREA: "+warncellid[i],4);
                     dwmlog("UWZ Body: " + JSON.stringify(results.data),4);
                     dwmlog("Status: " + results.status,4);
                     if (results.status == 200) {
                         processData(+warncellid[i],results.data);
                     } else {
                         dwmlog('Keine Daten empfangen',1);
                     }
                 })
                 .catch(error => {
                     if (error.response.status == 404){
                         dwmlog(error.message, 1);
                     } else {
                         dwmlog(error.response.data, 1);
                         dwmlog(error.response.status, 1);
                         dwmlog(error.response.headers, 1);
                     }
                 })            
             }
          }
          
          function dwmlog( message, level, channel) {
             if (channel === undefined) {
                 channel = debugchannel;
             }
             if (level === undefined) {
                 level = debuglevel;
             }
             if ( debuglevel >= level ) {
                 log (message, channel );
             }
          }
          

          T Offline
          T Offline
          ticaki
          schrieb am zuletzt editiert von
          #696

          @megawaldi
          Das DWD Script schaue ich mir an, aber das UWZ ist im Grunde das selbe wie meines.

          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

          Spenden

          M 1 Antwort Letzte Antwort
          0
          • T ticaki

            @megawaldi
            Das DWD Script schaue ich mir an, aber das UWZ ist im Grunde das selbe wie meines.

            M Offline
            M Offline
            Megawaldi
            schrieb am zuletzt editiert von
            #697

            @ticaki
            Ja klar, deins war ja die Vorlage.
            Ich hab das umwandeln in ein Object vor dem schreiben rausgenommen. Denke das wird etwas RAM sparen und performanter sein.
            Dann schreibe ich nur in die Datenpunkte, bei einer tatsächlichen Änderung. Das müsste IO einsparen, was bei speicherkarten nicht dumm ist.

            T 1 Antwort Letzte Antwort
            0
            • M Megawaldi

              @ticaki
              Ja klar, deins war ja die Vorlage.
              Ich hab das umwandeln in ein Object vor dem schreiben rausgenommen. Denke das wird etwas RAM sparen und performanter sein.
              Dann schreibe ich nur in die Datenpunkte, bei einer tatsächlichen Änderung. Das müsste IO einsparen, was bei speicherkarten nicht dumm ist.

              T Offline
              T Offline
              ticaki
              schrieb am zuletzt editiert von ticaki
              #698

              @megawaldi
              Gute Idee, werde es mir nächstes Wochenende ansehen. Hab dieses keine Zeit. :)

              EDIT: Hab ich die Erlaubnis das in mein großes Skript einzubauen?

              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

              Spenden

              M 1 Antwort Letzte Antwort
              0
              • T ticaki

                @megawaldi
                Gute Idee, werde es mir nächstes Wochenende ansehen. Hab dieses keine Zeit. :)

                EDIT: Hab ich die Erlaubnis das in mein großes Skript einzubauen?

                M Offline
                M Offline
                Megawaldi
                schrieb am zuletzt editiert von
                #699

                @ticaki
                Klar. Gib dann mal ne Rückmeldung

                T 2 Antworten Letzte Antwort
                0
                • M Megawaldi

                  @ticaki
                  Klar. Gib dann mal ne Rückmeldung

                  T Offline
                  T Offline
                  ticaki
                  schrieb am zuletzt editiert von
                  #700

                  @megawaldi
                  Edit gelesen?

                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                  Spenden

                  M 1 Antwort Letzte Antwort
                  0
                  • T ticaki

                    @megawaldi
                    Edit gelesen?

                    M Offline
                    M Offline
                    Megawaldi
                    schrieb am zuletzt editiert von
                    #701

                    @ticaki
                    Klar mach nur, ein großes Script das alles macht hab ich mir auch schon überlegt. Würde auch das mit den doppelten Datenpunkten in den einzelnen Scripten und dann nochmal in deinem Script lösen.
                    War mir nur zu stressig das selber umzusetzen ;-)

                    1 Antwort Letzte Antwort
                    0
                    • T Offline
                      T Offline
                      ticaki
                      schrieb am zuletzt editiert von ticaki
                      #702

                      Hab an dem DWD Standalone Skript etwas gewerkelt, könnt ihr ja mal testen. Die Warnungen beim Erstellen der States werde ich wohl auch noch verstehen und demnächst beheben können.

                      DWD Adapterersatz Beta

                      EDIT war noch ein Fehler drin, hab ihn ohne Anmerkung behoben

                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                      Spenden

                      1 Antwort Letzte Antwort
                      0
                      • T Offline
                        T Offline
                        ticaki
                        schrieb am zuletzt editiert von ticaki
                        #703

                        Hallo,

                        ich hab die Serveranfragen an DWD und UWZ ins Skript integriert. Der DWD schein soweit gut zu laufen, UWZ hab ich leider keine Warnungen zu. So das ich nicht weiß, ob da nicht noch ein paar Fehler drin sind. Falls es jemand testen will, findet man es hier.

                        https://github.com/ticaki/DWD-UWZ-NINA-Pushwarnungen-iobroker/blob/master/dwd_uwz_nina_script_with_DWDUWZ_inside_ALPHA.js

                        Neue Konfigurationsmöglichkeiten:

                        // Standalone Datenquelle
                        /* nur Landkreis/Großstädte werden verwendet: https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv?__blob=publicationFile&v=3 */
                        var dwdWarncellId = ''; // Deaktivieren mit ''
                        var dwdBundesland = ''; // 3 Buchstaben
                        
                        // UWZ - Landeskennung - Postleitzahl UWZDE12345
                        var uwzWarncellId = ''; // Deaktivieren mit ''
                        
                        

                        Wenn WarncellID nicht '' ist wird die entsprechende interne Abfrage aktivert und z.B. dwd.0 nicht mehr beobachtet.

                        • Kein Netzwerk geht schon mal... dämlicher router :)

                        EDIT:

                        Version Alpha 2

                        • Standalone hatte keinen automatischen Nachrichtenversand
                        • UWZ: die Aktivierung des standalone Parts hat die andere Methode nicht deaktiviert.
                        • Log ergänzt

                        EDIT2:
                        hab gerade async await kapiert, muß das Skript noch darauf überprüfen.

                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                        Spenden

                        1 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          ticaki
                          schrieb am zuletzt editiert von ticaki
                          #704

                          Hallo,

                          Alpha 3 ist online neue Funktionen:

                          • Eine zusätzliche Datenquelle für DWD so das Warnungen für die Gemeinde und nicht mehr für den ganzen Landkreis abgefragt werden können.
                          • Der Modus ist automatisch. man muß die Warncell nachschlagen und das Skript sucht in beiden Datenquellen nach der ID. Bei Fund schaltet es die andere Datenquelle ab.
                          • bei Gemeinden funktionieren die Alert States noch nicht und Höhenangaben habe natürlich keine Auswirkungen mehr. Gibt nicht viele Gemeinden die ihre Höhe ändern :)

                          Warncell-ID kann hier nachgeschlagen werden: https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv?__blob=publicationFile&v=3

                          Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                          Spenden

                          sigi234S 1 Antwort Letzte Antwort
                          0
                          • T ticaki

                            Hallo,

                            Alpha 3 ist online neue Funktionen:

                            • Eine zusätzliche Datenquelle für DWD so das Warnungen für die Gemeinde und nicht mehr für den ganzen Landkreis abgefragt werden können.
                            • Der Modus ist automatisch. man muß die Warncell nachschlagen und das Skript sucht in beiden Datenquellen nach der ID. Bei Fund schaltet es die andere Datenquelle ab.
                            • bei Gemeinden funktionieren die Alert States noch nicht und Höhenangaben habe natürlich keine Auswirkungen mehr. Gibt nicht viele Gemeinden die ihre Höhe ändern :)

                            Warncell-ID kann hier nachgeschlagen werden: https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv?__blob=publicationFile&v=3

                            sigi234S Online
                            sigi234S Online
                            sigi234
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #705

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

                            Alpha 3 ist online neue Funktionen:

                            23:14:50.964	info	javascript.0 (7748) Stop script script.js.Sigi.UWZ_DWD_NINA9
                            23:14:51.089	info	javascript.0 (7748) Start javascript script.js.Sigi.UWZ_DWD_NINA9
                            23:14:51.096	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: registered 0 subscriptions and 0 schedules
                            23:14:51.097	error	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: ReferenceError: DWD2 is not defined
                            23:14:51.097	error	javascript.0 (7748) at script.js.Sigi.UWZ_DWD_NINA9:418:24
                            23:14:51.097	error	javascript.0 (7748) at script.js.Sigi.UWZ_DWD_NINA9:2845:3
                            

                            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:

                              Alpha 3 ist online neue Funktionen:

                              23:14:50.964	info	javascript.0 (7748) Stop script script.js.Sigi.UWZ_DWD_NINA9
                              23:14:51.089	info	javascript.0 (7748) Start javascript script.js.Sigi.UWZ_DWD_NINA9
                              23:14:51.096	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: registered 0 subscriptions and 0 schedules
                              23:14:51.097	error	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: ReferenceError: DWD2 is not defined
                              23:14:51.097	error	javascript.0 (7748) at script.js.Sigi.UWZ_DWD_NINA9:418:24
                              23:14:51.097	error	javascript.0 (7748) at script.js.Sigi.UWZ_DWD_NINA9:2845:3
                              
                              T Offline
                              T Offline
                              ticaki
                              schrieb am zuletzt editiert von ticaki
                              #706

                              @sigi234

                              Recht hast du:

                              in zeile 116 muß

                              const DWD2 = 8; // only for request
                              

                              eingefügt werden, das sieht dann so aus:

                              const DWD = 1;
                              const UWZ = 2;
                              const NINA = 4;
                              const DWD2 = 8; // only for request
                              

                              hatte ich vergessen.

                              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                              Spenden

                              sigi234S 1 Antwort Letzte Antwort
                              0
                              • T ticaki

                                @sigi234

                                Recht hast du:

                                in zeile 116 muß

                                const DWD2 = 8; // only for request
                                

                                eingefügt werden, das sieht dann so aus:

                                const DWD = 1;
                                const UWZ = 2;
                                const NINA = 4;
                                const DWD2 = 8; // only for request
                                

                                hatte ich vergessen.

                                sigi234S Online
                                sigi234S Online
                                sigi234
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von sigi234
                                #707

                                @ticaki

                                Sieht schon besser aus.

                                
                                javascript.0
                                2021-11-05 23:35:59.418	info	script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                
                                javascript.0
                                2021-11-05 23:35:59.136	info	script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                
                                javascript.0
                                2021-11-05 23:35:59.073	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:8153.694522928418
                                
                                javascript.0
                                2021-11-05 23:35:59.069	info	Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                
                                javascript.0
                                2021-11-05 23:35:58.513	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestoppt: ID:7213.070693352865
                                
                                javascript.0
                                2021-11-05 23:35:58.513	info	Stop script script.js.Sigi.UWZ_DWD_NINA9
                                
                                javascript.0
                                2021-11-05 23:35:58.423	info	script.js.Sigi.UWZ_DWD_NINA9: Neustart durch Skripts wird ausgeführt!
                                
                                javascript.0
                                2021-11-05 23:35:58.134	info	script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                
                                javascript.0
                                2021-11-05 23:35:57.840	info	script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                
                                javascript.0
                                2021-11-05 23:35:57.677	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:7213.070693352865
                                
                                javascript.0
                                2021-11-05 23:35:57.669	info	Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                
                                javascript.0
                                2021-11-05 23:35:55.671	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestoppt: ID:4056.6884127745693
                                
                                javascript.0
                                2021-11-05 23:35:55.670	info	Stop script script.js.Sigi.UWZ_DWD_NINA9
                                
                                javascript.0
                                2021-11-05 23:35:55.313	warn	at processImmediate (internal/timers.js:463:21)
                                
                                javascript.0
                                2021-11-05 23:35:55.313	warn	at Immediate._onImmediate (C:\Program Files\iobroker\Home\node_modules\iobroker.javascript\lib\sandbox.js:1967:33)
                                
                                javascript.0
                                2021-11-05 23:35:55.312	warn	State "javascript.0.wetterwarnung.data.uwz.warning4.object" not found
                                
                                javascript.0
                                2021-11-05 23:35:55.310	warn	at processImmediate (internal/timers.js:463:21)
                                
                                javascript.0
                                2021-11-05 23:35:55.310	warn	at Immediate._onImmediate (C:\Program Files\iobroker\Home\node_modules\iobroker.javascript\lib\sandbox.js:1967:33)
                                
                                javascript.0
                                2021-11-05 23:35:55.298	warn	State "javascript.0.wetterwarnung.data.dwd.warning4.object" not found
                                
                                javascript.0
                                2021-11-05 23:35:55.005	info	script.js.Sigi.UWZ_DWD_NINA9: Neustart durch Skripts wird ausgeführt!
                                
                                javascript.0
                                2021-11-05 23:35:54.783	info	script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                
                                javascript.0
                                2021-11-05 23:35:54.412	info	script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                
                                javascript.0
                                2021-11-05 23:35:53.687	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:4056.6884127745693
                                
                                javascript.0
                                2021-11-05 23:35:53.646	info	Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                
                                javascript.0
                                2021-11-05 23:35:53.593	info	Stop script script.js.Sigi.UWZ_DWD_NINA9
                                
                                1. Skriptstart:
                                23:38:28.014	info	javascript.0 (7748) Stop script script.js.Sigi.UWZ_DWD_NINA9
                                23:38:28.015	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: Skripts gestoppt: ID:8153.694522928418
                                23:38:28.126	info	javascript.0 (7748) Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                23:38:28.138	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:5654.143748022449
                                23:38:28.481	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                23:38:29.420	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                

                                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

                                  Sieht schon besser aus.

                                  
                                  javascript.0
                                  2021-11-05 23:35:59.418	info	script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                  
                                  javascript.0
                                  2021-11-05 23:35:59.136	info	script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                  
                                  javascript.0
                                  2021-11-05 23:35:59.073	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:8153.694522928418
                                  
                                  javascript.0
                                  2021-11-05 23:35:59.069	info	Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                  
                                  javascript.0
                                  2021-11-05 23:35:58.513	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestoppt: ID:7213.070693352865
                                  
                                  javascript.0
                                  2021-11-05 23:35:58.513	info	Stop script script.js.Sigi.UWZ_DWD_NINA9
                                  
                                  javascript.0
                                  2021-11-05 23:35:58.423	info	script.js.Sigi.UWZ_DWD_NINA9: Neustart durch Skripts wird ausgeführt!
                                  
                                  javascript.0
                                  2021-11-05 23:35:58.134	info	script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                  
                                  javascript.0
                                  2021-11-05 23:35:57.840	info	script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                  
                                  javascript.0
                                  2021-11-05 23:35:57.677	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:7213.070693352865
                                  
                                  javascript.0
                                  2021-11-05 23:35:57.669	info	Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.671	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestoppt: ID:4056.6884127745693
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.670	info	Stop script script.js.Sigi.UWZ_DWD_NINA9
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.313	warn	at processImmediate (internal/timers.js:463:21)
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.313	warn	at Immediate._onImmediate (C:\Program Files\iobroker\Home\node_modules\iobroker.javascript\lib\sandbox.js:1967:33)
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.312	warn	State "javascript.0.wetterwarnung.data.uwz.warning4.object" not found
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.310	warn	at processImmediate (internal/timers.js:463:21)
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.310	warn	at Immediate._onImmediate (C:\Program Files\iobroker\Home\node_modules\iobroker.javascript\lib\sandbox.js:1967:33)
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.298	warn	State "javascript.0.wetterwarnung.data.dwd.warning4.object" not found
                                  
                                  javascript.0
                                  2021-11-05 23:35:55.005	info	script.js.Sigi.UWZ_DWD_NINA9: Neustart durch Skripts wird ausgeführt!
                                  
                                  javascript.0
                                  2021-11-05 23:35:54.783	info	script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                  
                                  javascript.0
                                  2021-11-05 23:35:54.412	info	script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                  
                                  javascript.0
                                  2021-11-05 23:35:53.687	info	script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:4056.6884127745693
                                  
                                  javascript.0
                                  2021-11-05 23:35:53.646	info	Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                  
                                  javascript.0
                                  2021-11-05 23:35:53.593	info	Stop script script.js.Sigi.UWZ_DWD_NINA9
                                  
                                  1. Skriptstart:
                                  23:38:28.014	info	javascript.0 (7748) Stop script script.js.Sigi.UWZ_DWD_NINA9
                                  23:38:28.015	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: Skripts gestoppt: ID:8153.694522928418
                                  23:38:28.126	info	javascript.0 (7748) Start javascript script.js.Sigi.UWZ_DWD_NINA9
                                  23:38:28.138	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: Skripts gestartet: ID:5654.143748022449
                                  23:38:28.481	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: Add UWZ/DWD warning to database. id: dwd.0.warning.object headline: Amtliche WARNUNG vor FROST
                                  23:38:29.420	info	javascript.0 (7748) script.js.Sigi.UWZ_DWD_NINA9: registered 7 subscriptions and 1 schedule
                                  
                                  T Offline
                                  T Offline
                                  ticaki
                                  schrieb am zuletzt editiert von
                                  #708

                                  @sigi234

                                  Ich werde das demnächst auf async umstellen, aktuell dauert das beenden des Skript so lange das es noch zeit hat Fehler wegen States auszulösen.

                                  Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                  Spenden

                                  1 Antwort Letzte Antwort
                                  0
                                  • T Offline
                                    T Offline
                                    ticaki
                                    schrieb am zuletzt editiert von
                                    #709

                                    Alpha 4
                                    -CreateStateAsync() eingefügt
                                    -AlertStates sollten gehen.

                                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                    Spenden

                                    sigi234S 1 Antwort Letzte Antwort
                                    0
                                    • T ticaki

                                      Alpha 4
                                      -CreateStateAsync() eingefügt
                                      -AlertStates sollten gehen.

                                      sigi234S Online
                                      sigi234S Online
                                      sigi234
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von
                                      #710

                                      @ticaki
                                      Ganzes Skript ändern, oder ab 123456?

                                      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
                                        Ganzes Skript ändern, oder ab 123456?

                                        T Offline
                                        T Offline
                                        ticaki
                                        schrieb am zuletzt editiert von
                                        #711

                                        @sigi234 12345

                                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                        Spenden

                                        Thomas BraunT 1 Antwort Letzte Antwort
                                        0
                                        • T ticaki

                                          @sigi234 12345

                                          Thomas BraunT Online
                                          Thomas BraunT Online
                                          Thomas Braun
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #712

                                          @ticaki

                                          Was soll ich denn hier machen:

                                          2021-11-06 21:41:02.990  - error: javascript.0 (1880) script.js.common.dwd_uwz_nina_warnungen: Alexa - Serial HIER_SERIENNUMMER ist fehlerhaft. Überpüfen! Object ID:alexa2.0.Echo-Devices.HIER_SERIENNUMMER.Commands.announcement
                                          

                                          Ich find da keinen Fehler. Die HIER_SERIENNUMMER ist jedenfalls richtig.

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          309

                                          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