AdapterRequests
AdapterRequests copied to clipboard
Reolink Kamera Adapter
Hi.
Es wäre großartig, einen Adapter für die Kameras von Reolink zu haben. Reolink stellt auf der homepage nur minimale api-Fukntionalität zur Verfügung siehe hier
Es scheint jedoch verschiedene Projekte zu geben, welche in Abstimmung mit Reolink zumindest einen vollfunktionalen api-access per python umgesetzt haben. Leider fehlen mir die Programmierkenntnisse um die Kameras von Reolink über python einzubinden.
OpenHAB scheint hier schon etwas weiter mit der Implementierung zu sein, zumindest in deren Forum ist einiges mehr dazu zu finden als hier beim ioBroker.
Einfache Funktionen wie ScreenShot über URL Abfrage oder Video-Capturing per ffmpeg wurde hier ja schon mehrfach diskutiert und lässt sich auch manuell umsetzten, per adapter wäre natürlich viel einfacher und schöner. Sehr interessant wäre die auch Ansteuerung der Preset-Postionen und das generelle Steuern der Kameras welche über PTZ (Pan/Tilt/Zoom) steuerbar sind. Zudem Blockly Triggering duch Kamera Kamera Bewegungserkennung. Gerne auch das Setzen von Kameraeinstellungen wie Nachtsicht an/aus oder framerate. Je mehr Funktionalität, desto besser. Zumal es für ioBroker m.M.n. noch nicht so viel Kameraspezifisches gibt.
Und ich bin bestimmt nicht der einzige, dem die Reolink Kameras doch generell sehr brauchbar erscheinen!
Vielen Dank im voraus!
+1
Bei mir wäre es vor allem die Reolink E1 Zoom, welche eine Indoor PTZ IP-Cam ist. Zum anderen noch die RLC-410w, eine fest angebrachte Outdoor IP-Cam ohne PTZ.
Ich würde mich auch sehr über einen Adapter freuen. Ich betreibe 4x RLC-410-5MP.
Das wäre wirklich Klasse! RLC-410w
Ich schließe mich an, habe 4 Kameras RLC-410W
Hallo, ich würde mich auch dem Interesse Anschließen. Besonders Interesse habe ich an der Kombination von Bewegungserkennung & Blockly.
Habe 3x RLC-810A (8MP PoE), diese binde ich derzeit ganz einfach über URL ScreenShot in Vis ein.
Hallo,
ich hätte auch interesse. Vorallem die Benachrichtigung bei Objekterkennung wäre genial.
Gruß Peet
Hi,
schließe mich hier auch an.
Habe aktuell 3 reolink Kameras. Go RLC-410W RLC-811A
Demnächst kommt noch ne Reolink Duo PoE dazu.
Grüße Rowdy
ich häng mich auch dran - habe eine RLC-511WA. Objekterkennung, schalten des Spots und aktivierung/deaktivierung der Objekterkennung wäre für mich interessant.
Habe auch seit Gestern die RLC-511WA und teste gerade die Reolink API. Ausser einem erfolgreichen Login komme ich da aber nicht weiter, da es scheinbar keine Dokumentation der Kommandos gibt. Habe da mal ein Issue eröffnet. Schaut euch mal das an: https://github.com/fwestenberg/reolink/blob/main/reolink/camera_api.py Hört sich vielverspechend an, aber ich habe keinerlei Ahnung, wie man das gebraucht oder installiert. Habt ihr eine Idee? Mir käme es darauf an, Aufzeichnungen zu starten, manuell akkustischen und optischen (Flashlight) Alarm auszulösen. Zudem wäre es nicht schlecht, einen Stream in*.mp4 aufzuzeichnen.
+1
Gibt es hier irgendwelche Neuigkeiten? Wäre auch bereit ne Kamera "zu Testwecken" zeitweise zur Verfügung zu stellen.
Ich könnte ebenfalls eine Kamera für Testzwecke zur Verfügung stellen.
Hallo, könntet Ihr vielleicht ein paar Ideen sammeln was genau der Adapter können soll. Vielleicht lasse ich mich dazu breitschlagen an der Entwicklung mitzuwirken.
Liebe Grüße
Das hört sich gut an 👍
Bewegungserkennung und deren Einstellungen wie Sensitivität wären aus meiner Sicht sehr wichtig.
Also bei meiner RLC-511WA wäre es cool, Aufnahmen zu starten (Aufzeichnung auf SD-Card mit wählbarer Länge), Flashlight Ein/Aus, Sirene Ein/Aus. Ein direkter Stream für die VIS wäre genial. Das mache im Moment über einen Umweg mit MotionEye über Docker. Unter Python ist es kein Problem einen Stream zu programmieren, verstehe nicht, wieso das für ioBroker so ein Problem ist, RTSP Streams direkt in die VIS einzubauen. Glaube bei HomeAssistant gibt es ein Pendant, da könnte man mal rüberschauen. Habe allerdings keinen HA und bleibe lieber bei meinem geliebten ioBroker. Hoffe das was geht. Gruß
Hi, mir würde ein Flag "Objektbewegung" erkannt reichen, sowie den Spot/die Sirene ein-/ausschalten zu können.
Es gibt auch eine rudimentäre API-Dokumentation direkt von Reolink: https://support.reolink.com/hc/en-us/articles/900000625763-What-is-CGI-API
Laut dem Dokument kann man Videos in verschiedenen Varianten abgreifen. Man kann nach Aufnahmen suchen. Man kann Snapshots machen. Und man kann scheinbar den Status der Bewegungserkennung abfragen.
Ausprobieren kann ich das nicht, da ich (noch) kein System von Reolink habe.
Motion Status abfragen geht. aber eben pollen. Das müsste man für Echtzeit dann sekündlich, was ordentlich Traffic erzeugt.
Die Ausgabe bei meinen 2 unterschiedlichen Reolink Kameras sieht dann so aus:
[ { "cmd" : "GetMdState", "code" : 0, "value" : { "state" : 0 } } ]
Mir fehlt für meine RLC-423 die PTZ Steuerung. Das geht mWn leider per CGI nicht. Man muss dazu aktiv eine Session erzeugen.
Ich wäre auch froh wenn jemand einen Adapter erstellt und bin gerne bereit zu testen
habe auch großes interesse an einem Adapter
Hallo, Ich hätte auch großes Interesse. Besitze: 2x RLC520 2x RLC510 1x RLC811A Interessante Funktionen wären: Aufzeichnung starten Bewegung erkennen Sirene Auslösen
+1
Bei Bewegungserkennung ein Script ausführen wäre eine TOP sache!
Die Idee ist top. Habe auch mehrere Reolinks. Gerne auch mit Anschluss an Videoanalysierer (TensorFlow). +1
mir wäre die PTZ-Steuerung am wichtigsten
+1
+1
mir wäre ebenfalls PTZ am wichtigsten. Das wäre echt klasse wenn das gehen würde
+1
RLC-810A
Habe das eben noch gefunden: https://www.reddit.com/r/reolinkcam/comments/rd847e/reolink_camera_api_user_guide_dec10_2021/ Dort verlinkt ein Reolink Mitarbeiter ein Worddokument mit ggf. interessanten API Infos: Link to the Reolink Camera API User Guide: https://drive.google.com/drive/folders/19vQBJia0wKvzwscA-EpTDSFV5OfNYUL6
PTZ Pos ansteuern klappt mit CURL so:
curl -d '[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"PASS"}}},{"cmd":"PtzCtrl","action":0,"param":{"channel":0,"op":"ToPos","speed":32,"id":1}}]' IP:PORT/api.cgi?cmd=Login&cmd=PtzCtrl&token=1640dd95bcac9f2
PASS, IP, PORT müssen angepasst werden
So wie ich das verstehe, muss zuerst mittels eines Login ein Token geholt werden. Dieses ist bei meiner RLC-511WA nur einige Sekunden gültig. Folgender Code zum holen des User funktioniert bei mir in JavaScript:
var fetch = require('node-fetch');
exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"mypass"}}}]\' 192.168.178.xx/api.cgi?cmd=Login', async function (error, result, stderr) {
var json = JSON.parse(result.toString());
var url = 'http://192.168.178.xx/api.cgi?cmd=GetUser&token=' + json[0].value.Token.name;
fetch(url).then(function(response) {
return response.json();
}).then(function(data) {
log(data);
}).catch(function() {
log("Error");
});
});
Exec holt das Token. Fetch liefert ein Json-Object (data), welches die gefragten Daten enthält. Arbeite daran, etwas sinnvolleres herauszuholen.
So, die Recherche hat sich für mich gelohnt. Meine Anforderungen sind damit schon weitgehend erfüllt. Aber vielleicht findet sich ja doch noch jemand, der einen Adapter bastelt.
Flash LED
Ein:
exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxx"}}},{"cmd": "SetWhiteLed", "param": { "WhiteLed": { "bright": 20, "channel": 0, "mode" : 3, "state": 1 }}}]\' 192.168.178.xx/api.cgi?cmd=Login', async function (error, result, stderr) {
});
Aus:
exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxx"}}},{"cmd": "SetWhiteLed", "param": { "WhiteLed": { "bright": 20, "channel": 0, "mode" : 0, "state": 0 }}}]\' 192.168.178.xx/api.cgi?cmd=Login', async function (error, result, stderr) {
var json = JSON.parse(result.toString());
log(json[1].value.rspCode); //bei Erfolg = 200
});
Sirene
Ein:
exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxx"}}},{"cmd": "AudioAlarmPlay", "action": 0, "param": {"alarm_mode": "manul", "manual_switch": 1, "times": 1, "channel": 0 }}]\' 192.168.178.xx/api.cgi?cmd=Login', async function (error, result, stderr) {
});
Aus:
exec('curl -d \'[{"cmd":"Login","action":0,"param":{"User":{"userName":"admin","password":"xxxx"}}},{"cmd": "AudioAlarmPlay", "action": 0, "param": {"alarm_mode": "manul", "manual_switch": 0, "times": 1, "channel": 0 }}]\' 192.168.178.xx/api.cgi?cmd=Login', async function (error, result, stderr) {
var json = JSON.parse(result.toString());
log(json[1].value.rspCode); //bei Erfolg = 200
});
User und Pass, sowie die IP der Cam müssen angepasst werden. Der Port ist standard 80 und muss nicht angegeben werden - sofern er nicht in den Netzwerkeinstellungen der Cam verändert wurde.
Wer z.B. PTZ steuern will, muss das zweite JSON-Object (cmd: usw.) gegen ein entsprechendes Object tauschen. Dazu bitte in der API nachschauen, da steht alles drin(Link von @Diginix).
Dank an @Diginix, ohne deinen Link zur API Anleitung hätte ich nicht mehr nachgesehen!
Wäre nett wenn man hier neue Erkenntnisse teilen könnte!