NEWS
Lokal abgelegten Snapshot in VIS anzeigen
-
@berzi sagte in Lokal abgelegten Snapshot in VIS anzeigen:
Das heißt, dass VIS die Datei nunmal so lange auch irgendwie ignoriert, obwohl sie da ist,
Wie ich schrieb:
Nur Dateien, die von vis registriert wurden, können auch in vis verwendet werden.
Nichts was du "an der registrierung vorbei" in das Verzeichnis befördert hast@berzi sagte in Lokal abgelegten Snapshot in VIS anzeigen:
Ist mein Problem nachvollziehbar?
Ja - ich dachte es genau so beschrieben zu haben
-
@homoran Ich hatte es schon auch genauso verstanden - nur löst das mein Problem nicht?
-
@berzi sagte in Lokal abgelegten Snapshot in VIS anzeigen:
nur löst das mein Problem nicht?
und das:
@homoran sagte in Lokal abgelegten Snapshot in VIS anzeigen:Die Dateien müssen mit filesync hochgeladen werden
frag mich nicht wie - steht irgendwo mehrfach im Forum, aber ich kann kein js
-
Hiermit kannst du es direkt von deiner Cam holen und in vis.0 legen .
request( { url: "http://192.168.178.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxx&pwd=roadxxxxx", encoding: null, }, (error, response, body) => { if (!error && body) { writeFile("vis.0", "/klingelbild/VorneTest.jpg", body); } } );
-
@glasfaser Top! Vielen Dank! Genau das behebt das Problem
-
Hallo ich habe hier ein ähnliches Problem,
komme mit dem Tip von @Glasfaser leider aber noch nicht zum Ziel.Ich möchte gern regelmäßig Bilder abspeichern und das Aktualisierte Bild dann alle 3 sec in Vis anzeigen lassen- soweit ist die Anforderung ja die gleiche.
- Aber mir fehlt im Skript die Zeit Einstellung wann das Bild geholt wird? Schlimmer aber noch,
- Meine IP Kamera (Wansview W6) hat keinen http:// .. Zugang um ein Snapshot zu machen, daher auch der Grund für die Zwischen Speicherung in Vis.0 über diesen weg.
Ein Bild von der Kamera kann ich nur über die folgenden URL abgreifen und speichern:
ffmpeg -loglevel fatal -i rtsp://user:pwd@192.168.178.xxx:554/live/ch0 -vframes 1 -y -r 1 /opt/iobroker/iobroker-data/files/vis.0/main/img/Hof3.jpg
Mit js Skripte komme ich leider nicht klar - bin froh es einigermaßen mit Blocky hinzubekommen
Hier liegt mein Bild nun in Vis.0opt/iobroker/iobroker-data/files/vis.0/main/img/Hof3.jpg
Die Rechte auf die Datei habe ich bereits angepasst:
Wie man sieht wird das Bild dort nun auch regelmäßig aktualisiert:
Wäre Klasse wenn ihr mir dabei auch Helfen könntet.
Edit, habe die Pfade einmal angepasst
-
@yoda
Bei mir habe ich ein Skript "GetAlarmSnapshot" mit genau dem Code von Glasfaser angelegt. Lediglich den url und vis Pfad habe ich angepasst.
Was ich nicht direkt beantworten kann ist, wie du dir zuvor die Datei holst, da deine Cam kein http unterstützt und du die Datei ja bereits lokal abliegen hast. Das muss aber auch gehen. Was du suchen musst ist wie du über Javascript eine lokale Datei einliest.Das wäre dann der obere Teil in der Manier:
/* Hier kommt der Javascript-Kram, um die Datei einzulesen /
...
...
/ Hier nutze die Funktion writeFile("vis.0", "/pfad/zum/bild.jpg", body); */Für das Einlesen der Datei hilft dir vermutlich diese Seite hier (wenn das nicht runtergebrochen zuvor jemand hier reinstellt):
https://www.html5rocks.com/de/tutorials/file/dndfiles// -
@yoda Ich habe auch eine W6 die habe ich aber in MotionEye eingebunden dann hast du auch einen http Adresse für ein Bild.
-
var fs = require('fs'); var timeout1 exec('ffmpeg -loglevel fatal -i rtsp://user:pwd@192.168.178.xxx:554/live/ch0 -vframes 1 -y -r 1 /tmp/Vorne.jpg'); timeout1 = setTimeout(function () { const picture= fs.readFileSync('/tmp/Vorne.jpg'); writeFile('vis.0','/klingelbild/Vorneneu.jpg', picture, function (error) { }); }, 20000);
-
@Christian-Sandkaulen
Danke, das beruhigt schon mal das du die W6 eingebunden hast. Mit MotionEye habe ich noch nichts gemacht, müsste ich mich mal einlesen was ich da machen muss.....@glasfaser
Danke für deine Antwort, ich habe die Pfade mal entsprechend meiner Ordner angepasst und auch nochmal einen Neuen Name für das Bild verwendet Hof7.jpg- Dieses wird im Verzeichnis beim starten des Skripts nur einmalig Aktualisiert.
- In Vis wird das Bild weiterhin nicht angezeigt.
Wärst du so Lieb und schauts dort noch mal rüber - vielen Dank!
var fs = require('fs'); var timeout1 exec('ffmpeg -loglevel fatal -i rtsp://user:pwd@192.168.178.117:554/live/ch0 -vframes 1 -y -r 1 /opt/iobroker/iobroker-data/files/vis.0/main/img/Hof7.jpg'); timeout1 = setTimeout(function () { const picture= fs.readFileSync('/opt/iobroker/iobroker-data/files/vis.0/main/img/Hof7.png'); writeFile('vis.0','/opt/iobroker/iobroker-data/files/vis.0/main/img/Hof7.png', picture, function (error) { }); }, 20000);
Pfad in Vis:
Bem. nehme ich ein anderes Bild aus dem Vis Ordner wird dieses angezeigt.
/vis.0/main/img/Hof7.jpg -
-
@glasfaser
habe ich gemacht - aber es ändert sich nichts, weiterhin so wie oben beschrieben:var fs = require('fs'); var timeout1 exec('ffmpeg -loglevel fatal -i rtsp://user:pwd@192.168.178.117:554/live/ch0 -vframes 1 -y -r 1 /opt/iobroker/iobroker-data/files/vis.0/main/img/Hof7.jpg'); timeout1 = setTimeout(function () { const picture= fs.readFileSync('/opt/iobroker/iobroker-data/files/vis.0/main/img/Hof7.png'); writeFile('vis.0','/main/img/Hof7.png', picture, function (error) { }); }, 20000);
-
Nimm ganz oben mein erstes Beispiel ohne dein Pfad einzutragen/ändern , teste es mit dem hinterlegten Pfad /tmp/Vorne.jpg
und die Ausgabe erfolgt dann in
writeFile('vis.0','/klingelbild/Vorneneu.jpg
-
@glasfaser
das wird was.
Bild wird gespeichert und auch in Vis angezeigt.
Jetz müsste nur noch der Timmer alle 3 sec das Bild aktualisieren.var fs = require('fs'); var timeout1 exec('ffmpeg -loglevel fatal -i rtsp://user:pwd@192.168.178.117:554/live/ch0 -vframes 1 -y -r 1 /tmp/Vorne.jpg'); timeout1 = setTimeout(function () { const picture= fs.readFileSync('/tmp/Vorne.jpg'); writeFile('vis.0','/klingelbild/Vorneneu.jpg', picture, function (error) { }); }, 20000);
Es wird also nur einmal dort gespeichert:
-
Zusatz,
wenn ich das Script stoppe und wieder starte, wird das Bild Aktualisiert - dauert 24 sec.
Sorry für die ganzen Fragen aber da kenne ich mich null mit aus
Danke für deine Geduld und Hilfe.Muss hier vielleicht noch ein wert rein?
timeout1 = setTimeout(function () {
-
@yoda
Nein ... der Timeoutwert ist unten , das heißt es wird das Bild bei Scriptstart geholt und nach 20 sec. in den Ordner gelegt .
Dort kannst du die Zeit runterschrauben !}, 20000);
-
@glasfaser
ah ok.
Dann müsste ich nochmal schauen das ein Intervall dazukommt, das die Bilder von der Kamera alle 3 sec geholt werden. Habe mich da wohl falsch ausgedrückt.
Das Skript soll ja dann dauerhaft laufen, mit Aktuelle Bilder in ...sec Takt. -
@yoda sagte in Lokal abgelegten Snapshot in VIS anzeigen:
Das Skript soll ja dann dauerhaft laufen, mit Aktuelle Bilder in ...sec Takt.
Würde gehen , aber nicht empfehlenswert.
Hier habe ich etwas von deiner Wansview gefunden , mit einem direkten Link in einem Widget ist es besser .
Kannst ja dort mal anfragenIch habe eine Wansview IPCamera welche mir über den den Browser ohne Probleme ein stream / snap .cgi Bild sendet.
-
@glasfaser
Danke für deine Hilfe und Zeit!
Habe ich mir angeschaut nur seine Wansview IP Cam macht ein Bild / stream über einen Browser.
Ich habe auch eine Wansview 1 oder 2 die macht das auch, da ist das alles klein Problem.
Wansview hat hier wohl für jedes Model eigene Befehle / Möglichkeiten, Problem ist die W6.Habe schon Kontakt mit denen aufgenommen, mal sehen ob was kommt..
Ansonst mal mit @Christian-Sandkaulen Vorschlag MotionEye weitermachen, oder Rücksendung. -
@christian-sandkaulen
ich habe nun MotionEye am laufen, bekomme nun auch eine http Adresse für Snapshot oder aus den Video Sream Pfad. Kann also alles per Broser Eingabe öffnen.Bild-Snapshot:
http://xxx.168.178.47:8765/picture/1/current/
Stream:
http://xxx.168.178.47:8081
Frame pro 1sec
http://xxx.168.178.47:8765/picture/1/frame/Nun fehlt mir noch die Steuerung das ich das Video bei einem Alarm über einen Variablen Daten Punkt /Objekt (Shelly+ Bewegungsmelder) Aufzeichnen / starten und später auch wieder beenden kann.
Bisher finde ich dazu noch nichts passendes,
ein Ansatz hier wäre mit externen GPIO:
https://github.com/avanc/motioneye-pir/blob/master/README.md
Ich benötige das aber alt mit Steuerung über einem Datenpunkt / Objekt.Mit dieses Befehlen sollte man die Motion steueren können - aber da tut sich nichts:
http://xxx.168.178.47:8765/1/detection/start
http://xxx.168.178.47:8081/1/Erkennung/Pausehttp://xxx.168.178.47:8081/1/config/set?emulate_motion=1
http://xxx.168.178.47:8081/1/config/set?emulate_motion=0curl http://xxx.168.178.47:8081/1/config/set?emulate_motion=1
curl http://xxx.168.178.47:8081/1/config/set?emulate_motion=0Kann mir hier noch jemand weiterhelfen?
LG