Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Eine Empfehlung für mich ... IP Kamera?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Eine Empfehlung für mich ... IP Kamera?

    This topic has been deleted. Only users with topic management privileges can see it.
    • michl75
      michl75 @michl75 last edited by

      Habe nun das hier gefunden:

      Link

      soweit verständlich, aber vielleicht könnte mir einer das mit dem tokten erklären?

      Vg M

      BananaJoe 1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @michl75 last edited by BananaJoe

        @michl75 Öhm, ich kann zwar nicht erkennen was für ein Hersteller das ist, aber aus Erfahrung mit anderen API Abfragen:

        Du musst dich zunächst mit Benutzernamen und Passwort an der API Anmelden.
        Also Antwort erhältst du ein Token das du dann für alle anderen Abfragen nutzt.

        Statt jedes mal Benutzername und Passwort zu übertragen. Das Token steht dann auf der anderen Seite für eine Zeit X auf der Liste und erhält die Daten ohne extra Prüfung.

        Sauber wäre sich dann am Ende auch wieder abzumelden damit da nicht duzende von Tokens in der Liste unnötig stehen (Dur wirst jedes mal ein anderes bekommen, auch wenn du vorher schon eines hattest)

        Wenn es nur ein Bild sein soll steht da unter 2.8 was von Short Connection wo man eben dieses direkt erhält.

        michl75 1 Reply Last reply Reply Quote 0
        • michl75
          michl75 @BananaJoe last edited by

          @bananajoe

          ah ok... jetzt kann ich das etwas nachvollziehen.
          Bisher dachte ich das token ist eine decodierung von verschiedenen informationen.

          hm... da des nun doch anders ist als gedacht muss ich mich wohl geschlagen gehen 🙂 da ich gleich null ideen habe wie ich sowas dann als script /Blockly machen kann.

          ich hatte gehofft, dass bei der Reolink auch per (so ähnlichen vom -Befehl- her) ```
          wget -q -O - 'http://192.168.xxx.xxx/api.cgi?cmd=Login&SetFtp&enablae=&user=admin&password=xxxx'

          BananaJoe 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @michl75 last edited by

            @michl75 dein PDF ist von 2016 ...

            michl75 1 Reply Last reply Reply Quote 0
            • michl75
              michl75 @BananaJoe last edited by

              @bananajoe said in Eine Empfehlung für mich ... IP Kamera?:

              dein PDF ist von 2016 ...

              sorry hab auch eines von 2022. hab den falschen link erwischt.
              Reolink Kamera API 2022.pdf

              BananaJoe 1 Reply Last reply Reply Quote 0
              • BananaJoe
                BananaJoe Most Active @michl75 last edited by BananaJoe

                @michl75 3.6.2 SetRec lässt einen die Aufnameparameter manipulieren
                eff2a7c4-61e1-4418-b5af-98ea84083e06-image.png
                könnte der Punkt für das ein/ausschalten sein.

                Also erst mit GetRec auslesen und mit "enable":0, zurück schreiben sollte aus sein

                Nachtrag: Ok, das ist für zeitgesteuerte Aufnahmen, bestimmt gibt es auch etwas für Bewegungsgesteuerte. Bzw. vielleicht stimmt es doch weil so der erlaubte Aufnamezeitraum definiert wird.
                Eventuell kann man das über SetAiCfg ausschalten indem man nichts erkennen lässt

                michl75 1 Reply Last reply Reply Quote 0
                • michl75
                  michl75 @BananaJoe last edited by michl75

                  @bananajoe Guten Morgen, ich werde es mir heute Nachmittag oder morgen anschauen, hab heute eine Veranstaltung bis spät Nachmittag, dann erst mal nach hause...

                  Leider hat das länger gedauert als gedacht heute...

                  Hatte heute mal über Handy bisschen geschaut als weniger los war, was man über dieses Thema so findet ... und das gefunden:

                  die Seite dazu

                  Hier mit virtuellem Ausgang
                  
                  Adresse: http://192.168.1.xx (Deine Kamera-IP)
                  
                  ab jetzt Virtuelle Ausgänge Befehl
                  
                  
                  Befehl bei EIN:
                  /api.cgi?cmd=Login
                  HTTP-Post-Befehl:
                  [\r\n {\r\n "cmd": "Login",\r\n "action": 0,\r\n "param": {\r\n "User": {\r\n "userName": "admin",\r\n "password": "DEINPW"\r\n }\r\n }\r\n }\r\n]
                  
                  Rückmeldung:
                  
                  "Token" : { "leaseTime" : 3600, "name" : "031465962723" }
                  Das hinter "name" ist der token.
                  
                  ---
                  
                  
                  Recording:
                  Virtuelle Ausgänge
                  Befehl bei EIN:
                  /api.cgi?cmd=SetRec&token=<v> (<v> ist der token)
                  
                  Recording einschalten:
                  HTTP-Post-Befehl:
                  [{"cmd":"SetRec","action":0,"param":{"Rec":{"sch edu le":{"enable":1,"table":"11111111111111111111111 11 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111111"}}}}]
                  
                  Recording ausschalten:
                  HTTP-Post-Befehl:
                  [{"cmd":"SetRec","action":0,"param":{"Rec":{"sch edu le":{"enable":0,"table":"11111111111111111111111 11 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111111"}}}}]
                  
                  
                  
                  FTP:
                  Virtuelle Ausgänge
                  Befehl bei EIN:
                  /cgi-bin/api.cgi?cmd=SetFtp&token=<v>
                  
                  FTP einschalten:
                  HTTP-Post-Befehl:
                  [{"cmd":"SetFtp","action":0,"param":{"Ftp":{"sch edu le":{"enable":1,"table":"11111111111111111111111 11 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111111"}}}}]
                  
                  FTP ausschalten:
                  HTTP-Post-Befehl:
                  [{"cmd":"SetFtp","action":0,"param":{"Ftp":{"sch edu le":{"enable":0,"table":"11111111111111111111111 11 11111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111111"}}}}]
                  

                  jetzt muss ich nur noch rausfinden wie ich das in blockly / script zusammenbastelt 🙂

                  EDIT:

                  So habe ich nun mal angesetzt...

                  on({id: "0_userdata.0.Sicherheit-Kameras.Teich-1-Switch"/*Teich-1-Switch*/, change: "ne"}, async function (obj) {
                    let value = obj.state.val;
                    let oldValue = obj.oldState.val;
                    if ((obj.state ? obj.state.val : "") == true) {
                      // einschalten
                      var request = require('request'),
                          userName = "admin",
                          password = "passwort",
                          url = 'http://192.168.xxx.xxx/api.cgi?cmd=Login',
                          auth = "Basic " + new Buffer(userName + ":" + password).toString();
                      
                      request({
                              url : url,
                              headers : {'Authorization' : auth}
                          },
                          function (error, response, body) {
                                  console.log('error: ' + error);
                                  console.log('response: ' + JSON.stringify(response));
                                  console.log('body: ' + body);
                          }
                      );
                  
                    } else {
                      // ausschalten
                    }
                  });
                  

                  immerhin schon mal eine Rückmeldung:

                  09:26:36.354	info	javascript.0 (656) script.js.Sicherheit_Haus.Kamera-Reolink-Schalten: body: [ { "cmd" : "Login", "code" : 1, "error" : { "detail" : "login failed", "rspCode" : -7 } } ]
                  

                  werde dann Nachmittag weiter probieren...

                  michl75 1 Reply Last reply Reply Quote 0
                  • michl75
                    michl75 @michl75 last edited by

                    Hallo 🙂

                    ich muss doch nochmal euch um Hilfe bitten.

                    Habe nun versucht über ein bash-script Linux das mal hinzubekommen, da ich hier iwo in einem Beitrag gelesen habe, so kanns einfacher gehen.
                    Aber erst mal für den Test denke ich ok.

                    Problem ist, ich bekomme es nicht gebacken mit den Parametern. Ich verstehe hier einfach nicht, was daran falsch sein (soll) kann...

                    Könntet Ihr mir da helfen?

                    curl -X POST -H "Content-Type:application/json" -d "[{\"cmd\":\"SetFtpV20\",\"schedule\":{\"enable\":0}}]" "http://192.168.xxx.xxx/cgi-bin/api.cgi?user=admin&password=geheim"
                    

                    Fehlermeldung:

                    userxxx@IOB04:~$ sh test.sh
                    [
                       {
                          "cmd" : "SetFtpV20",
                          "code" : 1,
                          "error" : {
                             "detail" : "param error",
                             "rspCode" : -4
                          }
                       }
                    ]
                    

                    Vielleicht hat einer von euch eine Idee? 🙂

                    Vielen Dank vorab, Gruß M

                    michl75 1 Reply Last reply Reply Quote 0
                    • michl75
                      michl75 @michl75 last edited by michl75

                      Habe es endlich hinbekommen:

                      ziob04.JPG

                      Ftp ausschalten:

                      curl -s POST "http://192.168.xxx.xxx/cgi-bin/api.cgi?user=admin&password=xxxxxx" -d '[{"cmd":"SetFtpV20","param":{"Ftp":{"enable":0}}}]'
                      

                      Ftp einschalten:

                      curl -s POST "http://192.168.xxx.xxx/cgi-bin/api.cgi?user=admin&password=xxxxxx" -d '[{"cmd":"SetFtpV20","param":{"Ftp":{"enable":1}}}]'
                      
                      1 Reply Last reply Reply Quote 3
                      • C
                        cuci last edited by

                        Ich habe dasselbe mit Verwendung des Tokens in nodered realisiert. Falls jemand Interesse hat hier ein Export des Flows:

                        Screenshot 2023-09-17 132737.png

                        [{"id":"fb1a288cc293da53","type":"tab","label":"Turn on-off camera","disabled":false,"info":"","env":[]},{"id":"0e3e31965e6ad374","type":"http request","z":"fb1a288cc293da53","name":"","method":"POST","ret":"obj","paytoqs":"ignore","url":"https://192.168.xxx.xxx/api.cgi?cmd=Login","tls":"602f4de630dce848","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":410,"y":220,"wires":[["89c6b097ff08b99f","a617e58931d42052"]]},{"id":"26f9053d8b0c9107","type":"change","z":"fb1a288cc293da53","name":"Setze username und password","rules":[{"t":"set","p":"payload","pt":"msg","to":"[{\"cmd\":\"Login\",\"param\":{\"User\":{\"Version\":\"0\",\"userName\":\"admin\",\"password\":\"xxxxxx\"}}}]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":140,"wires":[["0e3e31965e6ad374","e39f51e6d98fd406"]]},{"id":"89c6b097ff08b99f","type":"debug","z":"fb1a288cc293da53","name":"debug 22","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":220,"wires":[]},{"id":"91418610952dc53e","type":"inject","z":"fb1a288cc293da53","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":"2","topic":"","payload":"","payloadType":"date","x":180,"y":140,"wires":[["26f9053d8b0c9107"]]},{"id":"e39f51e6d98fd406","type":"debug","z":"fb1a288cc293da53","name":"debug 23","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":900,"y":140,"wires":[]},{"id":"cae7f2ad99648a54","type":"comment","z":"fb1a288cc293da53","name":"Anmeldung","info":"","x":150,"y":80,"wires":[]},{"id":"a617e58931d42052","type":"switch","z":"fb1a288cc293da53","name":"prüfen ob token angekommen","property":"payload.0.value.Token.name","propertyType":"msg","rules":[{"t":"nnull"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":450,"y":320,"wires":[["1da7db9e8b60b072","b3c40aeb809060dc"],[]]},{"id":"3d7f5a2e28d74a4c","type":"http request","z":"fb1a288cc293da53","name":"","method":"POST","ret":"obj","paytoqs":"ignore","url":"","tls":"602f4de630dce848","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":1070,"y":420,"wires":[["752e357d7e2d4f94"]]},{"id":"752e357d7e2d4f94","type":"debug","z":"fb1a288cc293da53","name":"debug 24","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1340,"y":420,"wires":[]},{"id":"1da7db9e8b60b072","type":"debug","z":"fb1a288cc293da53","name":"debug 25","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":860,"y":320,"wires":[]},{"id":"b3c40aeb809060dc","type":"change","z":"fb1a288cc293da53","name":"Baue URL","rules":[{"t":"set","p":"url","pt":"msg","to":"https://192.168.xxx.xxx/api.cgi?cmd=SetFtpV20&token=logintoken","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":250,"y":420,"wires":[["219840d6c9438bb0"]]},{"id":"219840d6c9438bb0","type":"change","z":"fb1a288cc293da53","name":"füge Token hinzu","rules":[{"t":"change","p":"url","pt":"msg","from":"logintoken","fromt":"str","to":"payload.0.value.Token.name","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":420,"wires":[["7c0ee20f47187d33"]]},{"id":"7c0ee20f47187d33","type":"change","z":"fb1a288cc293da53","name":"Setze JSON payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"[{\"cmd\":\"SetFtpV20\",\"param\":{\"Ftp\":{\"enable\":1}}}]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":420,"wires":[["3d7f5a2e28d74a4c"]]},{"id":"602f4de630dce848","type":"tls-config","name":"I don't care","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","servername":"","verifyservercert":false,"alpnprotocol":""}]
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        702
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        11
                        49
                        2815
                        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