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. [gelöst] http request

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    261

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

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

[gelöst] http request

Scheduled Pinned Locked Moved Skripten / Logik
29 Posts 7 Posters 8.4k Views
  • 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.
  • Lenny.CBL Online
    Lenny.CBL Online
    Lenny.CB
    Most Active
    wrote on last edited by
    #17

    @homecineplexx:

    @Lenny.CB:

    also aus dem Script heraus geht es mit:

    exec('wget http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0');
    

    hier ist aber zwischen Befehl und Ausführung ein Zeitversatz den ich nicht gut finde (knapp 5 Sekunden).

    Im Prinzip will ich mit einem Xiaomi-Taster bzw. einem Bewegungsmelder Leuchten im Garten schalten, die an meinem Pool-Controller angeschlossen sind.

    Und beim "Licht schalten" ist ein "Versatz" von über einer Sekunde absolut nicht schön.

    Daher auch die Überlegung mit dem request. Das muss doch damit auch gehen? Hat noch wer Ideen? `

    hier hast du aber auch keine Authentisierung und es klappt `
    jupp da hast du recht, dennoch ist mir unklar warum es mit request nicht klappt.

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

      probiers mal ganz erinfach:

      var request = require('request');
      request("http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0").on('error', function  (e) {  log(e, 'error');});
      
      
      1 Reply Last reply
      0
      • Lenny.CBL Online
        Lenny.CBL Online
        Lenny.CB
        Most Active
        wrote on last edited by
        #19

        @homecineplexx:

        probiers mal ganz erinfach:

        var request = require('request');
        request("http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0").on('error', function  (e) {  log(e, 'error');});
        
        ```` `  gemacht, passiert nichts, kein Schalten, kein Log…
        1 Reply Last reply
        0
        • H Offline
          H Offline
          homecineplexx
          wrote on last edited by
          #20

          den javaScript adpater hast du mal auf debug gestellt?

          siehst du eigentlich irgendwo einen log, dass er versucht diesen request abzuschicken?

          1 Reply Last reply
          0
          • Lenny.CBL Online
            Lenny.CBL Online
            Lenny.CB
            Most Active
            wrote on last edited by
            #21

            @homecineplexx:

            den javaScript adpater hast du mal auf debug gestellt? ` jupp
            @homecineplexx:

            siehst du eigentlich irgendwo einen log, dass er versucht diesen request abzuschicken? ` nein

            ich fasse mal zusammen:

            deine Code-Zeile erzeugt keine Befehle und auch keine Logeinträge

            var request = require('request');
            request("http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0").on('error', function  (e) {  log(e, 'error');});
            

            Ich hatte dann mal aus dem https://www.npmjs.com/package/request was probiert:

            var request = require('request');
            request("http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0", function  (error, response, body) {
                log('error: ' + error);
                log('response: ' + JSON.stringify(response));
                log('body: ' + body);
            });
            

            erzeugt dann dieses Log:````
            12:58:34.714 [info] javascript.0 script.js.Testscripte.Skript1: error: null
            12:58:34.715 [info] javascript.0 script.js.Testscripte.Skript1: response: {"statusCode":401,"body":"","headers":{"server":"PoolController","www-authenticate":"Poolauth realm="NeedPassword"","content-type":"text/html"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.2.37:8091","port":"8091","hostname":"192.168.2.37","hash":null,"search":"?R16=1&RT16=0","query":"R16=1&RT16=0","pathname":"/SetState.pl","path":"/SetState.pl?R16=1&RT16=0","href":"http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0"},"method":"GET","headers":{}}}
            12:58:34.716 [info] javascript.0 script.js.Testscripte.Skript1: body:

            
            da steht was von "****Poolauth realm=\"NeedPassword\****". Also erweitert mit den Zeilen die ich bei request-npm gefunden habe (ob das richtig ist, sein mal dahin gestellt):````
            request({
                method: 'POST',
                uri: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0',
                auth: [{
                    'user': 'admin',
                    'pass': 'admin',
                    'sendImmediately': false
                    }]
              },
              function (error, response, body) {
                log('error: ' + error);
                log('response: ' + response);
                //log('response: ' + JSON.stringify(response));
                log('body: ' + body);
              });
             */
            

            erzeug dieses Log:````
            13:04:02.185 [info] javascript.0 script.js.Testscripte.Skript1: error: Error: no auth mechanism defined
            13:04:02.185 [info] javascript.0 script.js.Testscripte.Skript1: response: undefined
            13:04:02.185 [info] javascript.0 script.js.Testscripte.Skript1: body: undefined

            
            Hmmm, nun gehts nicht weiter…
            1 Reply Last reply
            0
            • H Offline
              H Offline
              homecineplexx
              wrote on last edited by
              #22

              und so?

              var requestTest = require('request'),
              
              var options = {
                  url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0',
                  method: 'POST',
                  formData: {
                      'username':'admin',
                      'password':'admin'
                  }
              }
              
              requestTest(options, function  (error, response, body) {
                  log('error: ' + error);
                  log('response: ' + JSON.stringify(response));
                  log('body: ' + body);
              });
              
              
              1 Reply Last reply
              0
              • Lenny.CBL Online
                Lenny.CBL Online
                Lenny.CB
                Most Active
                wrote on last edited by
                #23

                @homecineplexx:

                und so?

                var requestTest = require('request'),
                
                var options = {
                    url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0',
                    method: 'POST',
                    formData: {
                        'username':'admin',
                        'password':'admin'
                    }
                }
                
                requestTest(options, function  (error, response, body) {
                    log('error: ' + error);
                    log('response: ' + JSON.stringify(response));
                    log('body: ' + body);
                });
                
                ```` `  
                

                ergibt das: ` > 14:45:24.506 [info] javascript.0 script.js.Testscripte.Skript1: error: Error: read ECONNRESET

                14:45:24.523 [info] javascript.0 script.js.Testscripte.Skript1: response: undefined

                14:45:24.523 [info] javascript.0 script.js.Testscripte.Skript1: body: undefined `

                habe in der ersten Zeile mal das "Komma" mit einem "Semikolon" getauscht?

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

                  Sorry war ein Schreibfehler.

                  Natürlich so.

                  Aber du bekommst keine Authfehler mehr?

                  var requestTest = require('request');
                  
                  var options = {
                      url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0',
                      method: 'POST',
                      formData: {
                          'username':'admin',
                          'password':'admin'
                      }
                  };
                  
                  requestTest(options, function  (error, response, body) {
                      log('error: ' + error);
                      log('response: ' + JSON.stringify(response));
                      log('body: ' + body);
                  });
                  
                  
                  1 Reply Last reply
                  0
                  • Lenny.CBL Online
                    Lenny.CBL Online
                    Lenny.CB
                    Most Active
                    wrote on last edited by
                    #25

                    @homecineplexx:

                    Sorry war ein Schreibfehler.

                    Natürlich so.

                    Aber du bekommst keine Authfehler mehr?

                    var requestTest = require('request');
                    
                    var options = {
                        url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0',
                        method: 'POST',
                        formData: {
                            'username':'admin',
                            'password':'admin'
                        }
                    };
                    
                    requestTest(options, function  (error, response, body) {
                        log('error: ' + error);
                        log('response: ' + JSON.stringify(response));
                        log('body: ' + body);
                    });
                    
                    ```` `  Nein.
                    1 Reply Last reply
                    0
                    • H Offline
                      H Offline
                      homecineplexx
                      wrote on last edited by
                      #26

                      Schaltet dein Teil jetzt mal?

                      1 Reply Last reply
                      0
                      • Lenny.CBL Online
                        Lenny.CBL Online
                        Lenny.CB
                        Most Active
                        wrote on last edited by
                        #27

                        @homecineplexx:

                        Schaltet dein Teil jetzt mal? ` Ne tuts leider nicht…

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

                          mal was anderes. siehst du auf dem 192.168.2.37:8091, den du steuern möchtest, irgendwelche logs?

                          1 Reply Last reply
                          0
                          • Lenny.CBL Online
                            Lenny.CBL Online
                            Lenny.CB
                            Most Active
                            wrote on last edited by
                            #29

                            @homecineplexx:

                            mal was anderes. siehst du auf dem 192.168.2.37:8091, den du steuern möchtest, irgendwelche logs? ` Logs in dem Sinne sind da nicht zu holen.

                            ABER, ich habe jetzt was gefunden was auch klappt.

                            var request = require('request'),
                                username = "admin",
                                password = "admin",
                                url = 'http://192.168.2.37:8091/SetState.pl?R16=0&RT16=0',
                                auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
                            
                            request({
                                    url : url,
                                    headers : {'Authorization' : auth}
                                },
                                function (error, response, body) {
                                        log('error: ' + error);
                                        log('response: ' + JSON.stringify(response));
                                        log('body: ' + body);
                                }
                            );
                            

                            erzeugt dann dieses LOG und schaltet auch das Relais im Controler:

                            08:23:02.308	[info]	javascript.0 script.js.Testscripte.Skript1: error: null
                            08:23:02.310	[info]	javascript.0 script.js.Testscripte.Skript1: response: {"statusCode":200,"body":"0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0\n","headers":{"server":"PoolController V.1.6.8","connection":"close","content-type":"text/plain; charset=ISO-8859-1"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.2.37:8091","port":"8091","hostname":"192.168.2.37","hash":null,"search":"?R16=0&RT16=0","query":"R16=0&RT16=0","pathname":"/SetState.pl","path":"/SetState.pl?R16=0&RT16=0","href":"http://192.168.2.37:8091/SetState.pl?R16=0&RT16=0"},"method":"GET","headers":{"Authorization":"Basic YWxxxx46xxxxaWxxxx=="}}}
                            08:23:02.310	[info]	javascript.0 script.js.Testscripte.Skript1: body: 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
                            

                            nochmal danke an alle die so geduldig waren. :D

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


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            604

                            Online

                            32.7k

                            Users

                            82.5k

                            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