httpmod Abfrage http stream

Begonnen von Tomk, 18 Mai 2017, 10:40:46

Vorheriges Thema - Nächstes Thema

distel

Zitat von: mani am 09 November 2017, 09:28:01
Wie hast du das nun Umgesetzt?
Hallo Mani,

ich habe zu diesem Projekt beigetragen, damit ich es verwenden konnte: https://github.com/refinitive/hiki
Das ist ein Node.js Projekt, das einen Mini-NVR bereitstellt. Sprich: Das ist eine separate Software, und sobald konfigurierte Events seitens der Camera (im AlertStream) getriggert werden, so wird
a) eine Video-Aufnahme ausgelöst
b) ein Snapshot gespeichert
c) kann vor/nach der Aufnahme ein Shell-Kommando abgesetzt werden
Siehe auch hier: https://github.com/refinitive/hiki/blob/master/config.yml.sample

Ergo:
Clonen, Config ändern, Docker Container builden, Container starten.
Ergebnis:
Bei Bewegung wird ein Film konfigurierbarer Länge gespeichert (+ xx Sekunden nach Ende des Events), das erste Frame als jpg gespeichert und fhem kannst Du über die Pre/Post Kommandos starten. Alternativ kannst Du auch das Verzeichnis überwachen wie im Beispiel mit dem ftp-Server.
Ich habe mich übrigens gegen einen direkten Zugriff der Kamera auf ein "internes" System entschieden, da ich nicht möchte, dass meine Zugangsdaten (relativ) leicht abschraubbar im Eingangsbereich hängen. Aber da ist jeder ja anders im Sicherheitsbefinden.

Zu guter Letzt:
Rein rechtlich bist Du verpflichtet auch die Aufnahmen, die Du eh nur (und auschließlich nur) von deinem Grundstück machen darfst nach "angemessener" Zeit (für die Auswertung) zu löschen. Im o.g. Projekt ist ein entsprechendes Script inkludiert, das du in einem cron-Job verwenden kannst.


Gruß

Dirk
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

Hallo Dirk,

hört sich nach einer guten Lösung an....

Nur wie müsste ich jetzt vorgehen?

Etwa so:

Install nodejs
Install openRTSP (livemedia-utils package)
clone the repo ( So eingeben?
"sudo git clone https://github.com/refinitive/hiki. git" )
download node modules (npm install)
Customise config.yml for cameras and output directory (copy from .sample)
Run node hiki.js

Dann die config.yml.sample anpassen....

Stimmt das bis jetzt?

Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

distel

Zitat von: mani am 10 November 2017, 10:12:34
Nur wie müsste ich jetzt vorgehen?

So wie in der Doku des Projektes beschrieben (es gibt zwei Möglichkeiten, ich habe die Docker-Lösung präferiert).

Du musst natürlich vor dem Start die (gut kommentieret :D) config.yml.sample anpassen und als config.yml speichern. Falls Du ein zentrales Verzeichnis haben willst, auf das fhem "lauert" musst du die Pfadvorgaben entsprechend anpassen.

# placeholders replaced in patternPath/File:
# %Y, %M, %D = year, month, day
# %h, %m, %s = hour, minute, second
# %cam = name of camera
# %rec = name of trigger
patternPath: "%Y/%M/%D/%cam_%rec/"
patternFile: "%cam_%rec_%Y%M%D_%h%m_%s"


