Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reolink Kamera Adapter #596

Closed
smartsourcefreak opened this issue Mar 18, 2021 · 42 comments
Closed

Reolink Kamera Adapter #596

smartsourcefreak opened this issue Mar 18, 2021 · 42 comments
Labels

Comments

@smartsourcefreak
Copy link

smartsourcefreak commented Mar 18, 2021

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!

@smartsourcefreak
Copy link
Author

+1

@smartsourcefreak
Copy link
Author

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.

@loemic87
Copy link

Ich würde mich auch sehr über einen Adapter freuen. Ich betreibe 4x RLC-410-5MP.

@nukleuz80
Copy link

Das wäre wirklich Klasse! RLC-410w

@michihorni
Copy link

Ich schließe mich an, habe 4 Kameras RLC-410W

@Bi3m3r
Copy link

Bi3m3r commented Aug 19, 2021

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.

@Peet1985
Copy link

Hallo,

ich hätte auch interesse. Vorallem die Benachrichtigung bei Objekterkennung wäre genial.

Gruß
Peet

@rowdy238
Copy link

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

@Goersch
Copy link

Goersch commented Nov 24, 2021

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.

@ghost
Copy link

ghost commented Nov 27, 2021

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.

@janwilke
Copy link

janwilke commented Dec 9, 2021

+1

@rowdy238
Copy link

Gibt es hier irgendwelche Neuigkeiten?
Wäre auch bereit ne Kamera "zu Testwecken" zeitweise zur Verfügung zu stellen.

@Goersch
Copy link

Goersch commented Dec 26, 2021

Ich könnte ebenfalls eine Kamera für Testzwecke zur Verfügung stellen.

@inpex
Copy link

inpex commented Jan 5, 2022

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

@nukleuz80
Copy link

Das hört sich gut an 👍

Bewegungserkennung und deren Einstellungen wie Sensitivität wären aus meiner Sicht sehr wichtig.

@ghost
Copy link

ghost commented Jan 6, 2022

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ß

@Goersch
Copy link

Goersch commented Jan 6, 2022

Hi, mir würde ein Flag "Objektbewegung" erkannt reichen, sowie den Spot/die Sirene ein-/ausschalten zu können.

@HTPC-Schrauber
Copy link

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.

@Diginix
Copy link

Diginix commented Feb 1, 2022

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.

@Uwe1984
Copy link

Uwe1984 commented Feb 20, 2022

Ich wäre auch froh wenn jemand einen Adapter erstellt und bin gerne bereit zu testen

@jarvisde
Copy link

habe auch großes interesse an einem Adapter

@AtomicIX
Copy link

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

@Sectorchan
Copy link

+1

Bei Bewegungserkennung ein Script ausführen wäre eine TOP sache!

@Jade64
Copy link

Jade64 commented Apr 29, 2022

Die Idee ist top. Habe auch mehrere Reolinks.
Gerne auch mit Anschluss an Videoanalysierer (TensorFlow).
+1

@Farmer-cb
Copy link

mir wäre die PTZ-Steuerung am wichtigsten

+1

@blackfalcon87
Copy link

+1

mir wäre ebenfalls PTZ am wichtigsten. Das wäre echt klasse wenn das gehen würde

@Kiter1988
Copy link

+1

RLC-810A

@Diginix
Copy link

Diginix commented Jun 14, 2022

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

@ghost
Copy link

ghost commented Jun 18, 2022

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.

@ghost
Copy link

ghost commented Jun 18, 2022

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!

@Goersch
Copy link

Goersch commented Jun 19, 2022

Sehr cool - danke, das wird mir auch helfen 👍

@aendue
Copy link

aendue commented Jul 1, 2022

Hallo, ich habe mit der Entwicklung eines Adapters angefangen. Zur Zeit habe ich nur die Abfrage von Kamera Informationen (Allgemein und Netzwerk) und der Motion Detention eingebaut. (Habe leider nur eine RLC510A). Wäre super, wenn das jemand testen könnte und mir eine Rückmeldung geben könnte.

https://github.com/aendue/ioBroker.reolink

Danke und viele Grüße

@Peet1985
Copy link

Peet1985 commented Jul 3, 2022

Hallo, ich habe mit der Entwicklung eines Adapters angefangen. Zur Zeit habe ich nur die Abfrage von Kamera Informationen (Allgemein und Netzwerk) und der Motion Detention eingebaut. (Habe leider nur eine RLC510A). Wäre super, wenn das jemand testen könnte und mir eine Rückmeldung geben könnte.

https://github.com/aendue/ioBroker.reolink

Danke und viele Grüße

Hallo

Ich habe deinen Adapter mit einer RLC-520A getestet, habe auch als Voreinstellung die 510A drin gelassen, sind ja eigenlich die gleichen Kameras.

Der Adapter funktioniert super. Schade nur, dass man den Motion Detection im Interval abfragen muss und das er nicht gepusht wird aber das liegt an Reolink selbst. Ich habe jetzt den Interval auf 5s, für meine zwecke reicht das völlig aus.

