Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Projekt WetterView von sigi234

    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

    Projekt WetterView von sigi234

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      heli-wolf last edited by

      9cf46682-c06f-4bd8-8d5e-170eda84bba2-grafik.png
      Modul jetzt erfasst.

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

        @heli-wolf sagte in Projekt WetterView von sigi234:

        Modul jetzt erfasst.

        Ok, zeig mal dein Skript vom UWZ

        Bitte benutzt die Code Tags Funktion -> </>
        Hier gehts zur Hilfe.

        1 Reply Last reply Reply Quote 0
        • H
          heli-wolf last edited by

          Ok, sorry aber man lernt NIE aus !!

          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 = ['UWZAT01026'];
          /**************************************************************************************/
          
          
          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 (var i=0; i<n; i++) {
                      createState(AreaChannelId+".warning."+i+".ShortText","",forceInitStates,{type: 'string'});
                      createState(AreaChannelId+".warning."+i+".LongText","",forceInitStates,{type: 'string'});
                      createState(AreaChannelId+".warning."+i+".object","",forceInitStates,{type: 'string'});
                      createState(AreaChannelId+".warning."+i+".begin","",forceInitStates,{type: 'string'});
                      createState(AreaChannelId+".warning."+i+".end","",forceInitStates,{type: 'string'});
                      createState(AreaChannelId+".warning."+i+".severity",0,forceInitStates,{type: 'number'});
                      createState(AreaChannelId+".warning."+i+".type",0,forceInitStates,{min:0, max:11, type: 'number',states:UWZTypesArray});
                      createState(AreaChannelId+".warning."+i+".uwzLevel",0,forceInitStates,{min:0, max:5, type: 'number'});
                      createState(AreaChannelId+".warning."+i+".uwzColor",0,forceInitStates,{type:'number'});
                      createState(AreaChannelId+".warning."+i+".HTMLShort","",forceInitStates,{type: 'string'});
                      createState(AreaChannelId+".warning."+i+".HTMLLong","",forceInitStates,{type: 'string'});
                  }
              }
          }
          
          function getUWZLevel (warnName){
              var result = -1; // -1 is an error!
              var alert = warnName.split("_");
              var colors = ["green","darkgreen","yellow","orange","red","violet"];
          
              if (alert[0]=="notice") { result = 1; }
              else if (alert[1] == "forewarn") { result = 2; }
              else {
                  result = colors.indexOf(alert[2]);
              }
              return result;
          }
          
          function getUWZUrgency (warnName){
              var result = 0;
          
              var alert = warnName.split("_");
              if (alert[1] == "forewarn") { 
                  result = 1; 
              }
              else {
                  result = 2; // immediate;
              }
              return result;
          }
          
          function getLevelColor(uwzLevel) {
              var uwzColor = [
                  0x00ff00, // 0 - Grün
                  0x009b00, // 1 - Dunkelgrün
                  0xffff00, // 2 - Gelb Wetterwarnungen (Stufe 1)
                  0xffb400, // 3 - Orange Warnungen vor markantem Wetter (Stufe 2)
                  0xff0000, // 4 - Rot Unwetterwarnungen (Stufe 3)
                  0xff00ff, // 5 - Violett Warnungen vor extremem Unwetter (Stufe 4)
              ];
              if (uwzLevel>=0 && uwzLevel<=5)
                  return uwzColor[uwzLevel];
              else
                  return 0;
          }
          
          function createHTMLShort(w){
              var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
          
              var theData = JSON.parse(w.object);
          
              html += '<h3>';
              if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
              html += UWZTypesArray[w.type];
              html +="</h3>";
              html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
              html += '<p>'+w.ShortText+'</p>';
              html += "</div>";
              return html;
          }
          
          function createHTMLLong(w){
              var html = '<div style="background: #'+w.uwzColor.toString(16)+'" border:"10px">';
          
              var theData = JSON.parse(w.object);
          
              html += '<h3>';
              if (w.uwzUrgency==1) html+="Vorwarnung vor "; else html+="Warnung vor ";
              html += UWZTypesArray[w.type];
              html +="</h3>";
              html += "<p>Zeitraum von "+formatDate(new Date(theData.dtgStart*1000),"WW, DD. OO YYYY hh:mm")+" Uhr bis "+formatDate(new Date(theData.dtgEnd*1000),"WW, DD. OO YYYY hh:mm")+" Uhr </p>";
              html += '<p>'+w.LongText+'</p>';
              html += "</div>";
              return html;    
          }
          
          function processResultEntry(w) {
              this.object = JSON.stringify(w);
          
              this.begin=formatDate(new Date(w.dtgStart*1000),"DD.MM.YYYY hh:mm");
              this.end=formatDate(new Date(w.dtgEnd*1000),"DD.MM.YYYY hh:mm");
          
              // dwmlog (formatDate(this.begin,"DD.MM.YYYY hh:mm"),4);
              // dwmlog (formatDate(this.end,"DD.MM.YYYY hh:mm"),4);
          
              this.LongText = w.payload.translationsLongText.DE;
              this.ShortText = w.payload.translationsShortText.DE;
          
              this.severity = w.severity;
              this.type = w.type;
              this.uwzLevel = getUWZLevel(w.payload.levelName);
              this.uwzUrgency = getUWZUrgency(w.payload.levelName);
              this.uwzColor = getLevelColor(this.uwzLevel);
              var x = this;
              this.HTMLShort = createHTMLShort(x);
              this.HTMLLong  = createHTMLLong(x);
          }
          
          function processData(Area,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++) {
                      warnings.push(new processResultEntry(thedata.results[i]));
                  }
              }
          
              warnings.sort(function(a,b){
                  var asort = a.severity; 
                  var bsort = b.severity;
          
                  return bsort-asort;
              });
              
          
              dwmlog(JSON.stringify(warnings));
          
              for (i=0; i<numOfWarnings; i++) {
                  if (i<warnings.length) {
                      setState(AreaChannelId+".warning."+i+".LongText",warnings[i].LongText);
                      setState(AreaChannelId+".warning."+i+".ShortText",warnings[i].ShortText);
                      setState(AreaChannelId+".warning."+i+".object",warnings[i].object);
                      setState(AreaChannelId+".warning."+i+".begin",warnings[i].begin);
                      setState(AreaChannelId+".warning."+i+".end",warnings[i].end);
                      setState(AreaChannelId+".warning."+i+".severity",warnings[i].severity);
                      setState(AreaChannelId+".warning."+i+".type",warnings[i].type);
                      setState(AreaChannelId+".warning."+i+".uwzLevel",warnings[i].uwzLevel);
                      setState(AreaChannelId+".warning."+i+".uwzColor",warnings[i].uwzColor);
                      setState(AreaChannelId+".warning."+i+".HTMLShort",warnings[i].HTMLShort);
                      setState(AreaChannelId+".warning."+i+".HTMLLong",warnings[i].HTMLLong);
                  } else {
                      setState(AreaChannelId+".warning."+i+".LongText","");
                      setState(AreaChannelId+".warning."+i+".ShortText","");
                      setState(AreaChannelId+".warning."+i+".object","{}");
                      setState(AreaChannelId+".warning."+i+".begin","");
                      setState(AreaChannelId+".warning."+i+".end","");
                      setState(AreaChannelId+".warning."+i+".severity",0);
                      setState(AreaChannelId+".warning."+i+".type",0);
                      setState(AreaChannelId+".warning."+i+".uwzLevel",0);
                      setState(AreaChannelId+".warning."+i+".uwzColor",0);
                      setState(AreaChannelId+".warning."+i+".HTMLShort","");
                      setState(AreaChannelId+".warning."+i+".HTMLLong","");
                }
              }
          }
          
          function getAreaFromURI(uri) {
              var searchstr = "&areaID=";
              var n = uri.search(searchstr);
              var result = uri.slice(n+searchstr.length,uri.length);
              return result;
          }
          
          createStates(numOfWarnings);
          // processData(jsond2);
          
          var request = require('request');
          schedule ("3 * * * *", function(){
              for (var i=0; i<warncellid.length; i++) {
                      request({  
                          uri: url.replace("XXXAREAXXX",warncellid[i]),
                          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);
                          }
                      });    
              }
          });
          
           
          
          
          sigi234 1 Reply Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active @heli-wolf last edited by sigi234

            @heli-wolf

            Getestet, bei mir geht es.

            AHA!

            script.js.common.uwz

            Du hast es in common! Da gehört es nicht hin.

            Negalein 1 Reply Last reply Reply Quote 0
            • Negalein
              Negalein Global Moderator @sigi234 last edited by

              @sigi234 sagte in Projekt WetterView von sigi234:

              Da gehört es nicht hin.

              meins läuft auch Common. Das passt normal schon so.

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

                @Negalein sagte in Projekt WetterView von sigi234:

                meins läuft auch Common. Das passt normal schon so.

                Ja, verwechselt mit Global

                1 Reply Last reply Reply Quote 0
                • crunchip
                  crunchip Forum Testing Most Active @heli-wolf last edited by

                  @heli-wolf du hast ein typeScript erstellt, anstatt ein JS-Script

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

                    @crunchip sagte in Projekt WetterView von sigi234:

                    @heli-wolf du hast ein typeScript erstellt, anstatt ein JS-Script

                    Ja, gerade gesehen

                    29.11.2019, 19:44:50.277	[warn ]: javascript.0 script.js.common.uwz: TypeScript compilation had errors: 
                    
                    1 Reply Last reply Reply Quote 0
                    • H
                      heli-wolf last edited by

                      AHA, ich habe doch irgendwo gelesen, dass alle deine Skripte für dieses Projekt als TypeSkript erstellt wurden ???
                      Deshalb habe ich dieses ausgewählt.

                      Müssen alle anderen Skripte (Zeitplanung und Biowetter) auch in JS erstellt werden.
                      Alle Skipte in JS und GLOBAL - Oder??

                      Negalein sigi234 2 Replies Last reply Reply Quote 0
                      • Negalein
                        Negalein Global Moderator @heli-wolf last edited by

                        @heli-wolf sagte in Projekt WetterView von sigi234:

                        GLOBAL

                        Nein, in COMMON

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

                          @heli-wolf sagte in Projekt WetterView von sigi234:

                          Alle Skipte in JS und GLOBAL - Oder??

                          In JS und nicht in Global!

                          Nur das POLLENSKRIPT ist ein TS Skript!

                          1 Reply Last reply Reply Quote 0
                          • H
                            heli-wolf last edited by

                            OK, vielen Dank!
                            das habe ich jetzt einmal alles umgestellt, Adapter und PI neu gestartet und jetzt werde ich das ganze ein bisschen beobachten und hoffe, dass es jetzt richtig läuft.
                            Andernfalls ersuche ich euch nochmals um eure Hilfe.

                            Danke vorerst einmal !!

                            1 Reply Last reply Reply Quote 0
                            • H
                              heli-wolf last edited by

                              Das Pollenskript habe ich noch gar nicht implementiert, aber wo du es sagst.
                              Ich habe ja 2 Skripte

                              • pollen_css.txt
                              • pollen_css_Ampeln.txt

                              ich dachte dass ich die beiden in der Vis unter CSS einfügen muss?

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

                                @heli-wolf sagte in Projekt WetterView von sigi234:

                                Das Pollenskript habe ich noch gar nicht implementiert, aber wo du es sagst.
                                Ich habe ja 2 Skripte

                                • pollen_css.txt
                                • pollen_css_Ampeln.txt

                                ich dachte dass ich die beiden in der Vis unter CSS einfügen muss?

                                Vergiss die Skripte, es gibt einen Adapter

                                Pollen risk index

                                1 Reply Last reply Reply Quote 0
                                • H
                                  heli-wolf last edited by

                                  den Pollenflug Adapter habe ich schon installiert

                                  1 Reply Last reply Reply Quote 0
                                  • H
                                    Hoschi575 last edited by

                                    wetter.JPG

                                    Moin zusammen.... hab jetzt lange in diesem Forum gelesen und dieses geniale aber für mich etwas zu umfangreiche script von Sigi234 meinen Vorstellungen hin reduziert. Aber ich bekomme die Mondgrafiken einfach nicht angezeigt ... ich geb echt auf und brauche jetzt etwas Hilfe 😬

                                    Danke im Vorraus (auch für die super Vorarbeit)

                                    Gruss Hoschi

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

                                      @Hoschi575

                                      Hallo,
                                      hast du in DasWetter Adapter den Icons Pfad angepasst?

                                      Screenshot (886)_LI.jpg

                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        Hoschi575 last edited by

                                        Ja hab ich ... mir fällt gerade auf das bei dir 1.png steht und bei mir nur 1png .... aber warum und wie kann ich das ändern !?!?moon.JPG

                                        1 Reply Last reply Reply Quote 0
                                        • H
                                          Hoschi575 last edited by

                                          auch wenn
                                          ich unten .png hineinschreibe .... keine änderung

                                          sigi234 K 2 Replies Last reply Reply Quote 0
                                          • sigi234
                                            sigi234 Forum Testing Most Active @Hoschi575 last edited by

                                            @Hoschi575 sagte in Projekt WetterView von sigi234:

                                            auch wenn
                                            ich unten .png hineinschreibe .... keine änderung

                                            Abwarten und neu starten, cron ausführen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            875
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            wetter wetterview sigi234
                                            60
                                            497
                                            121117
                                            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