NEWS
Eine Empfehlung für mich ... IP Kamera?
-
@djmarc75 said in Eine Empfehlung für mich ... IP Kamera?:
Dann steuer das doch per Skript
das habe ich bereits mit meinen anderen Kameras...
Dachte halt, dass man sowas über den Adapter steuern kann... wenn es schon so einen Adapter dafür gibt. Also ... nur so als Gedankengang....
-
Habe nun das hier gefunden:
soweit verständlich, aber vielleicht könnte mir einer das mit dem tokten erklären?
Vg M
-
@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.
-
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' -
@michl75 dein PDF ist von 2016 ...
-
@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 -
@michl75 3.6.2 SetRec lässt einen die Aufnameparameter manipulieren
könnte der Punkt für das ein/ausschalten sein.Also erst mit GetRec auslesen und mit
"enable":0,
zurück schreiben sollte aus seinNachtrag: 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 überSetAiCfg
ausschalten indem man nichts erkennen lässt -
@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:
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...
-
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
-
Habe es endlich hinbekommen:
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}}}]'
-
Ich habe dasselbe mit Verwendung des Tokens in nodered realisiert. Falls jemand Interesse hat hier ein Export des Flows:
[{"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":""}]