Vielen Dank für deine Arbeit

Gruß
Peet

@aendue
Copy link

aendue commented Jul 4, 2022

Hallo, ich habe mit der Entwicklung eines Adapters angefangen. Zur Zeit habe ich nur die Abfrage von Kamera Informationen (Allgemein und Netzwerk) und der Motion Detention eingebaut. (Habe leider nur eine RLC510A). Wäre super, wenn das jemand testen könnte und mir eine Rückmeldung geben könnte.
https://github.com/aendue/ioBroker.reolink
Danke und viele Grüße

Hallo

Ich habe deinen Adapter mit einer RLC-520A getestet, habe auch als Voreinstellung die 510A drin gelassen, sind ja eigenlich die gleichen Kameras.

Der Adapter funktioniert super. Schade nur, dass man den Motion Detection im Interval abfragen muss und das er nicht gepusht wird aber das liegt an Reolink selbst. Ich habe jetzt den Interval auf 5s, für meine zwecke reicht das völlig aus.

Vielen Dank für deine Arbeit

Gruß Peet

Super, vielen Dank fürs testen.
Ja du hast recht, leider geht die Abfrage nicht anders. Ich habe festgestellt, das bei einer bekannten Bewegung der Status für circa 30 Sekunden auf 1 springt.

Den aktuellen Adapter würde ich gerne noch ausbauen. Bin daher für Verbesserungsvorschläge und weiteren Integrationsvorschlägen dankbar^^.

@Diginix
Copy link

Diginix commented Jul 4, 2022

Habe ihn noch nicht installiert, allein schon weil ich "Motion" nicht brauche und blindes zyklischen Pollen im Netzwerk auch nicht so mag. Für mich wäre toll wenn ich den Alarmzeitplan meiner RLC-822a und RLC-423 dynamisch steuern könnte.
Bei Abwesenheit jeden Tag 24 Stunden und bei Anwesenheit nur zu vordefinierten Zeiten in der Nacht. Bisher habe ich dazu aber bei Reolink gar nichts gefunden. Bei Instar geht das per mqtt und CGI super bequem. Nur leider habe ich auch 2 Reolink Kameras.

PTZ Pos. kann ich mittlerweile mit curl, wie oben geschrieben, steuern. Das könnte sicher auch in den Adapter, falls nicht schon geschehen.

@Peet1985
Copy link

Peet1985 commented Jul 4, 2022

Hallo, ich habe mit der Entwicklung eines Adapters angefangen. Zur Zeit habe ich nur die Abfrage von Kamera Informationen (Allgemein und Netzwerk) und der Motion Detention eingebaut. (Habe leider nur eine RLC510A). Wäre super, wenn das jemand testen könnte und mir eine Rückmeldung geben könnte.
https://github.com/aendue/ioBroker.reolink
Danke und viele Grüße

Hallo
Ich habe deinen Adapter mit einer RLC-520A getestet, habe auch als Voreinstellung die 510A drin gelassen, sind ja eigenlich die gleichen Kameras.
Der Adapter funktioniert super. Schade nur, dass man den Motion Detection im Interval abfragen muss und das er nicht gepusht wird aber das liegt an Reolink selbst. Ich habe jetzt den Interval auf 5s, für meine zwecke reicht das völlig aus.
Vielen Dank für deine Arbeit
Gruß Peet

Super, vielen Dank fürs testen. Ja du hast recht, leider geht die Abfrage nicht anders. Ich habe festgestellt, das bei einer bekannten Bewegung der Status für circa 30 Sekunden auf 1 springt.

Den aktuellen Adapter würde ich gerne noch ausbauen. Bin daher für Verbesserungsvorschläge und weiteren Integrationsvorschlägen dankbar^^

Hallo,

heute ist mir aufgefallen, dass Motion unabhängig meiner, in der Kamera vergebenen, Filter und Bereiche anschlägt. Ich habe die Kamera zur Straße hin montiert und es wird eigentlich nur eine Bewegung gemeldet wenn sich eine Person auf meinem Grundstück bewegt, Autos und Tiere lösen die Bewegung nicht aus. Heute wurde aber immer Motion ausgelößt wenn ein Auto auf der Straße vorbei gefahren ist oder wenn ein Busch im Wind geschwankt hat. Kann es sein, dass hier die KI zur Personerkennung nicht mit berücksichtigt wird?

Gruß
Peet

@aendue
Copy link

aendue commented Jul 4, 2022

Habe ihn noch nicht installiert, allein schon weil ich "Motion" nicht brauche und blindes zyklischen Pollen im Netzwerk auch nicht so mag. Für mich wäre toll wenn ich den Alarmzeitplan meiner RLC-822a und RLC-423 dynamisch steuern könnte. Bei Abwesenheit jeden Tag 24 Stunden und bei Anwesenheit nur zu vordefinierten Zeiten in der Nacht. Bisher habe ich dazu aber bei Reolink gar nichts gefunden. Bei Instar geht das per mqtt und CGI super bequem. Nur leider habe ich auch 2 Reolink Kameras.

