Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] http request

    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

    [gelöst] http request

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dutchman
      Dutchman Developer Most Active Administrators last edited by

      und wen du es auf der console ausfuehrst als alternative ?

      1 Reply Last reply Reply Quote 0
      • Lenny.CB
        Lenny.CB Most Active last edited by

        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?

        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          Verwende mal statt request das node Modul http (ist in nodejs enthalten und muss nicht im JS Adapter eingetragen werden).

          Und dann nicht get sondern post.

          Gesendet von meinem m8 mit Tapatalk

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

            schon mal probiert das selbe, aber ohne GET??

            ist ja immerhin ein POST request, daher nimm die method mal ganz weg

            1 Reply Last reply Reply Quote 0
            • arteck
              arteck Developer Most Active last edited by

              hast du````
              request

              1 Reply Last reply Reply Quote 0
              • Lenny.CB
                Lenny.CB Most Active last edited by

                @homecineplexx:

                schon mal probiert das selbe, aber ohne GET??

                ist ja immerhin ein POST request, daher nimm die method mal ganz weg `
                nein, geht auch nicht

                1 Reply Last reply Reply Quote 0
                • Lenny.CB
                  Lenny.CB Most Active last edited by

                  @arteck:

                  hast durequestin den javascript Einstellungen (Adapter) als Parameter angegeben `
                  ja, ist eingetragen

                  1 Reply Last reply Reply Quote 0
                  • D
                    dwm last edited by

                    Ist da irgendeine Authentisierung eingeschaltet?

                    401 heisst "Unauthorized" …

                    Im Prinzip bekommst ja eine Antwort, nur sagt das Ding halt Du darfst ned...

                    1 Reply Last reply Reply Quote 0
                    • Lenny.CB
                      Lenny.CB Most Active last edited by

                      @Jey Cee:

                      Verwende mal statt request das node Modul http (ist in nodejs enthalten und muss nicht im JS Adapter eingetragen werden).

                      Und dann nicht get sondern post.

                      Gesendet von meinem m8 mit Tapatalk ` stell ich mich grad ne bissel blöd an. Hast du ein Beispiel?

                      1 Reply Last reply Reply Quote 0
                      • Lenny.CB
                        Lenny.CB Most Active last edited by

                        @dwm:

                        Ist da irgendeine Authentisierung eingeschaltet?

                        401 heisst "Unauthorized" …

                        Im Prinzip bekommst ja eine Antwort, nur sagt das Ding halt Du darfst ned... ` Jupp, dass hattte ich schon gesehen. Und hier liegt ja das Problem.

                        Ich weis nicht wie ich mit "request = require('request')" user/password mitgeben kann, sodass das ganze letztlich funktioniert.

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

                          @Lenny.CB:

                          Ich weis nicht wie ich mit "request = require('request')" user/password mitgeben kann, sodass das ganze letztlich funktioniert. `
                          https://www.npmjs.com/package/request#http-authentication

                          1 Reply Last reply Reply Quote 0
                          • Lenny.CB
                            Lenny.CB Most Active last edited by

                            @paul53:

                            @Lenny.CB:

                            Ich weis nicht wie ich mit "request = require('request')" user/password mitgeben kann, sodass das ganze letztlich funktioniert. [https://www.npmjs.com/package/request#http-authentication](https://www.npmjs.com/package/request#http-authentication) der Link war gestern meine Abendlektüre, leider ohne Ergebnisse.

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

                              @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

                              1 Reply Last reply Reply Quote 0
                              • Lenny.CB
                                Lenny.CB Most Active last edited by

                                @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 Reply Quote 0
                                • H
                                  homecineplexx last edited by

                                  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 Reply Quote 0
                                  • Lenny.CB
                                    Lenny.CB Most Active last edited by

                                    @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 Reply Quote 0
                                    • H
                                      homecineplexx last edited by

                                      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 Reply Quote 0
                                      • Lenny.CB
                                        Lenny.CB Most Active last edited by

                                        @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 Reply Quote 0
                                        • H
                                          homecineplexx last edited by

                                          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 Reply Quote 0
                                          • Lenny.CB
                                            Lenny.CB Most Active last edited by

                                            @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 Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            956
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            29
                                            7473
                                            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