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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Unwetterwarnung für Österreich bzw. Europa ?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    623

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

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

Unwetterwarnung für Österreich bzw. Europa ?

Scheduled Pinned Locked Moved ioBroker Allgemein
123 Posts 23 Posters 26.9k Views 13 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    n990090
    wrote on last edited by
    #21

    Wie bereits in meinem ersten Post erwähnt, die html tag werden im vis mit "string (unescaped)" auch korrekt dargestellt. Sie

    LG

    Michi

    <size size="85">Setup: iobroker multihost (raspberry & Synology) - 32 homematic Sensoren - diverse andere Sensoren</size>

    1 Reply Last reply
    0
    • sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      wrote on last edited by
      #22

      Geht bei mir…...

      2858_screenshot__481__li.jpg

      2858_screenshot__483_.png

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

      1 Reply Last reply
      0
      • N Offline
        N Offline
        n990090
        wrote on last edited by
        #23

        Danke

        und du verwendest für die Darstellung mit dem Original script von dwm das vis widget "string (unescaped)"?

        LG

        Michi

        LG

        Michi

        <size size="85">Setup: iobroker multihost (raspberry & Synology) - 32 homematic Sensoren - diverse andere Sensoren</size>

        1 Reply Last reply
        0
        • sigi234S Online
          sigi234S Online
          sigi234
          Forum Testing Most Active
          wrote on last edited by
          #24

          Ja, und das Skript(Auszug davon) …...

          var debuglevel = 1;
          var debugchannel = 'info';
          
          function dwmlog( message, level, channel) {
              if (typeof channel === 'undefined') {
                  channel = debugchannel;
              }
              if ( typeof level === 'undefined')
              {
                  level = debuglevel;
              }
              if ( debuglevel >= level ) {
                  log (message, channel );
              }
          }
          
          var AdapterId = "javascript."+instance;
          var ChannelId = "UWZ";
          
          var forceInitStates = false;
          var numOfWarnings = 3;
          
          var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX';
          
          /********************* Hier die Warnzellen-Id's eintragen *****************************/
          var warncellid = ['UWZATxxxxx','UWZATxxxxx'];
          /**************************************************************************************/
          
          

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

          1 Reply Last reply
          0
          • NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            wrote on last edited by
            #25

            @dwm:

            Aber schon mal ein Anfang :) `

            Danke für dein tolles Script!

            Sehe ich das richtig, dass wenn keine Warnung ist, auch nichts im VIS geschrieben wird?

            Widget ist das "basic - string (unescaped)" mit folgender Einstellung:

            9441_edit_vis__4_.png 9441_objects_-iobroker__6.png

            Danke

            ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
            ° Node.js Fixer ---> iob nodejs-update
            ° Fixer ---> iob fix

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Alveran
              wrote on last edited by
              #26

              Ich muss mich hier leider mal einreihen. Ich habe versucht meine ID für den Ort Gera in Deutschland zu generieren. Aber das Script kommt nicht damit klar. Was habe ich falsch gemacht?

              Sowohl "UWZDE07548" (Postleitzahl) also auch "116052000" funktioniert nicht.

              1 Reply Last reply
              0
              • sigi234S Online
                sigi234S Online
                sigi234
                Forum Testing Most Active
                wrote on last edited by
                #27

                Zeige mal das Skript…........

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

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Alveran
                  wrote on last edited by
                  #28

                  var debuglevel = 4;

                  var debugchannel = 'info';

                  function dwmlog( message, level, channel) {

                  if (typeof channel === 'undefined') {

                  channel = debugchannel;

                  }

                  if ( typeof level === 'undefined')

                  {

                  level = debuglevel;

                  }

                  if ( debuglevel >= level ) {

                  log (message, channel );

                  }

                  }

                  var AdapterId = "javascript."+instance;

                  var ChannelId = "UWZ";

                  var forceInitStates = false;

                  var numOfWarnings = 3;

                  var url='http://feed.alertspro.meteogroup.com/Al … XXXAREAXXX';

                  /********************* Hier die Warnzellen-Id's eintragen *****************************/

                  var warncellid = ['UWZDE07548','UWZDE77756'];

                  /**************************************************************************************/

                  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++)/{<br="">AreaChannelId=ChannelId+"."+warncellid[j];

                  for (var i=0; i <n; i++)/{<br="">createState(AreaChannelId+".warning."+i+".ShortText","",forceInitStates,{type: 'string'});

                  createState(AreaChannelId+".warning."+i+".LongText","",forceInitStates,{type: 'string'});

                  createState(AreaChannelId+".warning."+i+".object","",forceInitStates,{type: 'string'});

                  createState(AreaChannelId+".warning."+i+".begin","",forceInitStates,{type: 'string'});

                  createState(AreaChannelId+".warning."+i+".end","",forceInitStates,{type: 'string'});

                  createState(AreaChannelId+".warning."+i+".severity",0,forceInitStates,{type: 'number'});

                  createState(AreaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:UWZTypesArray});

                  createState(AreaChannelId+".warning."+i+".uwzLevel",0,forceInitStates,{min:0, max:5, type: 'number'});

                  createState(AreaChannelId+".warning."+i+".uwzColor",0,forceInitStates,{type:'number'});

                  createState(AreaChannelId+".warning."+i+".HTMLShort","",forceInitStates,{type: 'string'});

                  createState(AreaChannelId+".warning."+i+".HTMLLong","",forceInitStates,{type: 'string'});

                  }

                  }

                  }

                  function getUWZLevel (warnName){

                  var result = -1; // -1 is an error!

                  var alert = warnName.split("_");

                  var colors = ["green","darkgreen","yellow","orange","red","violet"];

                  if (alert[0]=="notice") { result = 1; }

                  else if (alert[1] == "forewarn") { result = 2; }

                  else {

                  result = colors.indexOf(alert[2]);

                  }

                  return result;

                  }

                  function getUWZUrgency (warnName){

                  var result = 0;

                  var alert = warnName.split("_");

                  if (alert[1] == "forewarn") {

                  result = 1;

                  }

                  else {

                  result = 2; // immediate;

                  }

                  return result;

                  }

                  function getLevelColor(uwzLevel) {

                  var uwzColor = [

                  0x00ff00, // 0 - Grün

                  0x009b00, // 1 - Dunkelgrün

                  0xffff00, // 2 - Gelb Wetterwarnungen (Stufe 1)

                  0xffb400, // 3 - Orange Warnungen vor markantem Wetter (Stufe 2)

                  0xff0000, // 4 - Rot Unwetterwarnungen (Stufe 3)

                  0xff00ff, // 5 - Violett Warnungen vor extremem Unwetter (Stufe 4)

                  ];

                  if (uwzLevel>=0 && uwzLevel<=5)

                  return uwzColor[uwzLevel];

                  else

                  return 0;

                  }

                  function createHTMLShort(w){

                  var html = '';

                  var theData = JSON.parse(w.object);

                  html += '

                  ';

                  if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";

                  html += UWZTypesArray[w.type];

                  html +="

                  ";

                  html += "

                  Zeitraum von "+formatDate(new Date(theData.dtgStart1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd1000),"WW, DD. OO YYYY hh:mm")+" Uhr

                  ";

                  html += '

                  '+w.ShortText+'

                  ';

                  html += "";

                  return html;

                  }

                  function createHTMLLong(w){

                  var html = '';

                  var theData = JSON.parse(w.object);

                  html += '

                  ';

                  if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";

                  html += UWZTypesArray[w.type];

                  html +="

                  ";

                  html += "

                  Zeitraum von "+formatDate(new Date(theData.dtgStart1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd1000),"WW, DD. OO YYYY hh:mm")+" Uhr

                  ";

                  html += '

                  '+w.LongText+'

                  ';

                  html += "";

                  return html;

                  }

                  function processResultEntry(w) {

                  this.object = JSON.stringify(w);

                  this.begin=formatDate(new Date(w.dtgStart*1000),"DD.MM.YYYY hh:mm");

                  this.end=formatDate(new Date(w.dtgEnd*1000),"DD.MM.YYYY hh:mm");

                  // dwmlog (formatDate(this.begin,"DD.MM.YYYY hh:mm"),4);

                  // dwmlog (formatDate(this.end,"DD.MM.YYYY hh:mm"),4);

                  this.LongText = w.payload.translationsLongText.DE;

                  this.ShortText = w.payload.translationsShortText.DE;

                  this.severity = w.severity;

                  this.type = w.type;

                  this.uwzLevel = getUWZLevel(w.payload.levelName);

                  this.uwzUrgency = getUWZUrgency(w.payload.levelName);

                  this.uwzColor = getLevelColor(this.uwzLevel);

                  var x = this;

                  this.HTMLShort = createHTMLShort(x);

                  this.HTMLLong = createHTMLLong(x);

                  }

                  function processData(Area,data) {

                  if (!data) {

                  return;

                  }

                  var AreaChannelId=ChannelId+"."+Area;

                  var thedata = JSON.parse(data);

                  var warnings= [];

                  if (thedata.results.length>0) {

                  for (i=0; i <thedata.results.length; i++)/{<br="">warnings.push(new processResultEntry(thedata.results__));

                  }

                  }

                  warnings.sort(function(a,b){

                  var asort = a.severity;

                  var bsort = b.severity;

                  return bsort-asort;

                  });

                  dwmlog(JSON.stringify(warnings));

                  for (i=0; i <numofwarnings; i++)/{<br="">if (i <warnings.length) {<br="">setState(AreaChannelId+".warning."+i+".LongText",warnings__.LongText);

                  setState(AreaChannelId+".warning."+i+".ShortText",warnings__.ShortText);

                  setState(AreaChannelId+".warning."+i+".object",warnings__.object);

                  setState(AreaChannelId+".warning."+i+".begin",warnings__.begin);

                  setState(AreaChannelId+".warning."+i+".end",warnings__.end);

                  setState(AreaChannelId+".warning."+i+".severity",warnings__.severity);

                  setState(AreaChannelId+".warning."+i+".type",warnings__.type);

                  setState(AreaChannelId+".warning."+i+".uwzLevel",warnings__.uwzLevel);

                  setState(AreaChannelId+".warning."+i+".uwzColor",warnings__.uwzColor);

                  setState(AreaChannelId+".warning."+i+".HTMLShort",warnings_.HTMLShort);

                  setState(AreaChannelId+".warning."+i+".HTMLLong",warnings_.HTMLLong);

                  } else {

                  setState(AreaChannelId+".warning."+i+".LongText","");

                  setState(AreaChannelId+".warning."+i+".ShortText","");

                  setState(AreaChannelId+".warning."+i+".object","{}");

                  setState(AreaChannelId+".warning."+i+".begin","");

                  setState(AreaChannelId+".warning."+i+".end","");

                  setState(AreaChannelId+".warning."+i+".severity",0);

                  setState(AreaChannelId+".warning."+i+".type",0);

                  setState(AreaChannelId+".warning."+i+".uwzLevel",0);

                  setState(AreaChannelId+".warning."+i+".uwzColor",0);

                  setState(AreaChannelId+".warning."+i+".HTMLShort","");

                  setState(AreaChannelId+".warning."+i+".HTMLLong","");

                  }

                  }

                  }

                  function getAreaFromURI(uri) {

                  var searchstr = "&areaID=";

                  var n = uri.search(searchstr);

                  var result = uri.slice(n+searchstr.length,uri.length);

                  return result;

                  }

                  createStates(numOfWarnings);

                  // processData(jsond2);

                  var request = require('request');

                  schedule ("* * * * *", function(){

                  for (var i=0; i <warncellid.length; i++)/{<br="">request({

                  uri: url.replace("XXXAREAXXX",warncellid_),

                  method: "GET",

                  timeout: 10000,

                  followRedirect: true,

                  maxRedirects: 10

                  }, function(error, response, body) {

                  // dwmlog("UWZ Error" + error,2);

                  // dwmlog("UWZ Response: " + JSON.stringify(response),4);

                  dwmlog("AREA: "+getAreaFromURI(response.request.uri.href),4);

                  dwmlog("UWZ Body: " + body,4);

                  if (response.statusCode == 200) {

                  processData(getAreaFromURI(response.request.uri.href),body);

                  }

                  });

                  }

                  });_</warncellid.length;>__________________</warnings.length)></numofwarnings;></thedata.results.length;></n;></warncellid.length;>

                  1 Reply Last reply
                  0
                  • H Offline
                    H Offline
                    homecineplexx
                    wrote on last edited by
                    #29

                    sag mal sigi234, bei deinem screenshot (dem ersten der beiden) wie holst du dir die 2 pictures (von uwz und meteogramm) und kann man da dann zoomen, scrollen bzw ist es klickbar?

                    @sigi234:

                    Geht bei mir…...

                    Screenshot (481)_LI.jpg

                    Screenshot (483).png `

                    1 Reply Last reply
                    0
                    • sigi234S Online
                      sigi234S Online
                      sigi234
                      Forum Testing Most Active
                      wrote on last edited by
                      #30

                      2858_screenshot__1587__li.jpg

                      UWZ:

                      Basic Image mir dieser Url:

                      http://www.uwz.at/at/de/outwards/current_uwz.png

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

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        deifel
                        wrote on last edited by
                        #31

                        @Negalein:

                        @dwm:

                        Aber schon mal ein Anfang :) `

                        Danke für dein tolles Script!

                        Sehe ich das richtig, dass wenn keine Warnung ist, auch nichts im VIS geschrieben wird?

                        Widget ist das "basic - string (unescaped)" mit folgender Einstellung:

                        Edit vis (4).pngobjects - ioBroker (6).png

                        Danke `

                        PUSH ;)

                        Interessiert mich auch

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          dwm
                          wrote on last edited by
                          #32

                          Richtig, bei keiner Warnung sollte das leer sein. Man kanns evt dann das Widget auch unsichtbar machen, mit Sichtbarkeit auf Severity 0 prüfen …

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            Alveran
                            wrote on last edited by
                            #33

                            @Alveran:

                            Ich muss mich hier leider mal einreihen. Ich habe versucht meine ID für den Ort Gera in Deutschland zu generieren. Aber das Script kommt nicht damit klar. Was habe ich falsch gemacht?

                            Sowohl "UWZDE07548" (Postleitzahl) also auch "116052000" funktioniert nicht. `

                            Darf ich nochmal nachfragen, ist irgendwie untergegangen. Wieso funktioniert der Ort Gera nicht?

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

                              @dwm:

                              Das wird im schedule festgelegt.

                              Jede Stunde wäre z.B.:

                              schedule ("3 * * * *", function(){
                              
                              

                              dann wird das script zu jeder vollen Stunde in der dritten Minute ausgeführt, also 00:03, 01:03 usw.

                              Die "CRON" Taste beim Script Editor oben rechts erzeugt solche Schedule strings für Dich …

                              D `

                              Ich bekomme das irgendwie nicht hin, sorry Anfänger.

                              Wenn ichschedule ("3 * * * *", function(){an den Anfang vom Script setze, muß ich am Ende davon doch noch dies````
                              }(;

                              
                              Wie gesagt, wo liegt der Fehler von mir.

                              Gruß Ralf
                              Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

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

                              1 Reply Last reply
                              0
                              • H Offline
                                H Offline
                                homecineplexx
                                wrote on last edited by
                                #35

                                der fehler liegt daran, dass es so gehört

                                });
                                
                                
                                1 Reply Last reply
                                0
                                • NashraN Offline
                                  NashraN Offline
                                  Nashra
                                  Most Active Forum Testing
                                  wrote on last edited by
                                  #36

                                  @homecineplexx:

                                  der fehler liegt daran, dass es so gehört

                                  });
                                  
                                  ```` `  
                                  

                                  Sorry das war hier ein Tipfehler, ist natürlich````
                                  });

                                  Gruß Ralf
                                  Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

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

                                  1 Reply Last reply
                                  0
                                  • H Offline
                                    H Offline
                                    homecineplexx
                                    wrote on last edited by
                                    #37

                                    dann hast vermutlich ein anderes problem…vielleicht solltest den code mal posten

                                    1 Reply Last reply
                                    0
                                    • NegaleinN Offline
                                      NegaleinN Offline
                                      Negalein
                                      Global Moderator
                                      wrote on last edited by
                                      #38

                                      @Nashra:

                                      [`~~[code]~~schedule ("3 * * * *", function(){` `

                                      schedule ("3 * * * *", function(){ musst du nicht neu ins Script schreiben.

                                      Dies ist in diesem Script schon vorhanden.

                                      Steht ziemlich weit unten im Script!

                                      Such danach und editier es dir passend.

                                      ° Node.js & System Update ---> sudo apt update, iob stop, sudo apt full-upgrade
                                      ° Node.js Fixer ---> iob nodejs-update
                                      ° Fixer ---> iob fix

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

                                        @Negalein:

                                        @Nashra:

                                        [`~~[code]~~schedule ("3 * * * *", function(){` `

                                        schedule ("3 * * * *", function(){ musst du nicht neu ins Script schreiben.

                                        Dies ist in diesem Script schon vorhanden.

                                        Steht ziemlich weit unten im Script!

                                        Such danach und editier es dir passend. `
                                        Sorry blutiger Anfänger bin :lol:

                                        Stimmt, steht ganz am Ende was mit Schedule. Jetzt kapier ich das, zuerst hat er gewartet und wenn er dann

                                        einmal gestartet ist, hat er durch den anderen es wieder auf eine Minute gesetzt. :oops:

                                        Man lernt immer dazu, vielen Dank.

                                        Gruß Ralf
                                        Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

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

                                        1 Reply Last reply
                                        0
                                        • D dwm

                                          Die Zahlen bei begin und end sind der Anfangs- und Endzeitpunkt in ms seit dem 1.1.1970.

                                          Hm, ja. Könnte man noch "human readable" gestalten :D.

                                          Was severity und type bei der Unwetterzentrale jetzt heissen … keine Ahnung. Wie Hormoran schrieb, beim DWD ist das gut dokumentiert.

                                          type=7 ist wohl "Gewitter"... aber das ist mit der Stange im Nebel stochern. Mal sehen, ob sich da nicht im Netz eine Doku findet...

                                          Ein Bug ist auch noch drin ... das "object" sollte eigentlich das JSON der Warnung zeigen.

                                          ! ```
                                          var AdapterId = "javascript.0"; var ChannelId = "UWZ"; ! var forceInitStates = true; var numOfWarnings = 3; ! var warncellid = 'UWZDE92540'; // HIER DIE EIGENE AREA ID eintragen! ! //============================================================== var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX'; ! url=url.replace("XXXAREAXXX",warncellid); ! function createStates(n){ for (var i=0; i<n; i++)/{/createstate(channelid+".warning."+i+".name","",forceinitstates,{type:/'string'});/createstate(channelid+".warning."+i+".text","",forceinitstates,{type:/createstate(channelid+".warning."+i+".shorttext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".longtext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".object","",forceinitstates,{type:/createstate(channelid+".warning."+i+".begin",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".end",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".severity",0,forceinitstates,{type:/'number'});/createstate(channelid+".warning."+i+".type",0,forceinitstates,{type:/}/function/processresultentry(w)/this.object="JSON.stringify(w);" this.begin="formatDate(new" date(w.dtgstart),"dd.mm.yyyy/hh:mm");/this.end="formatDate(new" date(w.dtgend),"dd.mm.yyyy/this.longtext="w.payload.translationsLongText.DE;" this.shorttext="w.payload.translationsShortText.DE;" this.severity="w.severity;" this.type="w.type;" processdata(data)/if/(!data)/return;/var/thedata="JSON.parse(data);" warnings="[];" (thedata.results.length="">0) { for (i=0; i<thedata.results.length; 3/10/i++)/{/warnings.push(new/processresultentry(thedata.results[i]));/}/*/warnings.sort(function(a,b){/var/asort="a.urgency*1000+a.category*100+a.severity;" bsort="b.urgency*1000+b.category*100+b.severity;" return/bsort-asort;/});/for/(i="0;" i<numofwarnings;/if/(i<warnings.length)/setstate(channelid+".warning."+i+".longtext",warnings[i].longtext);/setstate(channelid+".warning."+i+".shorttext",warnings[i].shorttext);/setstate(channelid+".warning."+i+".object","{}");/setstate(channelid+".warning."+i+".begin",warnings[i].begin);/setstate(channelid+".warning."+i+".end",warnings[i].end);/setstate(channelid+".warning."+i+".severity",warnings[i].severity);/setstate(channelid+".warning."+i+".type",warnings[i].type);/else/setstate(channelid+".warning."+i+".longtext","");/setstate(channelid+".warning."+i+".shorttext","");/setstate(channelid+".warning."+i+".begin",0);/setstate(channelid+".warning."+i+".end",0);/setstate(channelid+".warning."+i+".severity",0);/setstate(channelid+".warning."+i+".type",0);/createstates(numofwarnings);/request="require('request');" schedule/("*/*",/function(){/request({/uri:/url,/method:/"get",/timeout:/10000,/followredirect:/true,/maxredirects:/},/function(error,/response,/body)/(response.statuscode="=" 200)/processdata(body);/<e=""></thedata.results.length;></n;>
                                          ! ... object drin und begin und end sind lesbar.
                                          ! Bitte aus der Zeile
                                          ~~[code]~~var forceInitStates = true; [/code]
                                          nach dem ersten Mal laufenlassen wieder ein
                                          ~~[code]~~var forceInitStates = false; [/code]
                                          ! machen - dient dazu, das Neuanlegen der Datenpunkte für begin und end zu erzwingen, da sich ja der Typ geändert hat.
                                          ! CU
                                          ! Werner[/i][/i][/i][/i][/i][/i][/i]

                                          S Offline
                                          S Offline
                                          sectorchan
                                          wrote on last edited by sectorchan
                                          #40

                                          @dwm said in Unwetterwarnung für Österreich bzw. Europa ?:

                                          Die Zahlen bei begin und end sind der Anfangs- und Endzeitpunkt in ms seit dem 1.1.1970.

                                          Hm, ja. Könnte man noch "human readable" gestalten :D.

                                          Was severity und type bei der Unwetterzentrale jetzt heissen … keine Ahnung. Wie Hormoran schrieb, beim DWD ist das gut dokumentiert.

                                          type=7 ist wohl "Gewitter"... aber das ist mit der Stange im Nebel stochern. Mal sehen, ob sich da nicht im Netz eine Doku findet...

                                          Ein Bug ist auch noch drin ... das "object" sollte eigentlich das JSON der Warnung zeigen.

                                          ! ```
                                          var AdapterId = "javascript.0"; var ChannelId = "UWZ"; ! var forceInitStates = true; var numOfWarnings = 3; ! var warncellid = 'UWZDE92540'; // HIER DIE EIGENE AREA ID eintragen! ! //============================================================== var url='http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=de&areaID=XXXAREAXXX'; ! url=url.replace("XXXAREAXXX",warncellid); ! function createStates(n){ for (var i=0; i<n; i++)/{/createstate(channelid+".warning."+i+".name","",forceinitstates,{type:/'string'});/createstate(channelid+".warning."+i+".text","",forceinitstates,{type:/createstate(channelid+".warning."+i+".shorttext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".longtext","",forceinitstates,{type:/createstate(channelid+".warning."+i+".object","",forceinitstates,{type:/createstate(channelid+".warning."+i+".begin",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".end",0,forceinitstates,{type:/createstate(channelid+".warning."+i+".severity",0,forceinitstates,{type:/'number'});/createstate(channelid+".warning."+i+".type",0,forceinitstates,{type:/}/function/processresultentry(w)/this.object="JSON.stringify(w);" this.begin="formatDate(new" date(w.dtgstart),"dd.mm.yyyy/hh:mm");/this.end="formatDate(new" date(w.dtgend),"dd.mm.yyyy/this.longtext="w.payload.translationsLongText.DE;" this.shorttext="w.payload.translationsShortText.DE;" this.severity="w.severity;" this.type="w.type;" processdata(data)/if/(!data)/return;/var/thedata="JSON.parse(data);" warnings="[];" (thedata.results.length="">0) { for (i=0; i<thedata.results.length; 3/10/i++)/{/warnings.push(new/processresultentry(thedata.results[i]));/}/*/warnings.sort(function(a,b){/var/asort="a.urgency*1000+a.category*100+a.severity;" bsort="b.urgency*1000+b.category*100+b.severity;" return/bsort-asort;/});/for/(i="0;" i<numofwarnings;/if/(i<warnings.length)/setstate(channelid+".warning."+i+".longtext",warnings[i].longtext);/setstate(channelid+".warning."+i+".shorttext",warnings[i].shorttext);/setstate(channelid+".warning."+i+".object","{}");/setstate(channelid+".warning."+i+".begin",warnings[i].begin);/setstate(channelid+".warning."+i+".end",warnings[i].end);/setstate(channelid+".warning."+i+".severity",warnings[i].severity);/setstate(channelid+".warning."+i+".type",warnings[i].type);/else/setstate(channelid+".warning."+i+".longtext","");/setstate(channelid+".warning."+i+".shorttext","");/setstate(channelid+".warning."+i+".begin",0);/setstate(channelid+".warning."+i+".end",0);/setstate(channelid+".warning."+i+".severity",0);/setstate(channelid+".warning."+i+".type",0);/createstates(numofwarnings);/request="require('request');" schedule/("*/*",/function(){/request({/uri:/url,/method:/"get",/timeout:/10000,/followredirect:/true,/maxredirects:/},/function(error,/response,/body)/(response.statuscode="=" 200)/processdata(body);/<e=""></thedata.results.length;></n;>
                                          ! ... object drin und begin und end sind lesbar.
                                          ! Bitte aus der Zeile
                                          ~~[code]~~var forceInitStates = true; [/code]
                                          nach dem ersten Mal laufenlassen wieder ein
                                          ~~[code]~~var forceInitStates = false; [/code]
                                          ! machen - dient dazu, das Neuanlegen der Datenpunkte für begin und end zu erzwingen, da sich ja der Typ geändert hat.
                                          ! CU
                                          ! Werner[/i][/i][/i][/i][/i][/i][/i]

                                          Werden die Javascript topics automatisch angelegt wenn das Script erstmal läuft?

                                          Ganz dumme frage, weil ich Javascript nicht kann, sondern mich eher mit c# besser zurecht finde und die syntax auch mit Google nicht deuten kann.

                                          Ich versteh die Ausrufezeichen als kommentar, aber nach recherche ist es das nicht.
                                          Die Syntax stimmt doch ganz und gar nicht, oder stell ich mich nur dumm an?
                                          Woher kommen die ganzen "/" Die werden mir bei einem Javascript checker als Fehler angezeigt.
                                          den unteren Teil entfernt habe, werden mir Error mit Compile failed angezeigt.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          313

                                          Online

                                          32.7k

                                          Users

                                          82.6k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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