Variante: Node.js installieren:
Install nodejs
Install openRTSP (livemedia-utils package)
clone the repo (git clone https://github.com/refinitive/hiki.git)
download node modules (npm install)
Customise config.yml for cameras and output directory (copy from .sample)
Run node hiki.js


Variante: Docker verwenden:
Install docker
clone the repo git clone https://github.com/refinitive/hiki.git
Customise config.yml to match your cameras
execute ./docker_build.sh
execute ./docker_run.sh (Ctrl+C to exit)
execute ./docker_daemon.sh to run in the background


Außerdem musst Du noch dafür sorgen, dass hiki automatisch (wieder-)gestartet wird. Für den Docker teil habe ich da eine entsprechend angepasste docker-compose.yml im repro (nein, ist nicht meins, aber ich hab beigetragen).
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

#18
Hallo Dirk,

Danke erstmal für deine Hilfe :)
jedoch steck ich hier fest .... :( wo könnte hier das Problem liegen?
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:135:13)
gyp ERR! stack     at ChildProcess.emit (events.js:224:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Linux 4.9.35-v7+
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /tmp/node_modules/net-keepalive/node_modules/ffi
gyp ERR! node -v v9.1.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ffi@2.2.0 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ffi@2.2.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-11-10T21_03_24_483Z-debug.log
The command '/bin/sh -c cd /tmp && npm install' returned a non-zero code: 1
xx@xxxxxxxx:~/hiki $ sudo bash ./docker_run.sh
Unable to find image 'hiki:latest' locally
docker: Error response from daemon: pull access denied for hiki, repository does not exist or may require 'docker login'.
See 'docker run --help'.
xx@xxxxxxxx:~/hiki $


Fehler beim Update event. schuld?
Fehl http://mirrordirector.raspbian.org jessie Release.gpg
  Verbindung mit mirrordirector.raspbian.org:80 kann nicht aufgebaut werden


Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

distel

Zitat von: mani am 10 November 2017, 22:10:15

Hallo Mami,

1) kann ich nur vermuten, dass du die den Weg Installation von node.js eingeschlagen hast.
2) bin ich dann raus, da ich die Docker Variante nutze, die beim build alles mitbringt.
3) läuft der Container bei mir auf einem Intel NUC, also nicht ARM. Das sollte aber nicht das Thema sein, da Docker und node.js sicher auch auf der ARM Plattform verfügbar sind. Bei Openrtsp in ich mir nicht sicher, aber da bist du ja noch lange nicht.

Sorry, wenn ich dir nicht weiterhelfen kann, ggf. Wären die entsprechenden Foren zu bsp. Node.js hilfreich.


Gruß Dirk
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

#20
Hallo Dirk,


eigentlich ist es die Docker variante ;), habe Docker nach dieser Anleitung versucht zu installieren:
https://sebastianbrosch.blog/2017/docker-auf-einem-raspberry-pi-3-installieren/

jedoch kommt beim update der Fehler:
Holen: 30 https://download.docker.com jessie/stable Translation-en [584 B]
Ign https://download.docker.com jessie/stable Translation-en
Ign http://archive.raspberrypi.org jessie/ui Translation-de
Ign http://archive.raspberrypi.org jessie/ui Translation-en
Fehl http://mirrordirector.raspbian.org jessie InRelease

Fehl http://mirrordirector.raspbian.org jessie Release.gpg
Verbindung mit mirrordirector.raspbian.org:80 kann nicht aufgebaut werden (XXXXX). - connect (101: Das Netzwerk ist nicht erreichbar) [IP: XXXXX 80]
Paketlisten werden gelesen... Fertig
W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/jessie/InRelease

W: Fehlschlag beim Holen von http://mirrordirector.raspbian.org/raspbian/dists/jessie/Release.gpg  Verbindung mit mirrordirector.raspbian.org:80 kann nicht aufgebaut werden (XXXXX). - connect (101: Das Netzwerk ist nicht erreichbar) [IP:XXXX 80]

W: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt.


aber Docker ist Installiert.

habe die config.yml angepasst und danach den Befehl "sudo bash ./docker_build.sh" ausgeführt worauf hin die vorhin genannte Errors kommen.........

Status Docker dürfte passen oder?

sudo systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled)
   Active: active (running) since Fre 2017-11-10 22:28:12 CET; 1h 21min ago
     Docs: https://docs.docker.com
