Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Wo ist der Fehler?

    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

    Wo ist der Fehler?

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @skorpil last edited by paul53

      @skorpil sagte: Offenbar stimmt die Typ Zuordnung nicht

      Ja, in Zeile 164 darf kein String zugewiesen werden.

          if (!wetterdaten) {
      

      schließt eine Windgeschwindigkeit von 0 ein.

      S 1 Reply Last reply Reply Quote 0
      • S
        skorpil @paul53 last edited by skorpil

        @paul53 wäre dann

        if (!wetterdaten) {
                wetterdaten = 0;
                setState(idVariable, wetterdaten);
            };
        

        richtig?

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

          @skorpil
          Ja

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @skorpil last edited by paul53

            @skorpil sagte: ich habe folgendes Sript im Einsatz

            Zeilen 179 bis 221 kann man durch eine Zeile ersetzen:

            let ausgabe = formatDate(wetterdaten, 'DD.MM.YYYY hh:mm:ss');
            
            1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @skorpil last edited by paul53

              @skorpil sagte: keine Daten liefert. Wie kann ich das abfangen?

              Durch Prüfung auf != null.

              //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                  
                  wetterdaten = getState(idOpenWeater).val;
                  if(wetterdaten != null) {
                      let ausgabe = 0;
                      if (wetterdaten > 1)  ausgabe = 1;
                      if (wetterdaten > 5)  ausgabe = 2;
                      if (wetterdaten > 11) ausgabe = 3;
                      if (wetterdaten > 19) ausgabe = 4;
                      if (wetterdaten > 28) ausgabe = 5;
                      if (wetterdaten > 38) ausgabe = 6;
                      if (wetterdaten > 49) ausgabe = 7;
                      if (wetterdaten > 61) ausgabe = 8;
                      if (wetterdaten > 74) ausgabe = 9;
                      if (wetterdaten > 88) ausgabe = 10;
                      if (wetterdaten > 102) ausgabe = 11;
                      if (wetterdaten > 117) ausgabe = 12;
                      setState(idVariable, ausgabe);
                  }
              

              Du solltest außerdem die gesamten Abfragen mit etwas Verzögerung (100 ms) starten, da der Trigger "Observation time (rfc822)" nicht als letzter Datenpunkt vom Adapter geschrieben wird. Sonst passen einige Werte nicht zum Zeitpunkt der letzten Abfrage.

              S T 2 Replies Last reply Reply Quote 1
              • S
                skorpil @paul53 last edited by

                @paul53 Du bist der Wahnsinn! Danke schön

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

                  @paul53
                  Hat es einen Grund warum du nicht

                  if (wetterdaten <= 1)  ausgabe = 1;
                  else if (wetterdaten <= 5)  ausgabe = 2;
                  else if (wetterdaten <= 11) ausgabe = 3;
                  else if (wetterdaten <= 19) ausgabe = 4;
                  ...
                  

                  genommen hast?

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

                    @ticaki sagte: Hat es einen Grund

                    Nein, man kann es so oder so machen. Du bist mit der ausgabe um 1 zu hoch.

                    let ausgabe = 12;
                    if (wetterdaten <= 1)  ausgabe = 0;
                    else if (wetterdaten <= 5)  ausgabe = 1;
                    else if (wetterdaten <= 11) ausgabe = 2;
                    else if (wetterdaten <= 19) ausgabe = 3;
                    ...
                    
                    T 1 Reply Last reply Reply Quote 1
                    • T
                      ticaki Developer @paul53 last edited by

                      @paul53
                      hast recht, Danke

                      1 Reply Last reply Reply Quote 1
                      • S
                        skorpil last edited by

                        @paul53 @ticaki ihr seid schneller als der Schall! Vielen, vielen Dank.
                        Ich kann gerade nicht an den beiden Scripten arbeiten. Morgen vormittag habe ich Zeit. Nachdem ich Eure Anpassungen und Vorschläge eingearbeitet habe, werde ich sie nochmals komplett posten. Und Infos geben, ob’s funktioniert.

                        1 Reply Last reply Reply Quote 0
                        • S
                          skorpil last edited by

                          wie versprochen hier nun das gesamte angepasste Script:

                          // #########################################################################
                          //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                          // #########################################################################
                          
                          
                          // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                          on ({id:'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, change: 'any'}, function(data) {
                          var wetterdaten;
                          
                          //Werte holen und setzen
                          
                          //Wetter Bedingung als String
                          var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                          var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                          wetterdaten = getState(idOpenWeater).val
                          
                          if (wetterdaten) setState(idVariable, wetterdaten); 
                          
                          //Wetter Richtung als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                          // log(JSON.stringify(getState(idOpenWeater).val));
                          var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                          Wetterdatenholenundsetzen();
                          // wenn keine Daten
                          if (!wetterdaten) {
                                  wetterdaten = 0;
                                  setState(idVariable, wetterdaten);
                          };
                          
                          //Wind Richtung als Angabe 
                          var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                          var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                              
                              //******************* Windrichtung bestimmen***************
                              //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                          
                              wetterdaten = getState(idOpenWeater).val
                          
                              if (wetterdaten > 23 && wetterdaten <= 68){
                                  wetterdaten = "NordOst";
                                  };
                          
                              if (wetterdaten > 68 && wetterdaten <= 113){
                                  wetterdaten = "Ost";
                                  };
                          
                              if (wetterdaten > 113 && wetterdaten <= 158){
                                  wetterdaten = "SüdOst";
                                  };
                          
                              if (wetterdaten > 158 && wetterdaten <= 203){
                                  wetterdaten = "Süd";
                                  };
                          
                              if (wetterdaten > 203 && wetterdaten <= 248){
                                  wetterdaten = "SüdWest";
                                  };
                          
                              if (wetterdaten > 248 && wetterdaten <= 293){
                                  wetterdaten = "West";
                                  };
                          
                              if (wetterdaten > 293 && wetterdaten <= 338){
                                  wetterdaten = "NordWest";
                                  };
                          
                              if (wetterdaten > 338 && wetterdaten <= 360){
                                  wetterdaten = "Nord";
                                  };
                          
                              if (wetterdaten > 0 && wetterdaten <= 23){
                                  wetterdaten = "Nord";
                                  };
                              
                              if (!wetterdaten) {
                                  wetterdaten = 0;
                                  setState(idVariable, wetterdaten);
                              };
                          
                              if (wetterdaten) setState(idVariable, wetterdaten);
                          
                          //Temperatur als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                          var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                          Wetterdatenholenundsetzen();
                          
                          //Luftfeuchtigkeit als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                          var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                          Wetterdatenholenundsetzen();
                          
                          //Windgeschwindigkeit als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                          var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                          Wetterdatenholenundsetzen();
                          // wenn keine Daten
                          if (!wetterdaten) {
                                  wetterdaten = 0;
                                  setState(idVariable, wetterdaten);
                          };
                          
                          //Wind Geschwindigkeit als Angabe (Beaufort); 
                          var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                          var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                          
                          
                          //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                              
                              wetterdaten = getState(idOpenWeater).val;
                              if(wetterdaten != null) {
                                  let ausgabe = 0;
                                  if (wetterdaten > 1)  ausgabe = 1;
                                  if (wetterdaten > 5)  ausgabe = 2;
                                  if (wetterdaten > 11) ausgabe = 3;
                                  if (wetterdaten > 19) ausgabe = 4;
                                  if (wetterdaten > 28) ausgabe = 5;
                                  if (wetterdaten > 38) ausgabe = 6;
                                  if (wetterdaten > 49) ausgabe = 7;
                                  if (wetterdaten > 61) ausgabe = 8;
                                  if (wetterdaten > 74) ausgabe = 9;
                                  if (wetterdaten > 88) ausgabe = 10;
                                  if (wetterdaten > 102) ausgabe = 11;
                                  if (wetterdaten > 117) ausgabe = 12;
                                  setState(idVariable, ausgabe);
                              }
                          
                          
                          //Luftdruck als Zahl
                          var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                          var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                          Wetterdatenholenundsetzen();
                          
                          //Aktualisierung (Zeit)
                          var idOpenWeater = 'weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/;
                          var idVariable = 'hm-rega.0.11472'/*Wetter Aktualisierung*/;
                          wetterdaten = getState(idOpenWeater).val;
                          
                          let ausgabe = formatDate(wetterdaten, 'DD.MM.YYYY hh:mm:ss');
                          
                          setState(idVariable, ausgabe);
                          
                          // ##################################################################
                          //                  FUNKTION Holen und setzen     
                          // ##################################################################
                          
                           function Wetterdatenholenundsetzen() {
                              wetterdaten = getState(idOpenWeater).val;
                              //if (wetterdaten) setState(idVariable, wetterdaten);
                              if (wetterdaten != null) setState(idVariable, wetterdaten);
                           };
                          
                          
                          });
                          

                          Zeilen 179 bis 221 kann man durch eine Zeile ersetzen: ein bisschen traurig bin ich schon, woich mir doch soooviel Mühe gegeben hatte...;-) aber das ist natürlich viel besser.

                          Durch Prüfung auf != null. Das habe ich so jetzt auch berücksichtigt.

                          Wo ich noch auf dem Schlauch stehe ist:

                          Du solltest außerdem die gesamten Abfragen mit etwas Verzögerung (100 ms) starten, da der Trigger "Observation time (rfc822)" nicht als letzter Datenpunkt vom Adapter geschrieben wird. Sonst passen einige Werte nicht zum Zeitpunkt der letzten Abfrage.

                          a) wie würde die Verzögerung programmiert?
                          b) der Adapter weatherunderground liefert zwei potentielle trigger, Observation time (rfc822) und Observation time. Mir kommt es hier nicht auf die letzte Akkuratesse an, sondern einfach um die Zeit der Beobachtung und ebe den trigger zur Auslösung des Scripts Welchen sollte ich nehmen?

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @skorpil last edited by paul53

                            @skorpil sagte: wie würde die Verzögerung programmiert?

                            Alle Daten - außer der Triggerwert selbst - sollten verzögert per getState(id).val geholt werden. Außerdem sollte die Variablendeklaration der 3 immer wieder verwendeten Variablen global ganz zu Anfang erfolgen. Auch die Funktion Wetterdatenholenundsetzen() sollte vor dem Trigger deklariert werden.

                            // #########################################################################
                            //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                            // #########################################################################
                             
                            var idOpenWeater, idVariable, wetterdaten;
                            
                            // ##################################################################
                            //                  FUNKTION Holen und setzen     
                            // ##################################################################
                            function Wetterdatenholenundsetzen() {
                                let wetterwert = getState(idOpenWeater).val;
                                if (wetterwert != null) setState(idVariable, wetterwert);
                            }
                            
                            // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                            on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                            
                                setTimeout(function() {
                                    // Hier alle anderen Daten für SV verarbeiten
                                }, 100); // 100 ms Verzögerung
                            });
                            
                            S 1 Reply Last reply Reply Quote 1
                            • S
                              skorpil @paul53 last edited by

                              @paul53 dankeschön.

                              1 Reply Last reply Reply Quote 0
                              • S
                                skorpil last edited by

                                @paul53 so?

                                // #########################################################################
                                //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                                // #########################################################################
                                 
                                var idOpenWeater, idVariable, wetterdaten;
                                 
                                // ##################################################################
                                //                  FUNKTION Holen und setzen     
                                // ##################################################################
                                function Wetterdatenholenundsetzen() {
                                    let wetterwert = getState(idOpenWeater).val;
                                    if (wetterwert != null) setState(idVariable, wetterwert);
                                }
                                 
                                // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                                on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                    
                                    //Aktualisierung (Zeit)
                                    let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                    setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                                 
                                    setTimeout(function() {
                                        
                                        
                                    //Werte holen und setzen
                                
                                //Wetter Bedingung als String
                                var idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                                var idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                                wetterdaten = getState(idOpenWeater).val
                                
                                if (wetterdaten) setState(idVariable, wetterdaten); 
                                
                                //Wetter Richtung als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                // log(JSON.stringify(getState(idOpenWeater).val));
                                var idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                                Wetterdatenholenundsetzen();
                                // wenn keine Daten
                                if (!wetterdaten) {
                                        wetterdaten = 0;
                                        setState(idVariable, wetterdaten);
                                };
                                
                                //Wind Richtung als Angabe 
                                var idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                var idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                                    
                                    //******************* Windrichtung bestimmen***************
                                    //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                                
                                    wetterdaten = getState(idOpenWeater).val
                                
                                    if (wetterdaten > 23 && wetterdaten <= 68){
                                        wetterdaten = "NordOst";
                                        };
                                
                                    if (wetterdaten > 68 && wetterdaten <= 113){
                                        wetterdaten = "Ost";
                                        };
                                
                                    if (wetterdaten > 113 && wetterdaten <= 158){
                                        wetterdaten = "SüdOst";
                                        };
                                
                                    if (wetterdaten > 158 && wetterdaten <= 203){
                                        wetterdaten = "Süd";
                                        };
                                
                                    if (wetterdaten > 203 && wetterdaten <= 248){
                                        wetterdaten = "SüdWest";
                                        };
                                
                                    if (wetterdaten > 248 && wetterdaten <= 293){
                                        wetterdaten = "West";
                                        };
                                
                                    if (wetterdaten > 293 && wetterdaten <= 338){
                                        wetterdaten = "NordWest";
                                        };
                                
                                    if (wetterdaten > 338 && wetterdaten <= 360){
                                        wetterdaten = "Nord";
                                        };
                                
                                    if (wetterdaten > 0 && wetterdaten <= 23){
                                        wetterdaten = "Nord";
                                        };
                                    
                                    if (!wetterdaten) {
                                        wetterdaten = 0;
                                        setState(idVariable, wetterdaten);
                                    };
                                
                                    if (wetterdaten) setState(idVariable, wetterdaten);
                                
                                //Temperatur als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                                var idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                                Wetterdatenholenundsetzen();
                                
                                //Luftfeuchtigkeit als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                                var idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                                Wetterdatenholenundsetzen();
                                
                                //Windgeschwindigkeit als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                var idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                                Wetterdatenholenundsetzen();
                                // wenn keine Daten
                                if (!wetterdaten) {
                                        wetterdaten = 0;
                                        setState(idVariable, wetterdaten);
                                };
                                
                                //Wind Geschwindigkeit als Angabe (Beaufort); 
                                var idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                var idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                                
                                
                                //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                                    
                                    wetterdaten = getState(idOpenWeater).val;
                                    if(wetterdaten != null) {
                                        let ausgabe = 0;
                                        if (wetterdaten > 1)  ausgabe = 1;
                                        if (wetterdaten > 5)  ausgabe = 2;
                                        if (wetterdaten > 11) ausgabe = 3;
                                        if (wetterdaten > 19) ausgabe = 4;
                                        if (wetterdaten > 28) ausgabe = 5;
                                        if (wetterdaten > 38) ausgabe = 6;
                                        if (wetterdaten > 49) ausgabe = 7;
                                        if (wetterdaten > 61) ausgabe = 8;
                                        if (wetterdaten > 74) ausgabe = 9;
                                        if (wetterdaten > 88) ausgabe = 10;
                                        if (wetterdaten > 102) ausgabe = 11;
                                        if (wetterdaten > 117) ausgabe = 12;
                                        setState(idVariable, ausgabe);
                                    }
                                
                                
                                //Luftdruck als Zahl
                                var idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                                var idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                                Wetterdatenholenundsetzen();
                                
                                
                                    }, 100); // 100 ms Verzögerung
                                });
                                
                                
                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @skorpil last edited by paul53

                                  @skorpil sagte: so?

                                  Nein, ohne var innerhalb der Funktion:

                                  // #########################################################################
                                  //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                                  // #########################################################################
                                   
                                  var idOpenWeater, idVariable, wetterdaten;
                                   
                                  // ##################################################################
                                  //                  FUNKTION Holen und setzen     
                                  // ##################################################################
                                  function Wetterdatenholenundsetzen() {
                                      let wetterwert = getState(idOpenWeater).val;
                                      if (wetterwert != null) setState(idVariable, wetterwert);
                                  }
                                   
                                  // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                                  on ('weatherunderground.0.forecast.current.observationTimeRFC822'/*Observation time (rfc822)*/, function(dp) {
                                      
                                      //Aktualisierung (Zeit)
                                      let ausgabe = formatDate(dp.state.val, 'DD.MM.YYYY hh:mm:ss');
                                      setState('hm-rega.0.11472'/*Wetter Aktualisierung*/, ausgabe);
                                   
                                      setTimeout(function() {
                                          //Werte holen und setzen
                                   
                                          //Wetter Bedingung als String
                                          idOpenWeater = 'yr.0.forecastHourly.6h.6h_summary_text'/*6h summary text*/;
                                          idVariable = 'hm-rega.0.11465'/*Wetter Bedingungen*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Wetter Richtung als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.windDegrees'/*Wind direction Degrees*/;
                                          idVariable = 'hm-rega.0.11466'/*Wetter Windrichtg*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Wind Richtung als Angabe 
                                          idVariable = 'hm-rega.0.11467'/*Wetter Windrichtung*/;  
                                      
                                          //******************* Windrichtung bestimmen***************
                                          //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                                   
                                          wetterdaten = getState(idOpenWeater).val
                                          if(wetterdaten != null) {
                                              let ausgabe = "Nord";
                                              if (wetterdaten > 23) ausgabe = "NordOst";
                                              if (wetterdaten > 68) ausgabe = "Ost";
                                              if (wetterdaten > 113) ausgabe = "SüdOst";
                                              if (wetterdaten > 158) ausgabe = "Süd";
                                              if (wetterdaten > 203) ausgabe = "SüdWest";
                                              if (wetterdaten > 248) ausgabe = "West";
                                              if (wetterdaten > 293) ausgabe = "NordWest";
                                              if (wetterdaten > 338) ausgabe = "Nord";
                                              setState(idVariable, ausgabe);
                                          }
                                  
                                          //Temperatur als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.temp'/*Temperature*/;
                                          idVariable = 'hm-rega.0.11468'/*Wetter Temperatur*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Luftfeuchtigkeit als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.relativeHumidity'/*Relative humidity*/;
                                          idVariable = 'hm-rega.0.11469'/*Wetter Luftfeuchte*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Windgeschwindigkeit als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.wind'/*Wind speed*/;
                                          idVariable = 'hm-rega.0.11474'/*Wetter Windgeschw*/;
                                          Wetterdatenholenundsetzen();
                                   
                                          //Wind Geschwindigkeit als Angabe (Beaufort); 
                                          idVariable = 'hm-rega.0.11470'/*Wetter Windgeschwindigkeit*/;
                                    
                                          //******************* Windgeschwindigkeit in Beaufort bestimmen***************
                                          wetterdaten = getState(idOpenWeater).val;
                                          if(wetterdaten != null) {
                                              let ausgabe = 0;
                                              if (wetterdaten > 1)  ausgabe = 1;
                                              if (wetterdaten > 5)  ausgabe = 2;
                                              if (wetterdaten > 11) ausgabe = 3;
                                              if (wetterdaten > 19) ausgabe = 4;
                                              if (wetterdaten > 28) ausgabe = 5;
                                              if (wetterdaten > 38) ausgabe = 6;
                                              if (wetterdaten > 49) ausgabe = 7;
                                              if (wetterdaten > 61) ausgabe = 8;
                                              if (wetterdaten > 74) ausgabe = 9;
                                              if (wetterdaten > 88) ausgabe = 10;
                                              if (wetterdaten > 102) ausgabe = 11;
                                              if (wetterdaten > 117) ausgabe = 12;
                                              setState(idVariable, ausgabe);
                                          }
                                   
                                          //Luftdruck als Zahl
                                          idOpenWeater = 'weatherunderground.0.forecast.current.pressure'/*Air pressure (mbar)*/;
                                          idVariable = 'hm-rega.0.11471'/*Wetter Luftdruck*/;
                                          Wetterdatenholenundsetzen();
                                  
                                      }, 100); // 100 ms Verzögerung
                                  });
                                  
                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    skorpil @paul53 last edited by

                                    @paul53 sagte in Wo ist der Fehler?:

                                    Nein, ohne var innerhalb der Funktion:

                                    Damit ich es verstehe: WARUM?

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @skorpil last edited by paul53

                                      @skorpil sagte: Damit ich es verstehe: WARUM?

                                      Damit die Werte in die globalen Variablen (Zeile 5) für die Übergabe an die Funktion Wetterdatenholenundsetzen() geschrieben werden. Wenn eine Variable mit dem gleichen Bezeichner innerhalb der Trigger-Callback-Funktion neu deklariert wird (var), ist sie nur innerhalb der Callback-Funktion gültig.

                                      S 1 Reply Last reply Reply Quote 0
                                      • S
                                        skorpil @paul53 last edited by

                                        @paul53 ich verstehe

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        810
                                        Online

                                        31.9k
                                        Users

                                        80.2k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        19
                                        658
                                        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