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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Gelöst] request() - Netatmo

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Gelöst] request() - Netatmo

Scheduled Pinned Locked Moved JavaScript
javascriptclimate
8 Posts 2 Posters 752 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    RKBroker
    wrote on last edited by RKBroker
    #1

    Guten Morgen Zusammen,

    Bin am Verzweifeln und verstehe gerade so einiges nicht mehr....
    Bei folgendem vereinfachtem Skript wird der request () in Zeile 18 mal eben locker übersprungen und bei Zeile 29 weiter gemacht. Beim zweiten Durchlauf wird der request dann ausgeführt. Aber warum ist das so? Dachte bis heute, dass die Zeilen sequenziell abgearbeitet werden.

    var access_token;
    
    function readToken() {
    
        var headers = {
            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
        };
    
        var dataString = 'grant_type=password&client_id=5de0cc77a11ec5960911ffd0&client_secret=MeXp9wwdY7uAKee3MCUzFUJSLphuTIYju&username=xx.yy@zz.de&password=vergessen';
    
        var options = {
            url: 'https://api.netatmo.net/oauth2/token',
            method: 'POST',
            headers: headers,
            body: dataString
        };
    
        request(options, function (error, response, body) {
            if (!error && response.statusCode == 200 ) {
                var obj = JSON.parse(body, function (key, value){
                    if (key == "access_token") {
                    access_token = value;
                    return value;
                    }
                });
            };
        });
    
        var request_daten = require('request');
        var dataString_2;
    
        var lat_ne = "50.805642";
        var lon_ne = "6.977646";
        var lat_sw = "-50.803309";
        var lon_sw = "-6.982365";
    
        dataString_2 = 'access_token=' + access_token + '&lat_ne=' + lat_ne + '&lon_ne=' + lon_ne + '&lat_sw=' + lat_sw + '&lon_sw=' + lon_sw;
    }
    
    setTimeout(readToken, 1500);
    

    Eine Idee warum das so ist oder was nicht richtig ist?

    Vielen Dank und Gruß
    Rüdiger

    H 1 Reply Last reply
    0
    • R RKBroker

      Guten Morgen Zusammen,

      Bin am Verzweifeln und verstehe gerade so einiges nicht mehr....
      Bei folgendem vereinfachtem Skript wird der request () in Zeile 18 mal eben locker übersprungen und bei Zeile 29 weiter gemacht. Beim zweiten Durchlauf wird der request dann ausgeführt. Aber warum ist das so? Dachte bis heute, dass die Zeilen sequenziell abgearbeitet werden.

      var access_token;
      
      function readToken() {
      
          var headers = {
              'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
          };
      
          var dataString = 'grant_type=password&client_id=5de0cc77a11ec5960911ffd0&client_secret=MeXp9wwdY7uAKee3MCUzFUJSLphuTIYju&username=xx.yy@zz.de&password=vergessen';
      
          var options = {
              url: 'https://api.netatmo.net/oauth2/token',
              method: 'POST',
              headers: headers,
              body: dataString
          };
      
          request(options, function (error, response, body) {
              if (!error && response.statusCode == 200 ) {
                  var obj = JSON.parse(body, function (key, value){
                      if (key == "access_token") {
                      access_token = value;
                      return value;
                      }
                  });
              };
          });
      
          var request_daten = require('request');
          var dataString_2;
      
          var lat_ne = "50.805642";
          var lon_ne = "6.977646";
          var lat_sw = "-50.803309";
          var lon_sw = "-6.982365";
      
          dataString_2 = 'access_token=' + access_token + '&lat_ne=' + lat_ne + '&lon_ne=' + lon_ne + '&lat_sw=' + lat_sw + '&lon_sw=' + lon_sw;
      }
      
      setTimeout(readToken, 1500);
      

      Eine Idee warum das so ist oder was nicht richtig ist?

      Vielen Dank und Gruß
      Rüdiger

      H Offline
      H Offline
      homecineplexx
      wrote on last edited by
      #2

      @RKBroker said in request() - Netatmo:

      Guten Morgen Zusammen,

      Bin am Verzweifeln und verstehe gerade so einiges nicht mehr....
      Bei folgendem vereinfachtem Skript wird der request () in Zeile 18 mal eben locker übersprungen und bei Zeile 29 weiter gemacht. Beim zweiten Durchlauf wird der request dann ausgeführt. Aber warum ist das so? Dachte bis heute, dass die Zeilen sequenziell abgearbeitet werden.

      var access_token;
      
      function readToken() {
      
          var headers = {
              'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
          };
      
          var dataString = 'grant_type=password&client_id=5de0cc77a11ec5960911ffd0&client_secret=MeXp9wwdY7uAKee3MCUzFUJSLphuTIYju&username=xx.yy@zz.de&password=vergessen';
      
          var options = {
              url: 'https://api.netatmo.net/oauth2/token',
              method: 'POST',
              headers: headers,
              body: dataString
          };
      
          request(options, function (error, response, body) {
              if (!error && response.statusCode == 200 ) {
                  var obj = JSON.parse(body, function (key, value){
                      if (key == "access_token") {
                      access_token = value;
                      return value;
                      }
                  });
              };
          });
      
          var request_daten = require('request');
          var dataString_2;
      
          var lat_ne = "50.805642";
          var lon_ne = "6.977646";
          var lat_sw = "-50.803309";
          var lon_sw = "-6.982365";
      
          dataString_2 = 'access_token=' + access_token + '&lat_ne=' + lat_ne + '&lon_ne=' + lon_ne + '&lat_sw=' + lat_sw + '&lon_sw=' + lon_sw;
      }
      
      setTimeout(readToken, 1500);
      

      Eine Idee warum das so ist oder was nicht richtig ist?

      Vielen Dank und Gruß
      Rüdiger

      also eigentlich definiert man den die variable (require) davor, bevor man sie benutzt. vor allem, wir dein request_daten überhaupt irgendwo verwendet?

      var request = require('request');
      
      request(options, function (error, response, body) {
         // blabla
      });
      
      R 1 Reply Last reply
      0
      • H homecineplexx

        @RKBroker said in request() - Netatmo:

        Guten Morgen Zusammen,

        Bin am Verzweifeln und verstehe gerade so einiges nicht mehr....
        Bei folgendem vereinfachtem Skript wird der request () in Zeile 18 mal eben locker übersprungen und bei Zeile 29 weiter gemacht. Beim zweiten Durchlauf wird der request dann ausgeführt. Aber warum ist das so? Dachte bis heute, dass die Zeilen sequenziell abgearbeitet werden.

        var access_token;
        
        function readToken() {
        
            var headers = {
                'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
            };
        
            var dataString = 'grant_type=password&client_id=5de0cc77a11ec5960911ffd0&client_secret=MeXp9wwdY7uAKee3MCUzFUJSLphuTIYju&username=xx.yy@zz.de&password=vergessen';
        
            var options = {
                url: 'https://api.netatmo.net/oauth2/token',
                method: 'POST',
                headers: headers,
                body: dataString
            };
        
            request(options, function (error, response, body) {
                if (!error && response.statusCode == 200 ) {
                    var obj = JSON.parse(body, function (key, value){
                        if (key == "access_token") {
                        access_token = value;
                        return value;
                        }
                    });
                };
            });
        
            var request_daten = require('request');
            var dataString_2;
        
            var lat_ne = "50.805642";
            var lon_ne = "6.977646";
            var lat_sw = "-50.803309";
            var lon_sw = "-6.982365";
        
            dataString_2 = 'access_token=' + access_token + '&lat_ne=' + lat_ne + '&lon_ne=' + lon_ne + '&lat_sw=' + lat_sw + '&lon_sw=' + lon_sw;
        }
        
        setTimeout(readToken, 1500);
        

        Eine Idee warum das so ist oder was nicht richtig ist?

        Vielen Dank und Gruß
        Rüdiger

        also eigentlich definiert man den die variable (require) davor, bevor man sie benutzt. vor allem, wir dein request_daten überhaupt irgendwo verwendet?

        var request = require('request');
        
        request(options, function (error, response, body) {
           // blabla
        });
        
        R Offline
        R Offline
        RKBroker
        wrote on last edited by
        #3

        @homecineplexx Vielen Dank. Den Teil mit request_daten habe ich nur entfernt, um das Skript hier kurz zu halten. Die Variable hatte ich mal definiert, aber laut Forum ist das für genau diesen Fall nicht mehr notwendig. Aber auch dann wird der request übersprungen.

        Gruß

        Rüdiger

        H 1 Reply Last reply
        0
        • R RKBroker

          @homecineplexx Vielen Dank. Den Teil mit request_daten habe ich nur entfernt, um das Skript hier kurz zu halten. Die Variable hatte ich mal definiert, aber laut Forum ist das für genau diesen Fall nicht mehr notwendig. Aber auch dann wird der request übersprungen.

          Gruß

          Rüdiger

          H Offline
          H Offline
          homecineplexx
          wrote on last edited by
          #4

          @RKBroker said in request() - Netatmo:

          @homecineplexx Vielen Dank. Den Teil mit request_daten habe ich nur entfernt, um das Skript hier kurz zu halten. Die Variable hatte ich mal definiert, aber laut Forum ist das für genau diesen Fall nicht mehr notwendig. Aber auch dann wird der request übersprungen.

          Gruß

          Rüdiger

          ist request nicht ein asynchroner Job/Befehl ?

          R 1 Reply Last reply
          0
          • H homecineplexx

            @RKBroker said in request() - Netatmo:

            @homecineplexx Vielen Dank. Den Teil mit request_daten habe ich nur entfernt, um das Skript hier kurz zu halten. Die Variable hatte ich mal definiert, aber laut Forum ist das für genau diesen Fall nicht mehr notwendig. Aber auch dann wird der request übersprungen.

            Gruß

            Rüdiger

            ist request nicht ein asynchroner Job/Befehl ?

            R Offline
            R Offline
            RKBroker
            wrote on last edited by
            #5

            @homecineplexx Absolut keine Ahnung, ob das asynchroner Befehl ist oder nicht.
            Durch eine Menge von console.log konnte ich nur sehen, dass beim ersten Durchlauf der erste request nicht abegarbeitet bzw. aufgerufen wird. Der zweite request wird beim ersten Durlauch abegarbeitet, rennt dann aber gegen die Wand, weil das Ergbnis (sprich, den Token) vom ersten request benötigt wird...

            H 1 Reply Last reply
            0
            • R RKBroker

              @homecineplexx Absolut keine Ahnung, ob das asynchroner Befehl ist oder nicht.
              Durch eine Menge von console.log konnte ich nur sehen, dass beim ersten Durchlauf der erste request nicht abegarbeitet bzw. aufgerufen wird. Der zweite request wird beim ersten Durlauch abegarbeitet, rennt dann aber gegen die Wand, weil das Ergbnis (sprich, den Token) vom ersten request benötigt wird...

              H Offline
              H Offline
              homecineplexx
              wrote on last edited by
              #6

              @RKBroker das war eigentlich eher als feststellung gemeint. darum hat der request ja auch eine callback function

              R 1 Reply Last reply
              0
              • H homecineplexx

                @RKBroker das war eigentlich eher als feststellung gemeint. darum hat der request ja auch eine callback function

                R Offline
                R Offline
                RKBroker
                wrote on last edited by
                #7

                @homecineplexx NoP
                Mal "bildlich" dargestellt:

                   console.log("Request-1 Token");
                
                   request(options, function (error, response, body) {
                       console.log("Request-2 Token");
                       
                       if (!error && response.statusCode == 200 ) {
                           console.log("Request-3 Token");
                           var obj = JSON.parse(body, function (key, value){
                               console.log("Request-4 Token");
                               if (key == "access_token") {
                               console.log("Request-5 Token");
                               access_token = value;
                               return value;
                               }
                           console.log("Request-6 Token");
                           });
                       console.log("Request-7 Token");
                       };
                       
                   console.log("Read-Token-8: " + access_token);
                
                   });
                   console.log("Request-9 Token");
                       
                   var request_daten = require('request');
                   var dataString_2;
                

                Ergibt im log:

                11:04:34.242	info	javascript.0 Start javascript script.js.common.OpenWeatherUV.NetAtMo_02
                11:04:34.243	info	javascript.0 script.js.common.OpenWeatherUV.NetAtMo_02: Request-1 Token
                11:04:34.243	info	javascript.0 script.js.common.OpenWeatherUV.NetAtMo_02: Request-9 Token
                11:04:34.243	info	javascript.0 script.js.common.OpenWeatherUV.NetAtMo_02: Data: undefined
                

                Demnach wird der request nicht beachtet...

                R 1 Reply Last reply
                0
                • R RKBroker

                  @homecineplexx NoP
                  Mal "bildlich" dargestellt:

                     console.log("Request-1 Token");
                  
                     request(options, function (error, response, body) {
                         console.log("Request-2 Token");
                         
                         if (!error && response.statusCode == 200 ) {
                             console.log("Request-3 Token");
                             var obj = JSON.parse(body, function (key, value){
                                 console.log("Request-4 Token");
                                 if (key == "access_token") {
                                 console.log("Request-5 Token");
                                 access_token = value;
                                 return value;
                                 }
                             console.log("Request-6 Token");
                             });
                         console.log("Request-7 Token");
                         };
                         
                     console.log("Read-Token-8: " + access_token);
                  
                     });
                     console.log("Request-9 Token");
                         
                     var request_daten = require('request');
                     var dataString_2;
                  

                  Ergibt im log:

                  11:04:34.242	info	javascript.0 Start javascript script.js.common.OpenWeatherUV.NetAtMo_02
                  11:04:34.243	info	javascript.0 script.js.common.OpenWeatherUV.NetAtMo_02: Request-1 Token
                  11:04:34.243	info	javascript.0 script.js.common.OpenWeatherUV.NetAtMo_02: Request-9 Token
                  11:04:34.243	info	javascript.0 script.js.common.OpenWeatherUV.NetAtMo_02: Data: undefined
                  

                  Demnach wird der request nicht beachtet...

                  R Offline
                  R Offline
                  RKBroker
                  wrote on last edited by RKBroker
                  #8

                  Ok, Problem gelöst, dafür ein paar Andere :-(

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


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  330

                  Online

                  32.6k

                  Users

                  82.2k

                  Topics

                  1.3m

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

                  • Don't have an account? Register

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