NEWS
[Neuer Adapter] Reolink Kamera
-
Das ist ein Ausschnitt aus einem Script von mir.
Auf den DP mit der Bewerbung triggern.
Reolink hat eine URL womit man ein Jpg abrufen kann. Den musst du bei dir eintragen. -
@david-g
Das ist schön übersichtlich.
Das teste ich heute abend mal.Gibt es sowas auch für eine Videoclip?
-
@gonzokalle sagte in [Neuer Adapter] Reolink Kamera:
Gibt es sowas auch für eine Videoclip?
Nicht, dass ich wüsste
-
@David G. Mega, hatte es umständlich über ffmpeg mit temp. Speichern auf dem iob Server gelöst. Schneller und einfacher!
-
@david-g
Wie starte ich den "http(Get)" Block?
Oder kommt der in ein Trigger Baustein? -
Der muss logischerweise in einen Trigger.
Kannst in den Trigger ja mehrere DPs machen, für jede Art der Erkennung wo du was bekommen möchtest.Zb so für Tiere und Menschen
-
@david-g
Dann ist es klar.
Hatte nur gefragt, weil er die gleiche Farbe hat wie ein Trigger.
Trigger in Trigger soll man ja nicht. -
Funktioniert hervorragend.
-
Ein Bild holen und per Telegram verschicken klappt mit dem http(GET) schon mal gut. Wie bekomme ich es jetzt per ftp verschickt/gespeichert?
-
Ich mache es per exec und curl.
Kann aber grad nicht drauf um es zu senden. -
@david-g sagte in [Neuer Adapter] Reolink Kamera:
Ich mache es per exec und curl.
Kann aber grad nicht drauf um es zu senden... hat sich erledigt. Mein Fehler. Ich hatte es mal mit wput laufen und hatte vergessen wput nach dem Hardwareumzug zu instillieren.
Es läuft!
-
Das Bild hole ich per wget, benenne es um, speichere es per wput auf meinem Server und lösche es wieder im ioBroker.
-
@skvarel m.E ist @Gonzokalle´s Beispiel besser, da es kaum eine Karenzzeit gibt, bis das Bild gespeichert ist. Versteh‘ mich nicht falsch, hatte es auch erst so gelöst, ist aber ziemlich langsam und fehleranfällig (es muss zuerst gewartet werden, bis zb das Bild gespeichert wurde).
Ich habe es wie gonzo gelöst, zusätzlich mit einer Sperrzeit, damit nicht x-fach ein Bild geschickt wird.
-
Dürfte ich Euch mal kurz fragen, wie ihr derzeit mit der Reaktionszeit bei Bewegungserkennung zufrieden seid?
Ich überlege, meinen Bewegungsmelder durch eine Kamera zu ersetzen und hätte natürlich schon gerne eine Meldung innerhalb von max. 2sec.
Ist das mit der Reolink und dem Adapter realistisch?
-
Das klappt eigentlich ganz gut, wenn du im Adapter das Polling auf 1sek stellst.
-
@david-g Danke.
Habt ihr denn Empfehlungen bezgl. des Modells oder würdet ihr ehrlicherweise mittlerweile doch andere Hersteller (Ubiquiti?) vorziehen?
-
Ich hatte bisher nur reolink.
Bei den Modellen kommt es denke ich stark auf die eigenen Vorlieben an.Bauart, Auflösung, poe?
Auf der Website kann man sich ja sehr gut informieren. -
Eine Frage: wie erstellt ihr Videos um sie per Telegram oä zu verschicken? Mit nachfolgendem Befehl sind die Videos sehr stockend, was nicht wirklich hilfreich ist.
Ist die Qualität zu hoch? Ch nutze per rtsp den main stream.
ffmpeg -y -i rtsp://admin:xyz@192.168.253.148:554/h264Preview_01_main -t 30 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=480:force_original_aspect_ratio=decrease -r 15 /opt/iobroker/CamSnapshots/Haustuere.mp4
-
Die Frage ist, ob du dafür nicht auf was anders gehst.
Ich nutze AgentDVR, allerdings lasse ich mir damit nur Bilder senden. Videos geht aber glaube auch. -
Für alle, die gerne per HTTP das AutoTracking schalten wollen würden:
Ich habe es hier im Adapter-Issue als Lösung angehängt: https://github.com/aendue/ioBroker.reolink/issues/29Der Code dazu sieht bei mir wie folgt aus. Es wird erst die aktuelle Config gelesen (äußere axios-Klammer, damit alle sonstigen Parameter erhalten bleiben und nur das Auto-Tracking an und aus geschaltet wird. Dann wird die neue Config mit dem gewünschten Status geschrieben.
State kann true oder false sein.async function setAutoTrack(state){ const axios = require("axios") const https = require('https') var options = {url: "https://192.168.178.92/api.cgi?cmd=GetAiCfg&user=admin&password=xxxxx", jar: true, json: [{ "cmd": "GetAiCfg", "action": 0, "param" : {"channel": 0}}], method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' } } log('Getting AICfg ') await axios({ method: "post", url: options['url'], data: JSON.stringify(options['json']), headers: options['headers'], httpsAgent: new https.Agent({ rejectUnauthorized: false }) }).then(async function (response) { var body = response.data var aiCfg = body[0]['value'] log(JSON.stringify(aiCfg)) aiCfg['bSmartTrack'] = (state == true ? 1 : 0) var options = {url: "https://192.168.178.92/api.cgi?cmd=SetAiCfg&user=admin&password=xxxxx", jar: true, json: [{ "cmd": "SetAiCfg", "action": 0, "param" : aiCfg}], method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' } } log('Setting AICfg ') await axios({ method: "post", url: options['url'], data: JSON.stringify(options['json']), headers: options['headers'], httpsAgent: new https.Agent({ rejectUnauthorized: false }) }).then(function (response) { var body = response.data var aiCfg = body[0]['value'] log(JSON.stringify(aiCfg)) }).catch(function(error){log('error:'+error.code+' '+error.config.url)}); }).catch(function(error){log('error:'+error.code+' '+error.config.url)}); }
Viel Spaß damit