Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Script] DWD/UWZ/NINA Warnungen als Push/Sprachnachrichten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ticaki Developer @Nashra last edited by

      @nashra
      Ich benötige das log von 2 Wiederholungen mit DEBUG true

      1 Reply Last reply Reply Quote 0
      • T
        ticaki Developer last edited by ticaki

        Mein DWD Adapter steht auf 10 Minuten und ich habe keine Wiederholungen. Aktuell fällt mir halt nur ein das du tatsächlich 2 mal die exakt gleiche Warnung drin stehen hast. Ich denke dann kommt das Skript durcheinander. Ich hab meinen DWD Datenbaum mal komplett gelöscht (wird beim nächsten Lauf wiedererstellt)und danach hatte ich einige Probleme weniger. Mußt aber natürlich das Skript neustarten wenn der Baum erstellt ist.

        M 1 Reply Last reply Reply Quote 0
        • M
          Megawaldi @ticaki last edited by

          @ticaki
          Ich bin vom dwd Adapter weg, da mich der Restart im log gestört hat und mir das zu unübersichtlich wurde.
          Daher habe ich mir ein Script geschrieben, das das selbe aber die Datenstruktur vom dwd Adapter nachahmt macht.
          Auch das uwz script habe ich heute mal neu geschrieben.
          Wenn dich das interessiert, kann ich die zwei scripte gerne zur Verfügung stellen.

          T 1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer @Megawaldi last edited by 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 1 Reply Last reply Reply Quote 0
            • M
              Megawaldi @ticaki last edited by

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

              T 1 Reply Last reply Reply Quote 0
              • T
                ticaki Developer @Megawaldi last edited by 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 1 Reply Last reply Reply Quote 0
                • M
                  Megawaldi @ticaki last edited by

                  @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 Reply Last reply Reply Quote 0
                  • T
                    ticaki Developer @Megawaldi last edited by

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

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      Megawaldi @ticaki last edited by

                      @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 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer @Megawaldi last edited by 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 1 Reply Last reply Reply Quote 0
                        • M
                          Megawaldi @ticaki last edited by

                          @ticaki
                          Klar. Gib dann mal ne Rückmeldung

                          T 2 Replies Last reply Reply Quote 0
                          • T
                            ticaki Developer @Megawaldi last edited by

                            @megawaldi
                            Edit gelesen?

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              Megawaldi @ticaki last edited by

                              @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 Reply Last reply Reply Quote 0
                              • T
                                ticaki Developer last edited by ticaki

                                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

                                1 Reply Last reply Reply Quote 0
                                • T
                                  ticaki Developer last edited by ticaki

                                  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.

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    ticaki Developer last edited by 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

                                    sigi234 1 Reply Last reply Reply Quote 0
                                    • sigi234
                                      sigi234 Forum Testing Most Active @ticaki last edited by

                                      @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 1 Reply Last reply Reply Quote 0
                                      • T
                                        ticaki Developer @sigi234 last edited by 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.

                                        sigi234 1 Reply Last reply Reply Quote 0
                                        • sigi234
                                          sigi234 Forum Testing Most Active @ticaki last edited by 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 1 Reply Last reply Reply Quote 0
                                          • T
                                            ticaki Developer @sigi234 last edited by

                                            @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.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            840
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            53
                                            1521
                                            485386
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo