Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] http request

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[gelöst] http request

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
29 Beiträge 7 Kommentatoren 8.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Lenny.CBL Offline
    Lenny.CBL Offline
    Lenny.CB
    Most Active
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #4

      und wen du es auf der console ausfuehrst als alternative ?

      1 Antwort Letzte Antwort
      0
      • Lenny.CBL Offline
        Lenny.CBL Offline
        Lenny.CB
        Most Active
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • Jey CeeJ Online
          Jey CeeJ Online
          Jey Cee
          Developer
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • H Offline
            H Offline
            homecineplexx
            schrieb am zuletzt editiert von
            #7

            schon mal probiert das selbe, aber ohne GET??

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

            1 Antwort Letzte Antwort
            0
            • arteckA Offline
              arteckA Offline
              arteck
              Developer Most Active
              schrieb am zuletzt editiert von
              #8

              hast du````
              request

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

              1 Antwort Letzte Antwort
              0
              • Lenny.CBL Offline
                Lenny.CBL Offline
                Lenny.CB
                Most Active
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • Lenny.CBL Offline
                  Lenny.CBL Offline
                  Lenny.CB
                  Most Active
                  schrieb am zuletzt editiert von
                  #10

                  @arteck:

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

                  1 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    dwm
                    schrieb am zuletzt editiert von
                    #11

                    Ist da irgendeine Authentisierung eingeschaltet?

                    401 heisst "Unauthorized" …

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

                    1 Antwort Letzte Antwort
                    0
                    • Lenny.CBL Offline
                      Lenny.CBL Offline
                      Lenny.CB
                      Most Active
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • Lenny.CBL Offline
                        Lenny.CBL Offline
                        Lenny.CB
                        Most Active
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          0
                          • Lenny.CBL Offline
                            Lenny.CBL Offline
                            Lenny.CB
                            Most Active
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • H Offline
                              H Offline
                              homecineplexx
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • Lenny.CBL Offline
                                Lenny.CBL Offline
                                Lenny.CB
                                Most Active
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                0
                                • H Offline
                                  H Offline
                                  homecineplexx
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • Lenny.CBL Offline
                                    Lenny.CBL Offline
                                    Lenny.CB
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    • H Offline
                                      H Offline
                                      homecineplexx
                                      schrieb am zuletzt editiert von
                                      #20

                                      den javaScript adpater hast du mal auf debug gestellt?

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

                                      1 Antwort Letzte Antwort
                                      0
                                      • Lenny.CBL Offline
                                        Lenny.CBL Offline
                                        Lenny.CB
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        0
                                        • H Offline
                                          H Offline
                                          homecineplexx
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          410

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe