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

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] http request

Scheduled Pinned Locked Moved Skripten / Logik
29 Posts 7 Posters 8.2k 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
    #1

    Hallo zusammen,

    mal ne Frage zum http-request. Ich lese und probiere nun schon Stunden rum, bekomme es aber nicht auf die Kette.

    wenn ich folgendes im Browser eingebe, dann bekomme ich dieses Ergebnis und ein Relais an einer Controler-Card wird geschalten.

    http:http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0Ergebnis:````
    0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1

    
    Nun wollte ich das in javascript mittels request machen, da passiert nichts. Es wird wohl hauptsächlich dran liegen, dass ich nicht ganz raffe was da passiert.
    
    script:````
    var url = 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0';
    var request = require('request');
      request(
        { method: 'GET',
          uri: url,
        }
      , function (error, response, body) {
            log('error: ' + error);
            log('Status: '+ response.statusCode);
            log('response: '+ JSON.stringify(response));
        }
      );
    

    Ergebnis von response:````
    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":{}}}

    
    wenn ich ****"www-authenticate":"Poolauth realm=\"NeedPassword\"****, denke ich hier muss noch ****auth**** behandelt werden. Und ab hier bin ich total raus… :shock:
    
    Vielleicht kann sich jemand erbarmen mir einen Tip zu geben.
    1 Reply Last reply
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      wrote on last edited by
      #2

      so

      var url;
      var request;
      
      request = require('request'),
      url = "http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0"; 
      
      request({url : url}, function (error, response, body) {
              // Do more stuff with 'body' here
      });
      
      

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

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

        hallo artec,

        bis auf "method: 'GET'," ist das doch der Selbe Code, oder?

        Jedenfalls ist das Ergebnis im Browser nicht relevant, nur das tatsächliche Schalten des Relais.

        Ich bekomme jedoch immer Status 401. Daher komme ich ach nicht weiter.

        Wie gesagt, der http-Befehl im Browser geht, wenn ich das in javascript verwurste geht es nicht mehr.

        1 Reply Last reply
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          wrote on last edited by
          #4

          und wen du es auf der console ausfuehrst als alternative ?

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

            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
            0
            • Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              wrote on last edited by
              #6

              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

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

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

                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
                0
                • arteckA Offline
                  arteckA Offline
                  arteck
                  Developer Most Active
                  wrote on last edited by
                  #8

                  hast du````
                  request

                  zigbee hab ich, zwave auch, nuc's genauso und HA auch

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

                    @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
                    0
                    • Lenny.CBL Online
                      Lenny.CBL Online
                      Lenny.CB
                      Most Active
                      wrote on last edited by
                      #10

                      @arteck:

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

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        dwm
                        wrote on last edited by
                        #11

                        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
                        0
                        • Lenny.CBL Online
                          Lenny.CBL Online
                          Lenny.CB
                          Most Active
                          wrote on last edited by
                          #12

                          @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
                          0
                          • Lenny.CBL Online
                            Lenny.CBL Online
                            Lenny.CB
                            Most Active
                            wrote on last edited by
                            #13

                            @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
                            0
                            • paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by
                              #14

                              @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

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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

                                @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
                                0
                                • H Offline
                                  H Offline
                                  homecineplexx
                                  wrote on last edited by
                                  #16

                                  @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
                                  0
                                  • 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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          709

                                          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