Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. http request reolink json => login failed

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    11
    1
    315

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.9k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    784

http request reolink json => login failed

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
javascriptrequestjsonhttp request
8 Beiträge 3 Kommentatoren 2.1k Aufrufe 4 Beobachtet
  • Ä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.
  • P Offline
    P Offline
    PeterPan
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,
    ich versuche meine Kamera direkt anzusteuern und komme nicht mehr weiter.
    Was habe ich gemacht (analog zu anderen Forenbeiträgen):

    Der Befehl auf meinem iobroker-Pi

     curl -d '[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxx"}}}]' 192.168.178.xx/api.cgi?cmd=Login
    

    ergibt genau das, was ich als Antwort (den Token) haben möchte:

    [
       {
          "cmd" : "Login",
          "code" : 0,
          "value" : {
             "Token" : {
                "leaseTime" : 3600,
                "name" : "981a2aab3efef8f"
             }
          }
       }
    ]
    
    

    Eine Umsetzung in javascript hatte ich mir so im Forum ersucht:

    var url1="http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login";
    var json=[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxx"}}}];
    
    var request = require('request');
        var options = {
        url: url1,
        method: 'POST',
        form:json
        };
    
    request(options,function (error, response, body){
        console.log(response); 
        console.log('error ' + error);
        console.log('body ' + body);
    });
    

    Als Antwort erhalte ich einen leeren body - als Log erhalte ich:


    22:38:10.985 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.ptz-test: {'statusCode':200,'body':'null\n','headers':{'date':'Sun, 04 Apr 2021 20:38:11 GMT','content-type':'text/html','transfer-encoding':'chunked','connection':'close','x-frame-options':'SAMEORIGIN','x-xss-protection':'1; mode=block','x-content-type-options':'nosniff'},'request':{'uri':{'protocol':'http:','slashes':true,'auth':null,'host':'192.168.178.xx','port':80,'hostname':'192.168.178.xx','hash':null,'search':'?cmd=Login','query':'cmd=Login','pathname':'/cgi-bin/api.cgi','path':'/cgi-bin/api.cgi?cmd=Login','href':'http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login'},'method':'POST','headers':{'content-type':'application/x-www-form-urlencoded','content-length':124}}}
    22:38:10.987 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.ptz-test: error null
    22:38:10.987 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.ptz-test: body null

    Ändere ich den Code wie folgt, erhalte ich als body => json parse err.

        //form:json
        formData: "{'User':{'userName':'admin','password':'xxx'}"
    


    22:40:46.525 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ-Test-2: {'statusCode':200,'body':'json parse err\n','headers':{'date':'Sun, 04 Apr 2021 20:40:46 GMT','content-type':'text/html','transfer-encoding':'chunked','connection':'close','x-frame-options':'SAMEORIGIN','x-xss-protection':'1; mode=block','x-content-type-options':'nosniff'},'request':{'uri':{'protocol':'http:','slashes':true,'auth':null,'host':'192.168.178.xx','port':80,'hostname':'192.168.178.xx','hash':null,'search':'?cmd=Login','query':'cmd=Login','pathname':'/cgi-bin/api.cgi','path':'/cgi-bin/api.cgi?cmd=Login','href':'http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login'},'method':'POST','headers':{'content-type':'multipart/form-data; boundary=--------------------------867435826479255840136804','content-length':5248}}}
    22:40:46.526 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ-Test-2: error null
    22:40:46.527 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ-Test-2: body json parse err

    Ändere ich den Code wie folgt, erhalte ich als body => [ { "cmd" : "Login", "code" : 1, "error" : { "detail" : "login failed", "rspCode" : -7 } } ], was ja schon einmal gut aussieht, aber auch falsch ist, denn wenn ich den username ändere, würde ich "invalid user" erwarten, wie ich es per http aus einem Browser auch bekomme.

        //form:json
        //formData: "{'User':{'userName':'admin','password':'xxx'}"
            headers : {'Authorization':'"User":{"userName":"admin","password":"xxx"}'}
    
    


    22:44:55.159 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ: {'statusCode':200,'body':'[\n {\n 'cmd' : 'Login',\n 'code' : 1,\n 'error' : {\n 'detail' : 'login failed',\n 'rspCode' : -7\n }\n }\n]\n','headers':{'date':'Sun, 04 Apr 2021 20:44:55 GMT','content-type':'text/html','transfer-encoding':'chunked','connection':'close','x-frame-options':'SAMEORIGIN','x-xss-protection':'1; mode=block','x-content-type-options':'nosniff'},'request':{'uri':{'protocol':'http:','slashes':true,'auth':null,'host':'192.168.178.xx','port':80,'hostname':'192.168.178.xxx','hash':null,'search':'?cmd=Login','query':'cmd=Login','pathname':'/cgi-bin/api.cgi','path':'/cgi-bin/api.cgi?cmd=Login','href':'http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login'},'method':'POST','headers':{'Authorization':'\'User\':{\'userName\':\'admin\',\'password\':\'xxx\'}','content-length':0}}}
    22:44:55.160 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ: error null
    22:44:55.160 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ: body [ { "cmd" : "Login", "code" : 1, "error" : { "detail" : "login failed", "rspCode" : -7 } } ]

    Jetzt bin ich ziemlich ratlos, was ich noch machen kann oder an welcher Stelle ich mich für euch "alte Hasen" ;) ungeschickt anstelle ...

    M 1 Antwort Letzte Antwort
    0
    • P PeterPan

      Hallo zusammen,
      ich versuche meine Kamera direkt anzusteuern und komme nicht mehr weiter.
      Was habe ich gemacht (analog zu anderen Forenbeiträgen):

      Der Befehl auf meinem iobroker-Pi

       curl -d '[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxx"}}}]' 192.168.178.xx/api.cgi?cmd=Login
      

      ergibt genau das, was ich als Antwort (den Token) haben möchte:

      [
         {
            "cmd" : "Login",
            "code" : 0,
            "value" : {
               "Token" : {
                  "leaseTime" : 3600,
                  "name" : "981a2aab3efef8f"
               }
            }
         }
      ]
      
      

      Eine Umsetzung in javascript hatte ich mir so im Forum ersucht:

      var url1="http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login";
      var json=[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxx"}}}];
      
      var request = require('request');
          var options = {
          url: url1,
          method: 'POST',
          form:json
          };
      
      request(options,function (error, response, body){
          console.log(response); 
          console.log('error ' + error);
          console.log('body ' + body);
      });
      

      Als Antwort erhalte ich einen leeren body - als Log erhalte ich:


      22:38:10.985 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.ptz-test: {'statusCode':200,'body':'null\n','headers':{'date':'Sun, 04 Apr 2021 20:38:11 GMT','content-type':'text/html','transfer-encoding':'chunked','connection':'close','x-frame-options':'SAMEORIGIN','x-xss-protection':'1; mode=block','x-content-type-options':'nosniff'},'request':{'uri':{'protocol':'http:','slashes':true,'auth':null,'host':'192.168.178.xx','port':80,'hostname':'192.168.178.xx','hash':null,'search':'?cmd=Login','query':'cmd=Login','pathname':'/cgi-bin/api.cgi','path':'/cgi-bin/api.cgi?cmd=Login','href':'http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login'},'method':'POST','headers':{'content-type':'application/x-www-form-urlencoded','content-length':124}}}
      22:38:10.987 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.ptz-test: error null
      22:38:10.987 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.ptz-test: body null

      Ändere ich den Code wie folgt, erhalte ich als body => json parse err.

          //form:json
          formData: "{'User':{'userName':'admin','password':'xxx'}"
      


      22:40:46.525 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ-Test-2: {'statusCode':200,'body':'json parse err\n','headers':{'date':'Sun, 04 Apr 2021 20:40:46 GMT','content-type':'text/html','transfer-encoding':'chunked','connection':'close','x-frame-options':'SAMEORIGIN','x-xss-protection':'1; mode=block','x-content-type-options':'nosniff'},'request':{'uri':{'protocol':'http:','slashes':true,'auth':null,'host':'192.168.178.xx','port':80,'hostname':'192.168.178.xx','hash':null,'search':'?cmd=Login','query':'cmd=Login','pathname':'/cgi-bin/api.cgi','path':'/cgi-bin/api.cgi?cmd=Login','href':'http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login'},'method':'POST','headers':{'content-type':'multipart/form-data; boundary=--------------------------867435826479255840136804','content-length':5248}}}
      22:40:46.526 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ-Test-2: error null
      22:40:46.527 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ-Test-2: body json parse err

      Ändere ich den Code wie folgt, erhalte ich als body => [ { "cmd" : "Login", "code" : 1, "error" : { "detail" : "login failed", "rspCode" : -7 } } ], was ja schon einmal gut aussieht, aber auch falsch ist, denn wenn ich den username ändere, würde ich "invalid user" erwarten, wie ich es per http aus einem Browser auch bekomme.

          //form:json
          //formData: "{'User':{'userName':'admin','password':'xxx'}"
              headers : {'Authorization':'"User":{"userName":"admin","password":"xxx"}'}
      
      


      22:44:55.159 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ: {'statusCode':200,'body':'[\n {\n 'cmd' : 'Login',\n 'code' : 1,\n 'error' : {\n 'detail' : 'login failed',\n 'rspCode' : -7\n }\n }\n]\n','headers':{'date':'Sun, 04 Apr 2021 20:44:55 GMT','content-type':'text/html','transfer-encoding':'chunked','connection':'close','x-frame-options':'SAMEORIGIN','x-xss-protection':'1; mode=block','x-content-type-options':'nosniff'},'request':{'uri':{'protocol':'http:','slashes':true,'auth':null,'host':'192.168.178.xx','port':80,'hostname':'192.168.178.xxx','hash':null,'search':'?cmd=Login','query':'cmd=Login','pathname':'/cgi-bin/api.cgi','path':'/cgi-bin/api.cgi?cmd=Login','href':'http://192.168.178.xx/cgi-bin/api.cgi?cmd=Login'},'method':'POST','headers':{'Authorization':'\'User\':{\'userName\':\'admin\',\'password\':\'xxx\'}','content-length':0}}}
      22:44:55.160 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ: error null
      22:44:55.160 info javascript.0 (27545) script.js.Homedingskacke.Steuerung.PTZ: body [ { "cmd" : "Login", "code" : 1, "error" : { "detail" : "login failed", "rspCode" : -7 } } ]

      Jetzt bin ich ziemlich ratlos, was ich noch machen kann oder an welcher Stelle ich mich für euch "alte Hasen" ;) ungeschickt anstelle ...

      M Online
      M Online
      MCU
      schrieb am zuletzt editiert von
      #2

      @peterpan Kompletten curl in ein Exec:
      d2a20a91-52d3-44dc-8fc9-ab8d136a8f72-image.png

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        PeterPan
        schrieb am zuletzt editiert von
        #3

        @mcu sagte in http request reolink json => login failed:

        @peterpan Kompletten curl in ein Exec:

        Danke für den Tipp, leider verwende ich kein Blocky, aber wenn ich es so umsetze, erhalte ich " json parse err", obwohl der curl-Befehl so in der Shell funktioniert.

        exec("curl -d '[{'cmd':'Login','action':0,'param':{'User':{'userName':'admin','password':'xxx'}}}]' 192.168.178.xx/api.cgi?cmd=Login"
        , function (error, stdout, stderr) {
            console.log(error);
            console.log(stdout);
            console.log(stderr);
        }); 
        

        Ändere ich "-d" jetzt in "-s -H", so erhalte ich als Antwort "[ { "cmd" : "Login", "code" : 1, "error" : { "detail" : "login failed", "rspCode" : -7 } } ]".

        Hast du ggf. noch eine Idee?

        nukleuzN 1 Antwort Letzte Antwort
        0
        • P PeterPan

          @mcu sagte in http request reolink json => login failed:

          @peterpan Kompletten curl in ein Exec:

          Danke für den Tipp, leider verwende ich kein Blocky, aber wenn ich es so umsetze, erhalte ich " json parse err", obwohl der curl-Befehl so in der Shell funktioniert.

          exec("curl -d '[{'cmd':'Login','action':0,'param':{'User':{'userName':'admin','password':'xxx'}}}]' 192.168.178.xx/api.cgi?cmd=Login"
          , function (error, stdout, stderr) {
              console.log(error);
              console.log(stdout);
              console.log(stderr);
          }); 
          

          Ändere ich "-d" jetzt in "-s -H", so erhalte ich als Antwort "[ { "cmd" : "Login", "code" : 1, "error" : { "detail" : "login failed", "rspCode" : -7 } } ]".

          Hast du ggf. noch eine Idee?

          nukleuzN Offline
          nukleuzN Offline
          nukleuz
          schrieb am zuletzt editiert von
          #4

          @peterpan

          Damit klappt es (exec):

          exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxxx"}}}]\' 192.168.0.147/api.cgi?cmd=Login', async function (error, result, stderr) {
              console.log(result);
              json = JSON.parse(result.toString());
              token = json[0].value.Token.name;
              console.log(token);
          });
          

          Mit request habe ich es auch nicht hinbekommen. Du mittlerweile?

          Kannst mich ja mal auf dem Laufenden halten, welche GETs und SETs du zum Laufen bekommen hast.

          Welche Cam nutzt du?

          Intel NUC -> ProxMox -> Debian -> ioBroker (Master)| RPI3B+ -> rtl_433 (Slave) | CCU2

          P 1 Antwort Letzte Antwort
          0
          • nukleuzN nukleuz

            @peterpan

            Damit klappt es (exec):

            exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxxx"}}}]\' 192.168.0.147/api.cgi?cmd=Login', async function (error, result, stderr) {
                console.log(result);
                json = JSON.parse(result.toString());
                token = json[0].value.Token.name;
                console.log(token);
            });
            

            Mit request habe ich es auch nicht hinbekommen. Du mittlerweile?

            Kannst mich ja mal auf dem Laufenden halten, welche GETs und SETs du zum Laufen bekommen hast.

            Welche Cam nutzt du?

            P Offline
            P Offline
            PeterPan
            schrieb am zuletzt editiert von
            #5

            @nukleuz
            Vielen Dank. Ich hatte mich an dem Blocky von MCU versucht, bin da aber nicht weitergekommen. Erst das Umschalten von meinen Blocky-Resten mit dem Befehl auf JS hatte mir den Hinweis gegeben, dass die "\" im Code gefehlt haben. Ich hatte das hier offen gelassen, damit vielleicht doch jemand das mit request hinbekommt.
            Was allerdings jetzt ist, dass ich mich mit exec zwar einloggen kann, den token bekomme, aber keine weiteren Befehle mit dem erhaltenen token absetzen kann. Hier kommt der Hinweis, dass ich mich erst einloggen soll. Bspw. sollte nach dem erfolgreichen Login ein http://IPC_IP/api.cgi?cmd=Format&token=TOKEN mit den POST data [{"cmd": "Format", "param": {"HddInfo": {"id": [0]}}}] und dem token aus dem Login möglich sein. Natürlich auch andere Befehle. Hast du das geschafft, nach dem Login noch irgendetwas an die Kamera zu senden oder hast du ggf. einen Hinweis wie ich das bewerkstellen könnte? Wenn ich das schaffen sollte, könnte ich schauen, welche GETs und SETs ich ans Laufen bekomme, aber im Moment scheitert es an den Basics 😕
            Ich benutze die E1 Zoom.

            nukleuzN 1 Antwort Letzte Antwort
            0
            • P PeterPan

              @nukleuz
              Vielen Dank. Ich hatte mich an dem Blocky von MCU versucht, bin da aber nicht weitergekommen. Erst das Umschalten von meinen Blocky-Resten mit dem Befehl auf JS hatte mir den Hinweis gegeben, dass die "\" im Code gefehlt haben. Ich hatte das hier offen gelassen, damit vielleicht doch jemand das mit request hinbekommt.
              Was allerdings jetzt ist, dass ich mich mit exec zwar einloggen kann, den token bekomme, aber keine weiteren Befehle mit dem erhaltenen token absetzen kann. Hier kommt der Hinweis, dass ich mich erst einloggen soll. Bspw. sollte nach dem erfolgreichen Login ein http://IPC_IP/api.cgi?cmd=Format&token=TOKEN mit den POST data [{"cmd": "Format", "param": {"HddInfo": {"id": [0]}}}] und dem token aus dem Login möglich sein. Natürlich auch andere Befehle. Hast du das geschafft, nach dem Login noch irgendetwas an die Kamera zu senden oder hast du ggf. einen Hinweis wie ich das bewerkstellen könnte? Wenn ich das schaffen sollte, könnte ich schauen, welche GETs und SETs ich ans Laufen bekomme, aber im Moment scheitert es an den Basics 😕
              Ich benutze die E1 Zoom.

              nukleuzN Offline
              nukleuzN Offline
              nukleuz
              schrieb am zuletzt editiert von
              #6

              @peterpan

              Kein Problem - bei mir sieht es ähnlich aus. Verzweifele bald 😵

              Hier mal was bei mir läuft (das ist auch für mich das Wichtigste gewesen - Motion und Snapshot):
              Snapshot-URL:

              http://192.168.0.147/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=password
              

              Motion Detection

              http://192.168.0.147/api.cgi?cmd=GetMdState&user=admin&password=password
              

              Mit der Motion aktualisiere ich alle 3 Sekunden einen Datenpunkt (0/1) und lasse mir mit dem Snapshot ein Bild mit Text über Telegram senden, sowie das Licht auf dem Hof einschalten bei Nacht.


              Was ich versucht habe, wie du, ist es mit dem erhaltenen Token weiterzuarbeiten - bislang ohne Erfolg.
              Ich habe leider nur die Basics des Programmierens und heute ist so ein Abend wo unbedingt Pause sein muss :)))

              Wenn du da etwas fitter bist, was ich hoffe, dann kann das ja vielleicht was werden 👼

              Hier die Versuche:

              curl -d '[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"password"}}},{"cmd":"SetIrLights","action":0,"param":{"IrLights":{"state":"Off"}}}]' 192.168.0.147/api.cgi?cmd=Login&cmd=SetIrLights
              
              Response:
                 {
                    "cmd" : "Login",
                    "code" : 0,
                    "value" : {
                       "Token" : {
                          "leaseTime" : 3600,
                          "name" : "44aecc633acd413"
                       }
                    }
                 },
                 {
                    "cmd" : "SetIrLights",
                    "code" : 1,
                    "error" : {
                       "detail" : "ability error",
                       "rspCode" : -26
                    }
                 }
              ]
              

              Hier noch ein paar sehr interessante Links:

              https://community.jeedom.com/t/reolink-liste-de-commandes-via-api/25565
              https://github.com/ReolinkCameraAPI/reolinkapipy
              https://forums.zoneminder.com/viewtopic.php?t=27185

              cgi-jsonv1.1 (2).pdf

              Bei Fragen oder Tests einfach her damit!

              PS: Ich nutze eine RLC-410W

              Intel NUC -> ProxMox -> Debian -> ioBroker (Master)| RPI3B+ -> rtl_433 (Slave) | CCU2

              P 1 Antwort Letzte Antwort
              0
              • nukleuzN nukleuz

                @peterpan

                Kein Problem - bei mir sieht es ähnlich aus. Verzweifele bald 😵

                Hier mal was bei mir läuft (das ist auch für mich das Wichtigste gewesen - Motion und Snapshot):
                Snapshot-URL:

                http://192.168.0.147/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=password
                

                Motion Detection

                http://192.168.0.147/api.cgi?cmd=GetMdState&user=admin&password=password
                

                Mit der Motion aktualisiere ich alle 3 Sekunden einen Datenpunkt (0/1) und lasse mir mit dem Snapshot ein Bild mit Text über Telegram senden, sowie das Licht auf dem Hof einschalten bei Nacht.


                Was ich versucht habe, wie du, ist es mit dem erhaltenen Token weiterzuarbeiten - bislang ohne Erfolg.
                Ich habe leider nur die Basics des Programmierens und heute ist so ein Abend wo unbedingt Pause sein muss :)))

                Wenn du da etwas fitter bist, was ich hoffe, dann kann das ja vielleicht was werden 👼

                Hier die Versuche:

                curl -d '[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"password"}}},{"cmd":"SetIrLights","action":0,"param":{"IrLights":{"state":"Off"}}}]' 192.168.0.147/api.cgi?cmd=Login&cmd=SetIrLights
                
                Response:
                   {
                      "cmd" : "Login",
                      "code" : 0,
                      "value" : {
                         "Token" : {
                            "leaseTime" : 3600,
                            "name" : "44aecc633acd413"
                         }
                      }
                   },
                   {
                      "cmd" : "SetIrLights",
                      "code" : 1,
                      "error" : {
                         "detail" : "ability error",
                         "rspCode" : -26
                      }
                   }
                ]
                

                Hier noch ein paar sehr interessante Links:

                https://community.jeedom.com/t/reolink-liste-de-commandes-via-api/25565
                https://github.com/ReolinkCameraAPI/reolinkapipy
                https://forums.zoneminder.com/viewtopic.php?t=27185

                cgi-jsonv1.1 (2).pdf

                Bei Fragen oder Tests einfach her damit!

                PS: Ich nutze eine RLC-410W

                P Offline
                P Offline
                PeterPan
                schrieb am zuletzt editiert von
                #7

                @nukleuz
                Ja, ich bin auch nahe am Zusammenbruch 😣 . Danke für die Links, schaue ich mir noch an. Ich habe jetzt deinen Code genommen, die "\" ergänzt und einen anderen Befehl genommen:

                C();
                function C(){
                    exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxx"}}},{"cmd":"GetDevInfo"}]\' 192.168.178.78/api.cgi?cmd=Login&cmd=GetDevInfo'
                    ,function (error, stdout, stderr) {
                    console.log(error);
                    console.log(stdout);
                    console.log(stderr);
                    }
                    );
                }
                

                Damit erhalte ich tatsächlich, ohne den token zu verwenden, die Eigenschaften der Kamera ausgelesen. Bitte versuche es bei dir einmal, bin gespannt.

                Ggf. könnte bei dir im Code noch der channel fehlen? ich habe als Beipsiel für POST DATA folgendes bei mir gefunden (Auto noch durch off ergänzen ;)):

                [{"cmd": "SetIrLights","action": 0,"param": {"IrLights": {"channel": 0,"state": "Auto"}}}]
                

                Ich habe zwei RLC-410W draußen, die ich über meine Synology Surveillance Station laufen lasse. Hier wird bei Bewegung (zusätzlicher Bewegungsmelder) ein Photo gemacht und via pushover versendet sowie ein kurzer Film aufgenommen und gespeichert.
                Meine E1 Zoom steht drinnen, hier erfolgt der Snapshot und die Weiterleitung via pushover wie bei dir, allerdings wenn die Haustüre geöffnet wird. Mein Ziel ist es, die Kamera in eine bestimmte Position verfahren zu können, wenn einer anwesend ist.

                P 1 Antwort Letzte Antwort
                0
                • P PeterPan

                  @nukleuz
                  Ja, ich bin auch nahe am Zusammenbruch 😣 . Danke für die Links, schaue ich mir noch an. Ich habe jetzt deinen Code genommen, die "\" ergänzt und einen anderen Befehl genommen:

                  C();
                  function C(){
                      exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxx"}}},{"cmd":"GetDevInfo"}]\' 192.168.178.78/api.cgi?cmd=Login&cmd=GetDevInfo'
                      ,function (error, stdout, stderr) {
                      console.log(error);
                      console.log(stdout);
                      console.log(stderr);
                      }
                      );
                  }
                  

                  Damit erhalte ich tatsächlich, ohne den token zu verwenden, die Eigenschaften der Kamera ausgelesen. Bitte versuche es bei dir einmal, bin gespannt.

                  Ggf. könnte bei dir im Code noch der channel fehlen? ich habe als Beipsiel für POST DATA folgendes bei mir gefunden (Auto noch durch off ergänzen ;)):

                  [{"cmd": "SetIrLights","action": 0,"param": {"IrLights": {"channel": 0,"state": "Auto"}}}]
                  

                  Ich habe zwei RLC-410W draußen, die ich über meine Synology Surveillance Station laufen lasse. Hier wird bei Bewegung (zusätzlicher Bewegungsmelder) ein Photo gemacht und via pushover versendet sowie ein kurzer Film aufgenommen und gespeichert.
                  Meine E1 Zoom steht drinnen, hier erfolgt der Snapshot und die Weiterleitung via pushover wie bei dir, allerdings wenn die Haustüre geöffnet wird. Mein Ziel ist es, die Kamera in eine bestimmte Position verfahren zu können, wenn einer anwesend ist.

                  P Offline
                  P Offline
                  PeterPan
                  schrieb am zuletzt editiert von
                  #8

                  @nukleuz
                  Noch ein kleines Update und ein kleines Licht am Tunnel ...
                  Ein paar weitere Befehle funktionieren auf diese Art und Weise. Deinen "ability error" bekomme ich bspw. bei den von mir gewünschten Ptz-Positionen meiner Kamera. Die gibt es nämlich nicht ... Daher scheint der Befehl bei mir nicht möglich zu sein, also rspCode -26. Der Befehl PtzCtrl funktioniert dagegen wieder.

                  1 Antwort Letzte Antwort
                  0

                  Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                  Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                  Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                  Registrieren Anmelden
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate
                  FAQ Cloud / IOT
                  HowTo: Node.js-Update
                  HowTo: Backup/Restore
                  Downloads
                  BLOG

                  326

                  Online

                  32.9k

                  Benutzer

                  83.0k

                  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