NEWS
Ring Video oder Bild in VIS einbinden. Wer kann helfen?
-
Hallo zusammen,
trotz langer Suche habe ich leider keine Anleitung gefunden, wie ich das letzte Video oder Bild aus der Ring Doorbell in die VIS einbinden kann. Wer könnte hier helfen oder hat evtl. eine Anleitung gesehen und kann den Link senden.
Ich freue mich über jede Hilfe.
Adapter läuft übrigens problemlos. Ich benötige "nur" eine Anleitung welches Widget oder was auch immer ich benötigen würde.
Danke im Voraus für Eure Hilfe -
@alphaii
würde mich auch interessieren. -
@stimpy23 HAllo Zusammen
ich habe mich mal mit dem Thema beschäftigt und eine Lösung gefunden mit der ich das letzte Snapshot anzeigen kann. Sollte Snapshot und Video im gleichen Ordner abgelegt sein, kann es vorkommen, dass das letzte gespeicherte File ein Video ist und dann nicht dargestellt wird. Mir war es eh nur wichtig das letzte Bild zu sehen.
Im RING Objekt Ordner stehen alle Snapshots. Der erste Script sucht die letzte angelegte Datei, dass zweite Script speichert diese Datei in einen separaten Ordner unter dem Namen 01Ring.jpg. Diese Datei kannst Du mit einem iFrame verknüpfen.Anbei habe ich meine Script angehangen.
/*****Letztes Kamerabild Giethoorn RING************************************** ** November 2020 ** RING, Kamera ** ** Ermittelt das letzte gespeicherte Bild von RING ** geändert:11.11.20 ************************************************************/ var zähler = 0; var old_recent; var old_create; var create; var path = require('path'); var fs = require('fs'); var request = require('request'); schedule("*/1 * * * * *", function () { old_recent = getState('Giethoorn.CAM.RING.LetztesBild').val; old_create = getState('ring.0.doorbell_53727335.History.created_at').val; create = getState('ring.0.doorbell_53727335.created_at').val; log(old_create); var getMostRecent = function (dir, cb) { var dir = path.resolve(dir); var files = fs.readdir(dir, function (err, files) { var sorted = files.map(function (v) { var filepath = path.resolve(dir, v); return { name: v, time: fs.statSync(filepath).mtime.getTime() }; }) .sort(function (a, b) { return b.time - a.time; }) .map(function (v) { return v.name; }); if (sorted.length > 0) { cb(null, sorted[0]); } else { cb('Y U NO have files in this dir?'); } }) } getMostRecent('/iobroker/SmartHome/iobroker-data/files/ring.0/doorbell_53727335/', function (err, recent) { if (err) console.error(err); console.log(recent); setState('javascript.3.Giethoorn.CAM.RING.LetztesBild', recent); setState('javascript.3.Giethoorn.CAM.RING.SDate', formatDate(new Date(create), "TT.MM.JJ hh:mm")); }); on({ time: { hour: 23, minute: 59 } }, function () { log("*****Bewegungen gelöscht***** "); setState('Giethoorn.CAM.RING.zähler', 0); }); });
In diesem Script wird die letzte Datei unbenannt. Ich habe hier im Script noch zwei Kameras die aber beim nachbauen weg gelassen werden können.
/*****Kameras Giethoorn in VIS ablegen************************ ** Oktober 2020 ** Outlook, Kamera Reolink Argus2, Ring ** ** Stellt die Snaps der NL Kameras für VIS zur Verfügung ** geändert:23.10.20, 21.12.20 ************************************************************/ var request = require('request'); var fs = require('fs'); schedule("* * * * * *", function () { var steg = getState('javascript.3.Giethoorn.CAM.Steg.LetztesBild').val; console.log("Steg: " + steg); var eingang = getState('javascript.3.Giethoorn.CAM.Eingang.LetztesBild').val; console.log("Eingang: " + eingang); var ring = getState('javascript.3.Giethoorn.CAM.RING.LetztesBild').val; console.log("RING: " + ring); var waterkant = getState('javascript.3.Giethoorn.CAM.Waterkant.LetztesBild').val; console.log("Waterkant: " + waterkant); const body = fs.readFileSync('/Ferienhaus/Eingang/' + eingang); writeFile("vis.0", "/NL/01Eingang.jpg", body); const body1 = fs.readFileSync('/Ferienhaus/Steg/' + steg); writeFile("vis.0", "/NL/01Steg.jpg", body1); **const body2 = fs.readFileSync('/iobroker/SmartHome/iobroker-data/files/ring.0/doorbell_53727335/' + ring); writeFile("vis.0", "/NL/01RING.jpg", body2);** const body3 = fs.readFileSync('/Ferienhaus/Waterkant/' + waterkant); writeFile("vis.0", "/NL/01Waterkant.jpg", body3); });
Viel Erfolg beim Anpassen.
Michael