Main PID: 672 (dockerd)
   CGroup: /system.slice/docker.service
           ├─ 672 /usr/bin/dockerd -H fd://
           └─1364 docker-containerd -l unix:///var/run/docker/libcontainerd/d...

Nov 10 22:28:06 raspberrypi dockerd[672]: time="2017-11-10T22:28:06.87785388..."
Nov 10 22:28:06 raspberrypi dockerd[672]: time="2017-11-10T22:28:06.87828138..."
Nov 10 22:28:06 raspberrypi dockerd[672]: time="2017-11-10T22:28:06.87895596..."
Nov 10 22:28:06 raspberrypi dockerd[672]: time="2017-11-10T22:28:06.88086486..."
Nov 10 22:28:10 raspberrypi dockerd[672]: time="2017-11-10T22:28:10.16265346..."
Nov 10 22:28:11 raspberrypi dockerd[672]: time="2017-11-10T22:28:11.08063823..."
Nov 10 22:28:12 raspberrypi dockerd[672]: time="2017-11-10T22:28:12.57939164...e
Nov 10 22:28:12 raspberrypi dockerd[672]: time="2017-11-10T22:28:12.60535934..."
Nov 10 22:28:12 raspberrypi systemd[1]: Started Docker Application Container....
Nov 10 22:28:12 raspberrypi dockerd[672]: time="2017-11-10T22:28:12.78238998..."
Hint: Some lines were ellipsized, use -l to show in full.



Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

Tomk

Zitat von: mani am 09 November 2017, 10:54:11
Würde das auch gehen wenn der zu überwachen de Ordner auf einem NAS liegt?
Mfg Mani

Leider nicht so einfach wie von Alexander beschrieben. Ich habe es versucht aber inotify scheint nicht auf samba freigaben zu reagieren. Das wäre die einfachste möglichkeit für mich gewesen da die Kamera ohnehin bilder auf einem FTP ablegt, aber halt eben nicht auf dem RPI wo FHEM läuft... Ich werde jetzt auch mal die Hiki Version versuchen...

distel

Zitat von: mani am 11 November 2017, 08:57:38
habe die config.yml angepasst und danach den Befehl "sudo bash ./docker_build.sh" ausgeführt worauf hin die vorhin genannte Errors kommen...
Hmm, könnte mir vorstellen, dass ggf. das Basis Image (FROM node:alpine im Dockerfile) nicht für den Raspi passt. gibt es nen alpine für Raspi?!
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

Zitat
Hmm, könnte mir vorstellen, dass ggf. das Basis Image (FROM node:alpine im Dockerfile) nicht für den Raspi passt. gibt es nen alpine für Raspi?!


muss ich alpine normal nach installieren?

Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

mani

Hängt das mit der Zeit zusammen stelle die Uhrzeit auf dem Raspberry über KNX dadurch hab ich da einiges auskommentiert...... :o

Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

distel

Zitat von: mani am 11 November 2017, 12:21:18
muss ich alpine normal nach installieren?

Docker baut ein Image auf Basis eines bestehenden. In diesem Fall alpine (ein minimal Linux). Damit das fertige Image auch auf dem ARM vom RasPi läuft, muss es mMn auch von einem ARM Image abgeleitet werden.
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

Ok was kann ich nun machen?Kann ich Alpine einfach nach installieren?
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

mani

Hallo @Tomk auf welche Art wirst du hiki installieren? ich komm bei beiden nicht weiter...... :(

Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

Tomk

Ich versuche es jetzt doch nochmal anders: Kamera kopiert Bild auf raspberry ftp, dort erkennt inotify das neue Bild und löst ein Notify in FHEM aus und kopiert das Bild auf den ursprünglichen NAS Speicherort und löscht das Bild auf dem raspberry...


Gesendet von iPad mit Tapatalk

mani

Ok auch eine Lösung hast du schon mal mit mounten versucht?

Mfg Mani
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron