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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Wunsch: Pollenflug-(Adapter/wasauchimmer)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

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

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

Wunsch: Pollenflug-(Adapter/wasauchimmer)

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
266 Beiträge 43 Kommentatoren 53.6k Aufrufe 19 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • I Offline
    I Offline
    ioTechnik
    schrieb am zuletzt editiert von
    #62

    Hallo robsdobs

    Ich habe das gleiche Problem wie DiJaexxl. Dabei hoffte ich, dass Dein Script angepasst ist, wie Du beschrieben hast.

    Ist es das Script aus Beitrag oben

    http://forum.iobroker.net/viewtopic.php … 40#p115126

    Geht bei mir leider nicht

    Wäre sehr dankbar für weitere Unterstützung

    Habe das für Testzwecke auf nem Pi1. Der neue kommt erst heute.

    1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      robsdobs
      schrieb am zuletzt editiert von
      #63

      Ok, schaue ich mir heute Abend an.

      Gesendet von meinem A0001 mit Tapatalk

      Scripte: http://forum.iobroker.net/viewtopic.php?f=23&t=2799&p=119565#p119565,

      1 Antwort Letzte Antwort
      0
      • K Offline
        K Offline
        Knusterus
        schrieb am zuletzt editiert von
        #64

        hallo

        Ich hänge mich mal mit rein. Ich scheitere leider schon beim Enginetyp. Bei mir steht nur "Blocky, Javascript und Coffeescript.

        So habe jetzt den JS. Adapter aktualisiert jetzt habe ich auch Typescript.

        Jetzt habe ich den Pollenteil unter Common in ein neues Skript eigefügt. Und bekomme folgenden Fehler.

        `Log
        17:57:20.989	[info]	javascript.0 script.js.common.Pollen: compiling TypeScript source...
        17:57:20.989	[error]	javascript.0 script.js.common.Pollen: TypeScript compilation failed: createStateG("wetter.pollenvorhersage."+Pollenarten[i].toLowerCase(),0,'number','value','Pollenart '+Pollenarten[i]); ^ ERROR: Cannot find name 'createStateG'. Did you mean 'createState'? request(options, function (error, response, body):void { ^ ERROR: Cannot find name 'request'. Did you mean 'Request'? logInfo("StatusCode="+response.statusCode); ^ ERROR: Cannot find name 'logInfo'. logError(error); // Error beim Einlesen ^ ERROR: Cannot find name 'logError'. Did you mean 'onerror'? logError('Fehler (try) leseWebseite: ' + e); ^ ERROR: Cannot find name 'logError'. Did you mean 'onerror'?` 
        
        Hier noch mal mein Script.
        
        `~~[code]~~var Pollenarten:string[] = ['Erle','Hasel','Pappel','Weide','Ulme','Birke','Buche','Ampfer','Roggen','Gräser','Eiche','Wegerich','Beifuß','Ambrosia'];
        
        var options = {
          url: "https://www.wetteronline.de/pollen/bad-arolsen",
          headers: {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
          }
        };
        
        function strip_tags(data:string):string {
            var rueckgabe:string = data.replace(/( |<([^>]+)>)/ig, "");
            return(rueckgabe);
        }
        
        function GetPollenIndex(pflanze:string, html:string):number {
            var code ={'kein':0, 'schwach':1, 'mäßig':2, 'stark':3}; 
            var result:string= "";
            var start:number =html.indexOf(pflanze)+pflanze.length;
        
            result=html.slice(start);
            result=result.trim();
           //logDebug('result for ',pflanze,html.slice(0,600));
            var stop:number =result.indexOf(' ');
            result=result.slice(0,stop);
            //logDebug('pflanze=',pflanze,'code=',result);
            return code[result];
        }
        
        function initializePollenwetter():void {
            for(var i=0;i<pollenarten.length;i++) {/createstateg("wetter.pollenvorhersage."+pollenarten[i].tolowercase(),0,'number','value','pollenart/'+pollenarten[i]);/}/readpollenwetter();/function/readpollenwetter():void/logdebug("start");/try/request(options,/(error,/response,/body):void/if/(!error/&&/response.statuscode="=" 200)/kein/fehler,/inhalt/in/body/");/var/start:number="body.indexOf('<ul" id="pollentable">');
                    if (start>-1) { body=body.slice(start); }
                        body=strip_tags(body);
                    //logDebug('body',body);
                        for(var i=0;i<pollenarten.length;i++) 0/5/{/setstate("wetter.pollenvorhersage."+pollenarten[i].tolowercase(),getpollenindex(pollenarten[i],body));/}/else/loginfo("statuscode="+response.statusCode);
                        logError(error);                               // Error beim Einlesen
                    }
                });
            } catch (e) {
                logError('Fehler (try) leseWebseite: ' + e);
            }
        }
        
        initializePollenwetter();
        schedule(" */*",/readpollenwetter);<e=""></pollenarten.length;i++)></pollenarten.length;i++)>`
        
        Bitte um Hilfe
        
        Knusterus[/i][/i][/i][/i][/code][/i][/i]
        
        1 Antwort Letzte Antwort
        0
        • R Offline
          R Offline
          robsdobs
          schrieb am zuletzt editiert von
          #65

          @ioTechnik und @DiJaexxl mir ist zwar nicht ganz klar wo der Fehler herkommt, ich habe jetzt eine Version ohne replaceAll erstellt.

          @Knusterus: In deinem Script fehlen die Grundfunktionen. Probiere Bitte auch mal dieses Script.

          `// ########################################################################################################
          // Polleninfo auswerten
          // Version 1.3
          // ########################################################################################################
          
          /**************************************************************************************************
          * Initiale Optionen
          **************************************************************************************************/
          
          var options = {
            url: "https://www.wetteronline.de/pollen/bad-arolsen",
            headers: {
              'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
            }
          };
          
          /**************************************************************************************************
          * Globale TypeScript Definitionen
          **************************************************************************************************/
          // -----------------------------------------------------------------------------	
          /* Die folgenden Funktionen sind bei mir in einem globalen script.
             Wenn man diese global definieren will, muss man das lokal referenzieren mit:
          declare function isPrimitive(obj:any):boolean
          declare function logDebug(...param: any[]):void;
          declare function logInfo(...param: any[]):void;
          declare function logWarning(...param: any[]):void;
          declare function logError(...param: any[]):void;
          */
          
          /**
           * Function for check if a object is a primitive object (string, number, etc)
           * @param    obj           any object to check if it is a primitive object
           * @returns              boolean which is true if object in parameter is a primitive object
           */
          function isPrimitive(obj:any):boolean {
              return (obj !== Object(obj));
          }
          
          /**
           * write any objects given as parameter to log as debug
           * @param    param       a nist of different objects
           */
          function logDebug(...param: any[]):void {
          	if (arguments.length > 0) {
          		var text:string[] = [];
          		for (var i = 0; i < arguments.length; i++) {
                      if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          text.push(arguments[i]);
          		    } else if(arguments[i] === null) {
                          text.push('null');
          		    } else if(arguments[i] === undefined) {
                          text.push('undefined');
                      } else if (isPrimitive(arguments[i])) {
                          text.push(arguments[i]);
                      } else {
                          text.push(JSON.stringify(arguments[i]));
                      }
                      //enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
          
          		}
          		log(text.join(' '), 'debug');
          	}
          }
          
          /**
           * write any objects given as parameter to log as Information
           * @param    param       a nist of different objects
           */
          function logInfo(...param: any[]):void {
          	if (arguments.length > 0) {
          		var text:string[] = [];
          		for (var i = 0; i < arguments.length; i++) {
                      if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          text.push(arguments[i]);
          		    } else if(arguments[i] === null) {
                          text.push('null');
          		    } else if(arguments[i] === undefined) {
                          text.push('undefined');
                      } else if (isPrimitive(arguments[i])) {
                          text.push(arguments[i]);
                      } else {
                          text.push(JSON.stringify(arguments[i]));
                      }
                      //enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
          
          		}
          		log(text.join(' '), 'info');
          		setState("javascript.0.Ereignisliste.event",'INFO|'+text.join(' '));
          	}
              //logEnhanced(logtext, 'info');
          	//console.debug(p);
          	//logs(logtext,loglevels.debug);
          }
          
          /**
           * write any objects given as parameter to log as warning
           * @param    param       a nist of different objects
           */
          function logWarning(...param: any[]):void {
          	if (arguments.length > 0) {
          		var text:string[] = [];
          		for (var i = 0; i < arguments.length; i++) {
                      if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          text.push(arguments[i]);
          		    } else if(arguments[i] === null) {
                          text.push('null');
          		    } else if(arguments[i] === undefined) {
                          text.push('undefined');
                      } else if (isPrimitive(arguments[i])) {
                          text.push(arguments[i]);
                      } else {
                          text.push(JSON.stringify(arguments[i]));
                      }
                      //enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
          
          		}
          		log(text.join(' '), 'warn');
          		setState("javascript.0.Ereignisliste.event",'WARN|'+text.join(' '));
          	}
              //logEnhanced(logtext, 'warn');
          	//console.warn(p);
          	//logs(logtext,loglevels.warn);
          }
          
          /**
           * write any objects given as parameter to log as error
           * @param    param       a nist of different objects
           */
          function logError(...param: any[]):void {
          	if (arguments.length > 0) {
          		var text:string[] = [];
          		for (var i = 0; i < arguments.length; i++) {
                      if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          text.push(arguments[i]);
          		    } else if(arguments[i] === null) {
                          text.push('null');
          		    } else if(arguments[i] === undefined) {
                          text.push('undefined');
                      } else if (isPrimitive(arguments[i])) {
                          text.push(arguments[i]);
                      } else {
                          text.push(JSON.stringify(arguments[i]));
                      }
                      //enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
          
          		}
          		log(text.join(' '), 'error');
          		setState("javascript.0.Ereignisliste.event",'ERROR|'+text.join(' '));
          	}
          }
          // ########################################################################################################
          // Lokale TypeScript Definitionen
          // ########################################################################################################
          import request = require("request");
          
          var Pollenarten:string[] = ['Erle','Hasel','Pappel','Weide','Ulme','Birke','Buche','Ampfer','Roggen','Gräser','Eiche','Wegerich','Beifuß','Ambrosia'];
          
          function strip_tags(data:string):string {
              var rueckgabe:string = data.replace(/( |<([^>]+)>)/ig, "");
              return(rueckgabe);
          }
          
          function GetPollenIndex(pflanze:string, html:string):number {
              var code ={'kein':0, 'schwach':1, 'mäßig':2, 'stark':3}; 
              var result:string= "";
              var start:number =html.indexOf(pflanze)+pflanze.length;
          
              result=html.slice(start);
              result=result.trim();
          	//logDebug('result for ',pflanze,html.slice(0,600));
              var stop:number =result.indexOf(' ');
              result=result.slice(0,stop);
              logDebug('pflanze=',pflanze,'code=',result);
              return code[result];
          }
          
          function initializePollenwetter():void {
              logDebug('initialize Pollenwetter, creating states');
              for(var i=0;i<pollenarten.length;i++) {/createstate("wetter.pollenvorhersage."+pollenarten[i].tolowercase(),0,false,/name:/'pollenart/'+/pollenarten[i],/type:/"number",/role:/'value',/read:/true,/write:/false});/}/logdebug('initiale/read');/readpollenwetter();/function/readpollenwetter():void/logdebug("start");/try/request(options,/(error,/response,/body):void/if/(!error/&&/response.statuscode="=" 200)/kein/fehler,/inhalt/in/body/'/');/'');/var/start:number="body.indexOf('<ul" id="pollentable">');
          				if (start>-1) { body=body.slice(start); }
                          body=strip_tags(body);
          				//logDebug('body',body);
                          for(var i=0;i<pollenarten.length;i++) 0/5/{/setstate("wetter.pollenvorhersage."+pollenarten[i].tolowercase(),getpollenindex(pollenarten[i],body));/}/else/loginfo("statuscode="+response.statusCode);
                          logError(error);                               // Error beim Einlesen
                      }
                  });
              } catch (e) {
                  logError('Fehler (try) leseWebseite: ' + e);
              }
          }
          
          initializePollenwetter();
          schedule(" */*",/readpollenwetter);<e=""></pollenarten.length;i++)></pollenarten.length;i++)>`[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
          

          Scripte: http://forum.iobroker.net/viewtopic.php?f=23&amp;t=2799&amp;p=119565#p119565,

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            DiJaexxl
            schrieb am zuletzt editiert von
            #66

            Hallo robsdobs,

            jetzt geht es. DANKE!

            Gruss aus Bensberg

            Dirk

            1 Antwort Letzte Antwort
            0
            • K Offline
              K Offline
              Knusterus
              schrieb am zuletzt editiert von
              #67

              Hallo robsdobs

              Prima Danke jetzt funktioniert es bei mir auch.

              Vielen Dank

              Knusterus

              1 Antwort Letzte Antwort
              0
              • I Offline
                I Offline
                ioTechnik
                schrieb am zuletzt editiert von
                #68

                Hallo robsdobs

                Ich bin dabei Dein neues Script auszuprobieren, bekomme aber folgenden Log-Eintrag

                Log

                14:47:56.624 [info] javascript.0 Start javascript script.js.common.WetterOnline

                14:47:56.624 [error] javascript.0 script.js.common.WetterOnline compile failed: at script.js.common.WetterOnline:35

                Was mache ich noch falsch?

                Liegt es an der falschen Script-Engine (3.5.1): kann momentan nur Javasript und Coffeescript… auswählen.

                Es war ja weiter oben von Typescript die Rede.

                Oder habe ich das Script in der falschen Gruppe (common oder global oder keins von beiden)

                Danke

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Superdad
                  schrieb am zuletzt editiert von
                  #69

                  @robsdobs

                  Funktioniert super, vielen Dank!

                  CCU3

                  iOBroker auf IntelNUC Proxmox

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    Conquest
                    schrieb am zuletzt editiert von
                    #70

                    @ioTechnik:

                    Hallo robsdobs

                    Ich bin dabei Dein neues Script auszuprobieren, bekomme aber folgenden Log-Eintrag

                    Log

                    14:47:56.624 [info] javascript.0 Start javascript script.js.common.WetterOnline

                    14:47:56.624 [error] javascript.0 script.js.common.WetterOnline compile failed: at script.js.common.WetterOnline:35

                    Was mache ich noch falsch?

                    Liegt es an der falschen Script-Engine (3.5.1): kann momentan nur Javasript und Coffeescript… auswählen.

                    Es war ja weiter oben von Typescript die Rede.

                    Oder habe ich das Script in der falschen Gruppe (common oder global oder keins von beiden)

                    Danke `

                    Hallo ioTechnik, hatte den Fehler auch es muss Typescript ausgewählt werden sonst funktioniert es nicht.

                    Gruß Torsten

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      Conquest
                      schrieb am zuletzt editiert von
                      #71

                      Hallo robsdops, erstmal danke für das Script so funktioniert es wieder mit der Pollenflug-Anzeige. Wollte noch fragen ob du das Script um die Tage morgen und übermorgen erweitern kannst so wie bei dem alten Script?

                      Wäre super.

                      Gruß Torsten

                      1 Antwort Letzte Antwort
                      0
                      • R Offline
                        R Offline
                        robsdobs
                        schrieb am zuletzt editiert von
                        #72

                        @ioTechnik:

                        Hallo robsdobs

                        Ich bin dabei Dein neues Script auszuprobieren, bekomme aber folgenden Log-Eintrag

                        Log

                        14:47:56.624 [info] javascript.0 Start javascript script.js.common.WetterOnline

                        14:47:56.624 [error] javascript.0 script.js.common.WetterOnline compile failed: at script.js.common.WetterOnline:35

                        Was mache ich noch falsch?

                        Liegt es an der falschen Script-Engine (3.5.1): kann momentan nur Javasript und Coffeescript… auswählen.

                        Es war ja weiter oben von Typescript die Rede.

                        Oder habe ich das Script in der falschen Gruppe (common oder global oder keins von beiden)

                        Danke `
                        Hallo,

                        laut changelog wurde typescript mit 3.5.1 eingefügt. Wenn du es aber nicht auswählen kannst, ist es vielleicht doch erst später freigeschaltet worden. Ich würde aber mindestens 3.6.0 empfehlen.

                        Gruß

                        Robert

                        Scripte: http://forum.iobroker.net/viewtopic.php?f=23&amp;t=2799&amp;p=119565#p119565,

                        1 Antwort Letzte Antwort
                        0
                        • R Offline
                          R Offline
                          robsdobs
                          schrieb am zuletzt editiert von
                          #73

                          Hier die Abfrage der PollenInfos für heute und die folgenden Tage.

                          Vorbereitung:

                          Es wird der Javascript Adapter benötigt und in diesem das "request" modul:
                          1367_request.png

                          Das Script ist vom Typ TypeScript, daher muss der richtige Engine Typ gewählt werden.
                          1367_enginetyp.png

                          In dieser Zeile trägt man den Standort ein:

                          var baseUrl: string = "https://www.wetteronline.de/pollen/perg";

                          Hier ist jetzt das Script:

                          `// ########################################################################################################
                          // Polleninfo auswerten heute und die nächsten Tage
                          // Version 1.52
                          // ########################################################################################################
                          // @ts-check
                          "use strict";
                          ///< script> var exports = {}; < / script>
                          
                          /**************************************************************************************************
                          * Initiale Optionen
                          **************************************************************************************************/
                          //Welcher Ort soll abgefragt werden?
                          var baseUrl: string = "https://www.wetteronline.de/pollen/perg";
                          
                          //Wo sollen die Daten unter javascript.0... abgelegt werden?
                          var baseObjPath: string = 'wetter.pollenvorhersage.test';
                          
                          /**************************************************************************************************
                          * Globale TypeScript Definitionen
                          **************************************************************************************************/
                          interface iRequestOptions {
                          		url: string;
                          		headers: any;
                          }
                          
                          /**
                           * Function for check if a object is a primitive object (string, number, etc)
                           * @param	obj		   any object to check if it is a primitive object
                           * @returns			  boolean which is true if object in parameter is a primitive object
                           */
                          function isPrimitive(obj:any):boolean {
                          	return (obj !== Object(obj));
                          }
                          
                          /**
                           * write any objects given as parameter to log as debug
                           * @param	param	   a nist of different objects
                           */
                          function logDebug(...param: any[]):void {
                          	if (arguments.length > 0) {
                          		var text:string[] = [];
                          		for (var i = 0; i < arguments.length; i++) {
                          			if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          				text.push(arguments[i]);
                          			} else if(arguments[i] === null) {
                          				text.push('null');
                          			} else if(arguments[i] === undefined) {
                          				text.push('undefined');
                          			} else if (isPrimitive(arguments[i])) {
                          				text.push(arguments[i]);
                          			} else {
                          				text.push(JSON.stringify(arguments[i]));
                          			}
                          			//enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
                          
                          		}
                          		log(text.join(' '), 'debug');
                          	}
                          }
                          
                          /**
                           * write any objects given as parameter to log as Information
                           * @param	param	   a nist of different objects
                           */
                          function logInfo(...param: any[]):void {
                          	if (arguments.length > 0) {
                          		var text:string[] = [];
                          		for (var i = 0; i < arguments.length; i++) {
                          			if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          				text.push(arguments[i]);
                          			} else if(arguments[i] === null) {
                          				text.push('null');
                          			} else if(arguments[i] === undefined) {
                          				text.push('undefined');
                          			} else if (isPrimitive(arguments[i])) {
                          				text.push(arguments[i]);
                          			} else {
                          				text.push(JSON.stringify(arguments[i]));
                          			}
                          			//enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
                          
                          		}
                          		log(text.join(' '), 'info');
                          		setState('javascript.' + instance + '.Ereignisliste.event','INFO|'+text.join(' '));
                          	}
                          	//logEnhanced(logtext, 'info');
                          	//console.debug(p);
                          	//logs(logtext,loglevels.debug);
                          }
                          
                          /**
                           * write any objects given as parameter to log as warning
                           * @param	param	   a nist of different objects
                           */
                          function logWarning(...param: any[]):void {
                          	if (arguments.length > 0) {
                          		var text:string[] = [];
                          		for (var i = 0; i < arguments.length; i++) {
                          			if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          				text.push(arguments[i]);
                          			} else if(arguments[i] === null) {
                          				text.push('null');
                          			} else if(arguments[i] === undefined) {
                          				text.push('undefined');
                          			} else if (isPrimitive(arguments[i])) {
                          				text.push(arguments[i]);
                          			} else {
                          				text.push(JSON.stringify(arguments[i]));
                          			}
                          			//enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
                          
                          		}
                          		log(text.join(' '), 'warn');
                          		setState('javascript.' + instance + '.Ereignisliste.event','WARN|'+text.join(' '));
                          	}
                          	//logEnhanced(logtext, 'warn');
                          	//console.warn(p);
                          	//logs(logtext,loglevels.warn);
                          }
                          
                          /**
                           * write any objects given as parameter to log as error
                           * @param	param	   a nist of different objects
                           */
                          function logError(...param: any[]):void {
                          	if (arguments.length > 0) {
                          		var text:string[] = [];
                          		for (var i = 0; i < arguments.length; i++) {
                          			if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                          				text.push(arguments[i]);
                          			} else if(arguments[i] === null) {
                          				text.push('null');
                          			} else if(arguments[i] === undefined) {
                          				text.push('undefined');
                          			} else if (isPrimitive(arguments[i])) {
                          				text.push(arguments[i]);
                          			} else {
                          				text.push(JSON.stringify(arguments[i]));
                          			}
                          			//enum close bracket cannot be found in "channel[state.id=*.TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"
                          
                          		}
                          		log(text.join(' '), 'error');
                          		setState('javascript.' + instance + '.Ereignisliste.event','ERROR|'+text.join(' '));
                          	}
                          }
                          /**************************************************************************************************
                          * Lokale TypeScript Definitionen
                          **************************************************************************************************/
                          //import request = require("request");
                          
                          var Pollenarten:string[] = ['Erle','Hasel','Pappel','Weide','Ulme','Birke','Buche','Ampfer','Roggen','Gräser','Eiche','Wegerich','Beifuß','Ambrosia'];
                          var tageVorhersage = ['d0','d1','d2','d3','d4','d5','d6'];
                          var tageVorhersageName = ['heute','morgen','übermorgen','heute + 3','heute + 4','heute + 5','heute + 6'];
                          
                          function stripTags(data:string):string {
                          	return data.replace(/( |<([^>]+)>)/ig, "");
                          }
                          
                          function getDate(days: number): string { // Eingabe 0, 1, 2, ...
                          	var jetzt = new Date();
                          	jetzt.setHours(0);
                          	jetzt.setMinutes(0);
                          	jetzt.setSeconds(0);
                          	jetzt.setMilliseconds(0);
                          	var newdate = new Date();
                          	newdate.setTime(jetzt.getTime() + (24 * 60 * 60 * 1000 * days) ); // heute + anzahl tage ins Millisekunden
                          	var date :string = newdate.getDate().toString();
                          	var month: string = (newdate.getMonth()+1).toString();
                          	var year: string = newdate.getFullYear().toString();
                          	date = (date.length < 2) ? '0' + date : date;
                          	month = (month.length < 2) ? '0' + month : month;
                          	var result:string = year+month+date;
                          	logDebug('Datum in Link: ', result);
                          	return (result); // Ausgabe z.B. 20160506
                          }
                          
                          function GetPollenIndex(pflanze:string, html:string):number {
                          	var code ={'kein':0, 'schwach':1, 'mäßig':2, 'stark':3}; 
                          	var result:string= "";
                          	var start:number =html.indexOf(pflanze)+pflanze.length;
                          
                          	result=html.slice(start);
                          	result=result.trim();
                          	//logDebug('result for ',pflanze,html.slice(0,600));
                          	var stop:number =result.indexOf(' ');
                          	result=result.slice(0,stop);
                          	//logDebug('pflanze=',pflanze,'code=',result);
                          	return code[result];
                          }
                          
                          function initializePollenwetter(baseObj:string, name:string):void {
                          	createState(baseObj, '', false, {
                          		name: name,
                          		type: "string",
                          		role: 'json',
                          		desc: 'Pollenflug',
                          		read: true,
                          		write: false});
                          
                          	for(let i=0;i<pollenarten.length;i++) {/createstate(baseobj/+/'.'/pollenarten[i].tolowercase(),/0,/false,/name:/'pollenart/'+/pollenarten[i],/type:/"number",/role:/'value',/desc:/'/read:/true,/write:/false});/}/createstate(baseobj+'.count.gt0',/'anzahl/pollen/größer/0',/pollen',/for(let/i="0;i<4;i++)" createstate(baseobj+'.text.'+i.tostring(),/'',/'liste/größern/string(i),/"string",/'text',/'pollenübersicht',/createstate(baseobj+'.html.'+i.tostring(),/string(i)/(html)',/'html',/createstate(baseobj+'.count.'+i.tostring(),/mit/*/function/removeoldpollenwetter():void/for(var/deletestate(baseobjpath/pollenarten[i].tolowercase());/readpollenwetterforday(day:number,/baseobj:string):void/logdebug("start",day,baseobj);/try/var/options:irequestoptions="{" url:/((day="">0) ? baseUrl + '?fcdatstr=' + getDate(day) : baseUrl), // korrekten Link erstellen ,
                          			headers: {
                          				'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
                          			}
                          		};
                          		request(options, function (error, response, body):void {
                          			if (!error && response.statusCode == 200) {			  // kein Fehler, Inhalt in body
                          				body=body.replace(/\t/g, ' ');
                          				body=body.replace(/(\n|\r)/g, '');
                          				var start:number =body.indexOf('</pollenarten.length;i++)>`
                          
                          `');
                          				if (start>-1) { body=body.slice(start); }
                          				body=stripTags(body);
                          				//logDebug('body',body);
                          				let pobj:any = {};
                          				let pot = ['','','',''];
                          				let poh = ['','','',''];
                          				let poc = [0,0,0,0];
                          				let cnt =0;
                          				for(let i=0;i<pollenarten.length;i++) {/let/pi:number="GetPollenIndex(Pollenarten[i],body);" pobj[pollenarten[i].tolowercase()]="pi;" if/(pi="">0) { cnt++; }
                          					poc[pi]++;
                          					pot[pi] = pot[pi] + Pollenarten[i] + '\r\n';
                          					poh[pi] = poh[pi] + Pollenarten[i] + '
                          ';
                          					setState(baseObj+'.'+Pollenarten[i].toLowerCase(),pi);
                          				}
                          				setState(baseObj+'.count.gt0',cnt);
                          				for(let i=0;i<4;i++) {
                          					setState(baseObj+'.text.'+i.toString(),pot[i]);
                          					setState(baseObj+'.html.'+i.toString(),poh[i]);
                          					setState(baseObj+'.count.'+i.toString(),poc[i]);
                          				}
                          				setState(baseObj,JSON.stringify(pobj));
                          			} else {
                          				logInfo("StatusCode="+response.statusCode);
                          				logError(error);							   // Error beim Einlesen
                          			}
                          		});
                          	} catch (e) {
                          		logError('Fehler (try) leseWebseite: ' + e);
                          	}
                          }
                          
                          function readPollenwetter() {
                          	for (let d:number = 0; d < tageVorhersage.length; d++) {
                          		let path: string = baseObjPath + '.' + tageVorhersage[d];
                          		initializePollenwetter(path, tageVorhersageName[d]);
                          		readPollenwetterForDay(d, path);
                          	}
                          }
                          
                          //removeOldPollenwetter();
                          readPollenwetter();
                          
                          /*
                           # *  *  * *  *  command to execute
                           # ¦ ¦ ¦ ¦ ¦
                           # ¦ ¦ ¦ ¦ ¦
                           # ¦ ¦ ¦ ¦ +----- day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
                           # ¦ ¦ ¦ +---------- month (1 - 12)
                           # ¦ ¦ +--------------- day of month (1 - 31)
                           # ¦ +-------------------- hour (0 - 23)
                           # +------------------------- min (0 - 59)
                          */
                          schedule("5 0 * * *", readPollenwetter);</pollenarten.length;i++)>` 
                          
                          

                          Scripte: http://forum.iobroker.net/viewtopic.php?f=23&amp;t=2799&amp;p=119565#p119565,

                          1 Antwort Letzte Antwort
                          0
                          • I Offline
                            I Offline
                            ioTechnik
                            schrieb am zuletzt editiert von
                            #74

                            Hallo robsdobs

                            Vielen Dank für das Script. Es Funzt jetzt endlich.

                            Es hat sich, wie ich befürchtet habe, um die Einstellung "Typescript" gehandelt.

                            Leider wurde typescript in meiner Installation nicht mit eingerichtet. (image aus dem Downloadbereich)

                            Egal es funktioniert.

                            Danke

                            1 Antwort Letzte Antwort
                            0
                            • I Offline
                              I Offline
                              ioTechnik
                              schrieb am zuletzt editiert von
                              #75

                              Hallo robsdobs

                              Dein Script funktioniert super. Vielen Dank!

                              Aber

                              Kannst Du mir erklären warum dein schedule nicht funktioniert. Habe es gerade noch mal neu gestartet. Immer mit dem glichen Ergebnis.

                              Jede Minute werden die Daten neu geladen.

                              Gruß ioTechnik

                              1 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                robsdobs
                                schrieb am zuletzt editiert von
                                #76

                                @ioTechnik:

                                Hallo robsdobs

                                Dein Script funktioniert super. Vielen Dank!

                                Aber

                                Kannst Du mir erklären warum dein schedule nicht funktioniert. Habe es gerade noch mal neu gestartet. Immer mit dem glichen Ergebnis.

                                Jede Minute werden die Daten neu geladen.

                                Gruß ioTechnik `
                                Hallo ioTechnik,

                                kann ich leider nicht nachvollziehen. Bei mir läuft es wie gewünscht.

                                Das

                                schedule("5 0 * * *", readPollenwetter);
                                

                                ist folgendermaßen definiert:

                                /*
                                 # *  *  * *  *  command to execute
                                 # ¦ ¦ ¦ ¦ ¦
                                 # ¦ ¦ ¦ ¦ ¦
                                 # ¦ ¦ ¦ ¦ +----- day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
                                 # ¦ ¦ ¦ +---------- month (1 - 12)
                                 # ¦ ¦ +--------------- day of month (1 - 31)
                                 # ¦ +-------------------- hour (0 - 23)
                                 # +------------------------- min (0 - 59)
                                */
                                

                                Zusätzlich wird das Script zusätzlich bei jedem Speichern auch ausgeführt um die Datenpunkte sofort zu füllen und mögliche Fehler gleich zu sehen.. Hast du mehrfach gespeichert?

                                Gruß

                                Robert

                                Scripte: http://forum.iobroker.net/viewtopic.php?f=23&amp;t=2799&amp;p=119565#p119565,

                                1 Antwort Letzte Antwort
                                0
                                • I Offline
                                  I Offline
                                  ioTechnik
                                  schrieb am zuletzt editiert von
                                  #77

                                  Hallo robsdobs

                                  Das Cron-Schema ist mir schon bekannt. Steht ja auch so in Deinem Script.

                                  Und in anderen Instanzen laufen die auch nach dem jeweils eingestellten Cron-Job, nur hier nicht.

                                  Ich habe gerade noch mal einen Scriptvergleich durchgeführt. Es gibt nur eine einzige Änderung und das ist die Festlegung der Region.

                                  Bei Dir "Bad Arolsen" bei mir "Quedlinburg"

                                  Was meinst Du mit dem "…nach jedem Speichern..."

                                  Ich speichere wissentlich nirgends etwas. Nicht mal als history.

                                  Heute morgen ist mein Raspibroker unerklärlicherweise abgestürzt. Nach dem Neustart zeigt sich aber das gleiche Bild.

                                  Gruß Bernhard

                                  1 Antwort Letzte Antwort
                                  0
                                  • R Offline
                                    R Offline
                                    robsdobs
                                    schrieb am zuletzt editiert von
                                    #78

                                    Mit speichern meine ich den Button über dem Script.
                                    1367_2018-03-07_21h48_56.png

                                    Die rot umrandeten Zeilen sorgen dafür, dass das Script beim Speichern, Adapter Neustart, IOBroker Naustart, etc. ausgeführt wird.

                                    Bitte kommentiere diese beiden Zeilen mal wie im Bild aus ("//" voranstellen) und schau mal ob es jetzt wirklich nur wie scheduled läuft.

                                    Scripte: http://forum.iobroker.net/viewtopic.php?f=23&amp;t=2799&amp;p=119565#p119565,

                                    1 Antwort Letzte Antwort
                                    0
                                    • L Offline
                                      L Offline
                                      ludino
                                      schrieb am zuletzt editiert von
                                      #79

                                      Hallo,

                                      ich nutze dieses Script.

                                      ! ```
                                      `// ########################################################################################################
                                      // Polleninfo auswerten heute und die nächsten Tage
                                      // Version 1.4
                                      // ########################################################################################################
                                      ! /**************************************************************************************************

                                      • Initiale Optionen
                                        **************************************************************************************************/
                                        interface iRequestOptions {
                                        url: string;
                                        headers: any;
                                        }

                                      ! var baseUrl: string = "https://www.wetteronline.de/pollen/bad-arolsen";
                                      var baseObjPath: string = 'wetter.pollenvorhersage';
                                      ! /**************************************************************************************************

                                      • Globale TypeScript Definitionen
                                        *************************************************************************************************/
                                        // -----------------------------------------------------------------------------
                                        /
                                        Die folgenden Funktionen sind bei mir in einem globalen script.
                                        Wenn man diese global definieren will, muss man das lokal referenzieren mit:
                                        declare function isPrimitive(obj:any):boolean
                                        declare function logDebug(...param: any[]):void;
                                        declare function logInfo(...param: any[]):void;
                                        declare function logWarning(...param: any[]):void;
                                        declare function logError(...param: any[]):void;
                                        */

                                      ! /**

                                      • Function for check if a object is a primitive object (string, number, etc)
                                      • @param obj any object to check if it is a primitive object
                                      • @returns boolean which is true if object in parameter is a primitive object
                                        */
                                        function isPrimitive(obj:any):boolean {
                                        return (obj !== Object(obj));
                                        }

                                      ! /**

                                      • write any objects given as parameter to log as debug

                                      • @param param a nist of different objects
                                        /
                                        function logDebug(...param: any[]):void {
                                        if (arguments.length > 0) {
                                        var text:string[] = [];
                                        for (var i = 0; i < arguments.length; i++) {
                                        if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                        text.push(arguments[i]);
                                        } else if(arguments[i] === null) {
                                        text.push('null');
                                        } else if(arguments[i] === undefined) {
                                        text.push('undefined');
                                        } else if (isPrimitive(arguments[i])) {
                                        text.push(arguments[i]);
                                        } else {
                                        text.push(JSON.stringify(arguments[i]));
                                        }
                                        //enum close bracket cannot be found in "channel[state.id=
                                        .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                        }
                                        log(text.join(' '), 'debug');
                                        }
                                        }

                                      ! /**

                                      • write any objects given as parameter to log as Information

                                      • @param param a nist of different objects
                                        /
                                        function logInfo(...param: any[]):void {
                                        if (arguments.length > 0) {
                                        var text:string[] = [];
                                        for (var i = 0; i < arguments.length; i++) {
                                        if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                        text.push(arguments[i]);
                                        } else if(arguments[i] === null) {
                                        text.push('null');
                                        } else if(arguments[i] === undefined) {
                                        text.push('undefined');
                                        } else if (isPrimitive(arguments[i])) {
                                        text.push(arguments[i]);
                                        } else {
                                        text.push(JSON.stringify(arguments[i]));
                                        }
                                        //enum close bracket cannot be found in "channel[state.id=
                                        .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                        }
                                        log(text.join(' '), 'info');
                                        setState("javascript.0.Ereignisliste.event",'INFO|'+text.join(' '));
                                        }
                                        //logEnhanced(logtext, 'info');
                                        //console.debug(p);
                                        //logs(logtext,loglevels.debug);
                                        }

                                      ! /**

                                      • write any objects given as parameter to log as warning

                                      • @param param a nist of different objects
                                        /
                                        function logWarning(...param: any[]):void {
                                        if (arguments.length > 0) {
                                        var text:string[] = [];
                                        for (var i = 0; i < arguments.length; i++) {
                                        if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                        text.push(arguments[i]);
                                        } else if(arguments[i] === null) {
                                        text.push('null');
                                        } else if(arguments[i] === undefined) {
                                        text.push('undefined');
                                        } else if (isPrimitive(arguments[i])) {
                                        text.push(arguments[i]);
                                        } else {
                                        text.push(JSON.stringify(arguments[i]));
                                        }
                                        //enum close bracket cannot be found in "channel[state.id=
                                        .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                        }
                                        log(text.join(' '), 'warn');
                                        setState("javascript.0.Ereignisliste.event",'WARN|'+text.join(' '));
                                        }
                                        //logEnhanced(logtext, 'warn');
                                        //console.warn(p);
                                        //logs(logtext,loglevels.warn);
                                        }

                                      ! /**

                                      • write any objects given as parameter to log as error

                                      • @param param a nist of different objects
                                        /
                                        function logError(...param: any[]):void {
                                        if (arguments.length > 0) {
                                        var text:string[] = [];
                                        for (var i = 0; i < arguments.length; i++) {
                                        if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                        text.push(arguments[i]);
                                        } else if(arguments[i] === null) {
                                        text.push('null');
                                        } else if(arguments[i] === undefined) {
                                        text.push('undefined');
                                        } else if (isPrimitive(arguments[i])) {
                                        text.push(arguments[i]);
                                        } else {
                                        text.push(JSON.stringify(arguments[i]));
                                        }
                                        //enum close bracket cannot be found in "channel[state.id=
                                        .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                        }
                                        log(text.join(' '), 'error');
                                        setState("javascript.0.Ereignisliste.event",'ERROR|'+text.join(' '));
                                        }
                                        }
                                        // ########################################################################################################
                                        // Lokale TypeScript Definitionen
                                        // ########################################################################################################
                                        import request = require("request");

                                      ! var Pollenarten:string[] = ['Erle','Hasel','Pappel','Weide','Ulme','Birke','Buche','Ampfer','Roggen','Gräser','Eiche','Wegerich','Beifuß','Ambrosia'];
                                      var tageVorhersage = ['d0','d1','d2','d3','d4','d5'];
                                      var tageVorhersageName = ['heute','morgen','übermorgen','heute + 3','heute + 4','heute + 5'];
                                      ! function stripTags(data:string):string {
                                      return data.replace(/( |<([^>]+)>)/ig, "");
                                      }
                                      ! function getDate(days: number): string { // Eingabe 0, 1, 2, ...
                                      var jetzt = new Date();
                                      jetzt.setHours(0);
                                      jetzt.setMinutes(0);
                                      jetzt.setSeconds(0);
                                      jetzt.setMilliseconds(0);
                                      var newdate = new Date();
                                      newdate.setTime(jetzt.getTime() + (24 * 60 * 60 * 1000 * days) ); // heute + anzahl tage ins Millisekunden
                                      var date :string = newdate.getDate().toString();
                                      var month: string = (newdate.getMonth()+1).toString();
                                      var year: string = newdate.getFullYear().toString();
                                      date = (date.length < 2) ? '0' + date : date;
                                      month = (month.length < 2) ? '0' + month : month;
                                      var result:string = year+month+date;
                                      logDebug('Datum in Link: ', result);
                                      return (result); // Ausgabe z.B. 20160506
                                      }
                                      ! function GetPollenIndex(pflanze:string, html:string):number {
                                      var code ={'kein':0, 'schwach':1, 'mäßig':2, 'stark':3};
                                      var result:string= "";
                                      var start:number =html.indexOf(pflanze)+pflanze.length;

                                      result=html.slice(start);
                                      result=result.trim();
                                      

                                      //logDebug('result for ',pflanze,html.slice(0,600));
                                      var stop:number =result.indexOf(' ');
                                      result=result.slice(0,stop);
                                      logDebug('pflanze=',pflanze,'code=',result);
                                      return code[result];
                                      }

                                      ! function initializePollenwetter(baseObj:string, name:string):void {
                                      createState(baseObj,0,false, {
                                      name: name,
                                      type: "string",
                                      role: 'json',
                                      read: true,
                                      write: false});
                                      ! for(var i=0;i<pollenarten.length;i++) {/createstate(baseobj/+/'.'/pollenarten[i].tolowercase(),0,false,/name:/'pollenart/'+/pollenarten[i],/type:/"number",/role:/'value',/read:/true,/write:/false});/}/function/removeoldpollenwetter():void/for(var/i="0;i<Pollenarten.length;i++)" deletestate(baseobjpath/pollenarten[i].tolowercase());/readpollenwetterforday(day:number,/baseobj:string):void/logdebug("start");/try/var/options:irequestoptions="{" url:/((day="">0) ? baseUrl + '?fcdatstr=' + getDate(day) : baseUrl), // korrekten Link erstellen ,
                                      headers: {
                                      'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
                                      }
                                      };
                                      request(options, function (error, response, body):void {
                                      if (!error && response.statusCode == 200) { // kein Fehler, Inhalt in body
                                      body=body.replace(/\t/g, ' ');
                                      body=body.replace(/(\n|\r)/g, '');
                                      var start:number =body.indexOf('</pollenarten.length;i++)>!');
                                      if (start>-1) { body=body.slice(start); }
                                      body=stripTags(body);
                                      //logDebug('body',body);
                                      let pobj:any = {};
                                      for(let i=0;i<pollenarten.length;i++) 0/5/{/let/pi:number="GetPollenIndex(Pollenarten[i],body);" pobj[pollenarten[i].tolowercase()]="pi;" setstate(baseobj+'.'+pollenarten[i].tolowercase(),pi);/}/setstate(baseobj,json.stringify(pobj));/else/loginfo("statuscode="+response.statusCode);
                                      logError(error); // Error beim Einlesen
                                      }
                                      });
                                      } catch (e) {
                                      logError('Fehler (try) leseWebseite: ' + e);
                                      }
                                      }
                                      ! function readPollenwetter() {
                                      for (let d:number = 0; d < tageVorhersage.length; d++) {
                                      let path: string = baseObjPath + '.' + tageVorhersage[d];
                                      initializePollenwetter(path, tageVorhersageName[d]);
                                      readPollenwetterForDay(d, path);
                                      }
                                      }
                                      ! removeOldPollenwetter();
                                      readPollenwetter();
                                      schedule(" /",/readpollenwetter);<e=""></pollenarten.length;i++)> ! [http://www.wetteronline.de/pollen/warstein](http://www.wetteronline.de/pollen/warstein) ! >! ~~[spoiler]~~~~[code]~~javascript.0 2018-03-16 07:54:28.199 warn Object for state "wetter.pollenvorhersage.ambrosia" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.199 warn Object for state "wetter.pollenvorhersage.beifuß" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.198 warn Object for state "wetter.pollenvorhersage.wegerich" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.197 warn Object for state "wetter.pollenvorhersage.eiche" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.197 warn Object for state "wetter.pollenvorhersage.gräser" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.196 warn Object for state "wetter.pollenvorhersage.roggen" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.195 warn Object for state "wetter.pollenvorhersage.ampfer" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.194 warn Object for state "wetter.pollenvorhersage.buche" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.191 warn Object for state "wetter.pollenvorhersage.birke" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.190 warn Object for state "wetter.pollenvorhersage.ulme" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.189 warn Object for state "wetter.pollenvorhersage.weide" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.189 warn Object for state "wetter.pollenvorhersage.pappel" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.188 warn Object for state "wetter.pollenvorhersage.hasel" does not exist: Not exists
                                      javascript.0 2018-03-16 07:54:28.186 warn Object for state "wetter.pollenvorhersage.erle" does not exist: Not exists[/code][/spoiler] ! >! ~~[spoiler]~~ ~~[quote]~~javascript.0 2018-03-16 07:58:00.895 debug script.js.wetter.pollenflug: pflanze= Ulme code= kein
                                      ! javascript.0 2018-03-16 07:58:00.895 debug script.js.wetter.pollenflug: pflanze= Weide code= kein
                                      ! javascript.0 2018-03-16 07:58:00.894 debug script.js.wetter.pollenflug: pflanze= Pappel code= kein
                                      ! javascript.0 2018-03-16 07:58:00.894 debug script.js.wetter.pollenflug: pflanze= Hasel code= kein
                                      ! javascript.0 2018-03-16 07:58:00.894 debug script.js.wetter.pollenflug: pflanze= Erle code= schwach [/spoiler]
                                      ! 4298_heute.png
                                      ! 4298_morgen.png
                                      ! 4298_uebermorgen.png
                                      ! ```

                                      1 Antwort Letzte Antwort
                                      0
                                      • R Offline
                                        R Offline
                                        robsdobs
                                        schrieb am zuletzt editiert von
                                        #80

                                        Vielleicht waren die Objekte bei dir beim ersten Lauf noch nicht angelegt. Mal das Script gestoppt (grünen Pause knopf) und nochmal gestartet (roten Play Knopf)?

                                        Scripte: http://forum.iobroker.net/viewtopic.php?f=23&amp;t=2799&amp;p=119565#p119565,

                                        1 Antwort Letzte Antwort
                                        0
                                        • SmarthomeMFS Offline
                                          SmarthomeMFS Offline
                                          SmarthomeMF
                                          schrieb am zuletzt editiert von
                                          #81

                                          Hallo zusammen

                                          Die Polleninfo interessiert mich auch sehr…

                                          Bin aber in Sachen Skripte mit Java und das ganze Programmieren noch ein Anfänger!!

                                          Ich brauche das eine Schritt für Schritt Anleitung! (eine für blöde)

                                          Ich habe das Skript Genomen vom robsdods
                                          @robsdobs:

                                          spoerl.torsten hat geschrieben:Hallo robsdops, erstmal danke für das Script so funktioniert es wieder mit der Pollenflug-Anzeige. Wollte noch fragen ob du das Script um die Tage morgen und übermorgen erweitern kannst so wie bei dem alten Script?Wäre super.Gruß TorstenJa ist möglich: `

                                          ! ```
                                          `// ########################################################################################################
                                          // Polleninfo auswerten heute und die nächsten Tage
                                          // Version 1.4
                                          // ########################################################################################################
                                          ! /**************************************************************************************************

                                          • Initiale Optionen
                                            **************************************************************************************************/
                                            interface iRequestOptions {
                                            url: string;
                                            headers: any;
                                            }

                                          ! var baseUrl: string = "https://www.wetteronline.de/pollenvorhersage?gid=a4320";
                                          var baseObjPath: string = 'wetter.pollenvorhersage';
                                          ! /**************************************************************************************************

                                          • Globale TypeScript Definitionen
                                            *************************************************************************************************/
                                            // -----------------------------------------------------------------------------
                                            /
                                            Die folgenden Funktionen sind bei mir in einem globalen script.
                                            Wenn man diese global definieren will, muss man das lokal referenzieren mit:
                                            declare function isPrimitive(obj:any):boolean
                                            declare function logDebug(...param: any[]):void;
                                            declare function logInfo(...param: any[]):void;
                                            declare function logWarning(...param: any[]):void;
                                            declare function logError(...param: any[]):void;
                                            */

                                          ! /**

                                          • Function for check if a object is a primitive object (string, number, etc)
                                          • @param obj any object to check if it is a primitive object
                                          • @returns boolean which is true if object in parameter is a primitive object
                                            */
                                            function isPrimitive(obj:any):boolean {
                                            return (obj !== Object(obj));
                                            }

                                          ! /**

                                          • write any objects given as parameter to log as debug

                                          • @param param a nist of different objects
                                            /
                                            function logDebug(...param: any[]):void {
                                            if (arguments.length > 0) {
                                            var text:string[] = [];
                                            for (var i = 0; i < arguments.length; i++) {
                                            if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                            text.push(arguments[i]);
                                            } else if(arguments[i] === null) {
                                            text.push('null');
                                            } else if(arguments[i] === undefined) {
                                            text.push('undefined');
                                            } else if (isPrimitive(arguments[i])) {
                                            text.push(arguments[i]);
                                            } else {
                                            text.push(JSON.stringify(arguments[i]));
                                            }
                                            //enum close bracket cannot be found in "channel[state.id=
                                            .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                            }
                                            log(text.join(' '), 'debug');
                                            }
                                            }

                                          ! /**

                                          • write any objects given as parameter to log as Information

                                          • @param param a nist of different objects
                                            /
                                            function logInfo(...param: any[]):void {
                                            if (arguments.length > 0) {
                                            var text:string[] = [];
                                            for (var i = 0; i < arguments.length; i++) {
                                            if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                            text.push(arguments[i]);
                                            } else if(arguments[i] === null) {
                                            text.push('null');
                                            } else if(arguments[i] === undefined) {
                                            text.push('undefined');
                                            } else if (isPrimitive(arguments[i])) {
                                            text.push(arguments[i]);
                                            } else {
                                            text.push(JSON.stringify(arguments[i]));
                                            }
                                            //enum close bracket cannot be found in "channel[state.id=
                                            .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                            }
                                            log(text.join(' '), 'info');
                                            setState("javascript.0.Ereignisliste.event",'INFO|'+text.join(' '));
                                            }
                                            //logEnhanced(logtext, 'info');
                                            //console.debug(p);
                                            //logs(logtext,loglevels.debug);
                                            }

                                          ! /**

                                          • write any objects given as parameter to log as warning

                                          • @param param a nist of different objects
                                            /
                                            function logWarning(...param: any[]):void {
                                            if (arguments.length > 0) {
                                            var text:string[] = [];
                                            for (var i = 0; i < arguments.length; i++) {
                                            if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                            text.push(arguments[i]);
                                            } else if(arguments[i] === null) {
                                            text.push('null');
                                            } else if(arguments[i] === undefined) {
                                            text.push('undefined');
                                            } else if (isPrimitive(arguments[i])) {
                                            text.push(arguments[i]);
                                            } else {
                                            text.push(JSON.stringify(arguments[i]));
                                            }
                                            //enum close bracket cannot be found in "channel[state.id=
                                            .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                            }
                                            log(text.join(' '), 'warn');
                                            setState("javascript.0.Ereignisliste.event",'WARN|'+text.join(' '));
                                            }
                                            //logEnhanced(logtext, 'warn');
                                            //console.warn(p);
                                            //logs(logtext,loglevels.warn);
                                            }

                                          ! /**

                                          • write any objects given as parameter to log as error

                                          • @param param a nist of different objects
                                            /
                                            function logError(...param: any[]):void {
                                            if (arguments.length > 0) {
                                            var text:string[] = [];
                                            for (var i = 0; i < arguments.length; i++) {
                                            if (typeof arguments[i] === 'string' || arguments[i] instanceof String) {
                                            text.push(arguments[i]);
                                            } else if(arguments[i] === null) {
                                            text.push('null');
                                            } else if(arguments[i] === undefined) {
                                            text.push('undefined');
                                            } else if (isPrimitive(arguments[i])) {
                                            text.push(arguments[i]);
                                            } else {
                                            text.push(JSON.stringify(arguments[i]));
                                            }
                                            //enum close bracket cannot be found in "channel[state.id=
                                            .TEMPERATURE](rooms=WZ|Wohnung|Wohnzimmer"

                                            }
                                            log(text.join(' '), 'error');
                                            setState("javascript.0.Ereignisliste.event",'ERROR|'+text.join(' '));
                                            }
                                            }
                                            // ########################################################################################################
                                            // Lokale TypeScript Definitionen
                                            // ########################################################################################################
                                            import request = require("request");

                                          ! var Pollenarten:string[] = ['Erle','Hasel','Pappel','Weide','Ulme','Birke','Buche','Ampfer','Roggen','Gräser','Eiche','Wegerich','Beifuß','Ambrosia'];
                                          var tageVorhersage = ['d0','d1','d2','d3','d4','d5'];
                                          var tageVorhersageName = ['heute','morgen','übermorgen','heute + 3','heute + 4','heute + 5'];
                                          ! function stripTags(data:string):string {
                                          return data.replace(/( |<([^>]+)>)/ig, "");
                                          }
                                          ! function getDate(days: number): string { // Eingabe 0, 1, 2, ...
                                          var jetzt = new Date();
                                          jetzt.setHours(0);
                                          jetzt.setMinutes(0);
                                          jetzt.setSeconds(0);
                                          jetzt.setMilliseconds(0);
                                          var newdate = new Date();
                                          newdate.setTime(jetzt.getTime() + (24 * 60 * 60 * 1000 * days) ); // heute + anzahl tage ins Millisekunden
                                          var date :string = newdate.getDate().toString();
                                          var month: string = (newdate.getMonth()+1).toString();
                                          var year: string = newdate.getFullYear().toString();
                                          date = (date.length < 2) ? '0' + date : date;
                                          month = (month.length < 2) ? '0' + month : month;
                                          var result:string = year+month+date;
                                          logDebug('Datum in Link: ', result);
                                          return (result); // Ausgabe z.B. 20160506
                                          }
                                          ! function GetPollenIndex(pflanze:string, html:string):number {
                                          var code ={'kein':0, 'schwach':1, 'mäßig':2, 'stark':3};
                                          var result:string= "";
                                          var start:number =html.indexOf(pflanze)+pflanze.length;

                                          result=html.slice(start);
                                          result=result.trim();
                                          

                                          //logDebug('result for ',pflanze,html.slice(0,600));
                                          var stop:number =result.indexOf(' ');
                                          result=result.slice(0,stop);
                                          logDebug('pflanze=',pflanze,'code=',result);
                                          return code[result];
                                          }

                                          ! function initializePollenwetter(baseObj:string, name:string):void {
                                          createState(baseObj,0,false, {
                                          name: name,
                                          type: "string",
                                          role: 'json',
                                          read: true,
                                          write: false});
                                          ! for(var i=0;i<pollenarten.length;i++) {/createstate(baseobj/+/'.'/pollenarten[i].tolowercase(),0,false,/name:/'pollenart/'+/pollenarten[i],/type:/"number",/role:/'value',/read:/true,/write:/false});/}/function/removeoldpollenwetter():void/for(var/i="0;i<Pollenarten.length;i++)" deletestate(baseobjpath/pollenarten[i].tolowercase());/readpollenwetterforday(day:number,/baseobj:string):void/logdebug("start");/try/var/options:irequestoptions="{" url:/((day="">0) ? baseUrl + '?fcdatstr=' + getDate(day) : baseUrl), // korrekten Link erstellen ,
                                          headers: {
                                          'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
                                          }
                                          };
                                          request(options, function (error, response, body):void {
                                          if (!error && response.statusCode == 200) { // kein Fehler, Inhalt in body
                                          body=body.replace(/\t/g, ' ');
                                          body=body.replace(/(\n|\r)/g, '');
                                          var start:number =body.indexOf('</pollenarten.length;i++)>!');
                                          if (start>-1) { body=body.slice(start); }
                                          body=stripTags(body);
                                          //logDebug('body',body);
                                          let pobj:any = {};
                                          for(let i=0;i<pollenarten.length;i++) 0/5/{/let/pi:number="GetPollenIndex(Pollenarten[i],body);" pobj[pollenarten[i].tolowercase()]="pi;" setstate(baseobj+'.'+pollenarten[i].tolowercase(),pi);/}/setstate(baseobj,json.stringify(pobj));/else/loginfo("statuscode="+response.statusCode);
                                          logError(error); // Error beim Einlesen
                                          }
                                          });
                                          } catch (e) {
                                          logError('Fehler (try) leseWebseite: ' + e);
                                          }
                                          }
                                          ! function readPollenwetter() {
                                          for (let d:number = 0; d < tageVorhersage.length; d++) {
                                          let path: string = baseObjPath + '.' + tageVorhersage[d];
                                          initializePollenwetter(path, tageVorhersageName[d]);
                                          readPollenwetterForDay(d, path);
                                          }
                                          }
                                          ! removeOldPollenwetter();
                                          readPollenwetter();
                                          schedule(" /",/readpollenwetter);<e=""></pollenarten.length;i++)>`
                                          ! ```

                                          Max

                                          ioBroker auf einem NUC ,16GB RAM, 120GB SSD) mit Proxmox
                                          Cloud Pro, iot, Alexa, Sonos, sonoff, Fronius, Harmony, Doorbird, Shelly, Hue, Loxone, Mihome, …

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


                                          Support us

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

                                          858

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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