PTZ Pos. kann ich mittlerweile mit curl, wie oben geschrieben, steuern. Das könnte sicher auch in den Adapter, falls nicht schon geschehen.

Hallo, PTZ könnte ich mir mal anschauen...kann es aber leider nicht testen, weil die RLC510 kein PTZ unterstützt. Wie stellst du dir das mit dem Alarmzeitplan vor? Möchtest du das im Adapter konfigurieren und den Abwesenheitsstatus von einem anderen Adapter beziehen?

@Diginix
Copy link

Diginix commented Jul 4, 2022

Mir würde es reichen wenn der Zeitplan, wie auch immer codiert, in ein Objekt geschrieben wird oder ich gleich mit einem API request das ganze in meinem Skript löse ganz ohne Adapter. Bei Kameras mit umfangreicher CGI API braucht man ja auch kein Adapter sondern nutzt die Kommandos direkt in den Skripten. Wenn du herausfindest wie man den Alarmzeitplan per GET oder POST ändern kann, würde mir diese Info allein schon reichen.

@aendue
Copy link

aendue commented Jul 4, 2022

Hallo, ich habe mit der Entwicklung eines Adapters angefangen. Zur Zeit habe ich nur die Abfrage von Kamera Informationen (Allgemein und Netzwerk) und der Motion Detention eingebaut. (Habe leider nur eine RLC510A). Wäre super, wenn das jemand testen könnte und mir eine Rückmeldung geben könnte.
https://github.com/aendue/ioBroker.reolink
Danke und viele Grüße

Hallo
Ich habe deinen Adapter mit einer RLC-520A getestet, habe auch als Voreinstellung die 510A drin gelassen, sind ja eigenlich die gleichen Kameras.
Der Adapter funktioniert super. Schade nur, dass man den Motion Detection im Interval abfragen muss und das er nicht gepusht wird aber das liegt an Reolink selbst. Ich habe jetzt den Interval auf 5s, für meine zwecke reicht das völlig aus.
Vielen Dank für deine Arbeit
Gruß Peet

Super, vielen Dank fürs testen. Ja du hast recht, leider geht die Abfrage nicht anders. Ich habe festgestellt, das bei einer bekannten Bewegung der Status für circa 30 Sekunden auf 1 springt.
Den aktuellen Adapter würde ich gerne noch ausbauen. Bin daher für Verbesserungsvorschläge und weiteren Integrationsvorschlägen dankbar^^

Hallo,

heute ist mir aufgefallen, dass Motion unabhängig meiner, in der Kamera vergebenen, Filter und Bereiche anschlägt. Ich habe die Kamera zur Straße hin montiert und es wird eigentlich nur eine Bewegung gemeldet wenn sich eine Person auf meinem Grundstück bewegt, Autos und Tiere lösen die Bewegung nicht aus. Heute wurde aber immer Motion ausgelößt wenn ein Auto auf der Straße vorbei gefahren ist oder wenn ein Busch im Wind geschwankt hat. Kann es sein, dass hier die KI zur Personerkennung nicht mit berücksichtigt wird?

Gruß Peet

Hallo, hab mir nochmal die API Doku angeschaut...da gibt es leider nur eine Abfrage für Motion Detection...könnte mir aber auch vorstellen das die Doku unvollständig ist und es da noch andere Befehle gibt.

@nukleuz80
Copy link

nukleuz80 commented Jul 6, 2022

Hey @aendue,

danke erst einmal für deine Arbeit mit dem Adapter...
Ich habe ihn installiert und eingerichtet - Datenpunkte werden erstellt und mit richtigen Daten beschrieben.

Die Bewegungserkennung scheint auch zu funktionieren - das werde ich testen/im Auge behalten...

Weiterhin wäre es super die Motion-Sensitivity einzustellen:
grafik

Ist das möglich?

Danke und Grüße

EDIT: Ich nutze eine RLC-410W
Könntest du die Rolle (Role) noch ändern in: sensor.motion/motion?
grafik

@aendue
Copy link

aendue commented Jul 6, 2022

Hey @aendue,

danke erst einmal für deine Arbeit mit dem Adapter... Ich habe ihn installiert und eingerichtet - Datenpunkte werden erstellt und mit richtigen Daten beschrieben.

Die Bewegungserkennung scheint auch zu funktionieren - das werde ich testen/im Auge behalten...

Weiterhin wäre es super die Motion-Sensitivity einzustellen: grafik

Ist das möglich?

Danke und Grüße

EDIT: Ich nutze eine RLC-410W Könntest du die Rolle (Role) noch ändern in: sensor.motion/motion? grafik

Hallo, danke fürs testen. Die Rolle passe ich noch an.

@aendue
Copy link

aendue commented Jul 6, 2022

Ich hab im Forum ein Topic eröffnet: https://forum.iobroker.net/topic/56116/neuer-adapter-reolink-kamera

Bitte zu dem Adapter im Forum posten. Danke!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests