httpmod Abfrage http stream

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

Vorheriges Thema - Nächstes Thema

Tomk

Hallo zusammen,

ich verzweifele gerade mit meiner ersten httpmod abfragt und brauche eure Hilfe.
Ich möchte meine IP Cam abfragen um eine Bewegung zu erkennen und weiter zu verarbeiten.

Hierfür bietet Hivision einen Stream unter "http://<ip>/ISAPI/Event/notification/alertStream" an der wie folgt aufgebaut ist:

<EventNotificationAlert version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<ipAddress>xxx.yyy.vvv.zzz</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress></macAddress>
<channelID>1</channelID>
<dateTime>2017-05-18T09:40:37+01:00</dateTime>
<activePostCount>0</activePostCount>
<eventType>videoloss</eventType>
<eventState>inactive</eventState>
<eventDescription>videoloss alarm</eventDescription>
</EventNotificationAlert>
--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 518

<EventNotificationAlert version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<ipAddress>xxx.yyy.vvv.zzz</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress></macAddress>
<channelID>1</channelID>
<dateTime>2017-05-18T09:40:38+01:00</dateTime>
<activePostCount>1</activePostCount>
<eventType>VMD</eventType>
<eventState>active</eventState>
<eventDescription>Motion alarm</eventDescription>
<DetectionRegionList>
</DetectionRegionList>
</EventNotificationAlert>
--boundary
Content-Type: application/xml; charset="UTF-8"
Content-Length: 518



1. Problem:
Wie erkenne ich folgendes Event im zweiten Block:
<eventType>VMD</eventType>
<eventState>active</eventState>
<eventDescription>Motion alarm</eventDescription>

Wenn das Event nicht ansteht fehlt der ganze Block.

2. Problem:
da es sich um einen Stream handelt wird httpmod immer ins Timeout laufen. Der Buffer ist gefüllt, aber wie stelle ich sicher das ich kein Event verpasse?

Besten Dank vorab!

Tom

Amenophis86

1. Mit einem eigenen HTTPMOD und reload auf die gewünschte Informationen
2. Verstehe ich nicht
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Tomk

#2
Bzgl. 2: der Stream läuft immer weiter, d.h. Wenn ich den link im Browser lade wird der scrollbalken immer kleiner, da immer wieder neue Infos rein kommen.

Bzgl. 1: was heißt denn reload auf die Information? Ich habe bereits mit readings versucht und mit xml, aber irgendwie habe ich nie ein Resultat bekommen. Wer kann mir hier mit der richtigen Regex helfen?

Tomk

Keiner eine Idee? Wer kann mir helfen zumindest die Regex zu finden? Mit den Timeouts werden ich schon irgendwie leben können...
Wie kann ich das Motion event dann abfragen?

herrmannj

ich vermute dass es notwendig sein wird hier ein eigenes modul zu programmieren. Deine Diagnose mit dem timeout ist vmtl korrekt, Du müsstest den stream kontinuierlich lesen und dann die jeweils neuesten Mitteilung weiterverarbeiten. Evtl kann man was frickeln indem man den timeout im httpmod sehr hochsetzt (geht das?) und beim erreichen des timeuts einmal clsoe und direkt wieder open. Wäre aber murks.

Darf ich fragen welche Kamera das ist ?

vg
joerg

herrmannj

die regex, btw, sollte doch einfach sein. Musst Du nicht nur auf "Motion alarm" achten ? also :
.*Motion alarm.*


Tomk

Hallo herrmannj,

danke für die Antwort. Es sind Hikvision Kameras... Ein eigenes Modul würde sicherlich auch noch mehr Möglichkeiten bieten, z.b. Notification der Kamera ohne ständig pollen zu müssen. Vielleicht arbeite ich mich irgendwann doch mal in Perl ein.

Aber bzgl. httpmod: ich glaube ich verstehe die Grundidee nicht...

ich habe jetzt folgende attribute angelegt:
defmod HikVisionHaustuer HTTPMOD http://IP/ISAPI/Event/notification/alertStream 5
attr HikVisionHaustuer userattr reading1Name reading1Regex
attr HikVisionHaustuer reading1Name MotionDetected
attr HikVisionHaustuer reading1Regex .*linedetection alarm.*


aber wie frage ich das attribute ab? wo sehe ich ob die Regex was gefunden hat?

distel

Hallo, leider bin ich auch eine PERL-Niete, hatte aber schon mal zum Thema alertStream recherchiert.

Bzgl. Perl war hier ein Beispiel:
http://www.perlmonks.org/?node_id=1132165

Und hier hatte jemand was ähnliches in Go geschrieben, was ja ggfs. auch eingebunden werden könnte:
https://github.com/ccontavalli/hicknotify

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

distel

#8
Zitat von: distel am 20 Mai 2017, 14:05:26
Bzgl. Perl war hier ein Beispiel:
http://www.perlmonks.org/?node_id=1132165
Kleines Update: Hab den o.g. Code zum laufen gebracht (XML::Twig per cpan installiert) und gelernt, dass irgendeine Einstellung zum Thema "videoloss" dafür sorgt, dass beständig Events geschmissen werden (sprich "loss" = ausbleiben dieser Events).

Ich habe den Code umgestrickt, so dass das Print nur noch im Falle eines Events vom Type "linedetection" im Status "active" erfolgt. Dieses Event wird typischerweise 4-8 Mal geworfen... je nach Laufgeschwindigkeit. Das Event wird bei mir nur im Status "active" erzeugt.

An ein fhem Modul gedacht, müsste dieses

  • die Zugriffsparameter speichern, das passwort dabei "unsichtbar" wie bspw. IPCam
  • verschiedene readings für verschiedene EventTypen vorhalten
  • den Status der Event-Readings mit jedem empfangenen Event aktualisieren und nach einer bestimmten Zeit ohne weiteres Event zurücksetzen

Welches fhem-Modul könnte als Basis taugen? Wie gesagt, ich hab nicht viel von der Modul-Entwicklung, aber ggf. gibt es ja ähnliche Module die beständig etwas überwachen und als Reading bereitstellen. dann könnte ich weiteres versuchen. Andernfalls werde ich wohl noch ein wenig basteln, bis ich zumindest das IPCam-Modul getriggert bekomme um Bilder zu speichern.

Hier mein angepasster Code:
#!/usr/bin/perl

use XML::Twig;
use warnings;
use strict;
use LWP;

my $camUser = "<username>";
my $camPass = "<password>";
my $camIP   = "xxx.xxx.xxx.xxx";
my $camProt = "http";

my $url = "$camProt://$camUser:$camPass" . "@" . "$camIP/Event/notification/ale$
my $browser = LWP::UserAgent->new();

my $twig = new XML::Twig(
        twig_handlers => { EventNotificationAlert => \&AlertStreamHandler }
);

my $response = $browser->get(
        $url,
        ':content_cb'     => \&raw_handler,
        ':read_size_hint' => 1024,
);

sub raw_handler {
    my ( $data, $response ) = @_;
    unless ( $data =~ /^--boundary/ ) {
        $twig->parse($data);
    }
}

sub AlertStreamHandler {
        my ( $twig, $eventAlert ) = @_;
        my $eventIP    = $eventAlert->first_child("ipAddress")->text;
        my $eventDate  = $eventAlert->first_child("dateTime")->text;
        my $eventType  = $eventAlert->first_child("eventType")->text;
        my $eventState = $eventAlert->first_child("eventState")->text;

        #print "$eventDate $eventIP $eventType $eventState";
        if ($eventType eq "linedetection") {
                if ($eventState eq "active") {
                        print "ausgelöst...\n";
                } else {
                        print "nicht ausgelöst.\n";
                };
        };

        $twig->purge;  # delete the twig so far. Not sure if this is needed.
}


Als Event wird folgendes übertragen:
<EventNotificationAlert version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<ipAddress>xxx.xxx.xxx.xxx</ipAddress>
<portNo>xxx</portNo>
<protocol>HTTP</protocol>
<macAddress>xx:xx:xx:xx:xx:xx</macAddress>
<channelID>1</channelID>
<dateTime>2017-06-02T18:13:39+01:00</dateTime>
<activePostCount>1</activePostCount>
<eventType>linedetection</eventType>
<eventState>active</eventState>
<eventDescription>linedetection alarm</eventDescription>
</EventNotificationAlert>
--boundary


Wenn ich das richtig sehe, dann wäre für ein Modul die Nutzung von SubProzess notwendig, da der Stream ja kontinuierlich empfangen werden muss, um kein Event zu verlieren. Das scheint mir alles andere als trivial. Gibt es ne gute Möglichkeit solche Entwicklungen zu machen und zu testen? Vorzugsweise IDE auf dem Mac :)
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

Tomk

Hallo distel,

das hört sich doch schon mal gut an... zumindest ein erster Schritt. Ich bin auch weiterhin sehr interessiert an einer Lösung, kann aber wahrscheinlich wenig dazu beitragen. Halt mich/uns auf dem laufenenden!

Danke!

distel

Hallo,

ich werde nicht weiter in die Implementierung eines fhem-Modules investieren. Ich habe im Netz "hiki" https://github.com/refinitive/hiki gefunden. Das basiert auf node.js. hiki läuft separat (auch als Docker-Container) und bietet zudem die Möglichkeit, gleich auch eine Aufzeichnung zu starten. Die Implementierung ist etwas "rudimentär", dafür aber auch simpel genug, um es schnell zu verstehen.

Für meine Bedürfnisse sind noch ein paar Anpassungen notwendig (z.B. Unterstützung des Line-Crossing Alarms). Mal schauen, ob ich forke oder versuche es im Original unterzubringen.


Gruß Dirk

PS: bei Start und Ende eines Events kann man ein Shell-Commando absetzen lassen, über dass man dann fhem triggern kann.
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

Hallo Distel,

möchte auch die Bewegungserkennung meiner HikvisionCam in Fhem verwenden...habe auch schon verschiedenstes probiert aber es scheint nur mit mit der alertStream Url zu laufen >:(
Wie hast du das nun Umgesetzt?




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

EinEinfach

Habe auch eine Hikvision + fhem auf einem RPI.
Meine Lösung der Bewegungsüberwachung ist:
- Auf dem RPI läuft ein FTP-Server
- Beim Triggern eines Events lädt die Hikvision Bilder auf den FTP Server hoch
- FHEM überwacht, ob es was neues in dem FTP-Ordner gibt, kommt ein neues Bild dazu so löst ein DOIF aus mit einer entsprechenden Meldung per Telegramm + JPEG aus.
- DOIF wird nur Nachts und wenn niemand zu Hause ist aktiviert.

Größtenteils nach dieser Anleitung umgesetzt:
https://haus-automatisierung.com/hardware/fhem/2016/07/14/fhem-tutorial-reihe-part-11-benachrichtigung-mit-bild-bei-bewegung.html

Gruß
Alexander
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

mani

Hallo Alexander,

Jop das hört sich ja schon gut an :)

Würde das auch gehen wenn der zu überwachen de Ordner auf einem NAS liegt?


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

EinEinfach

ZitatWürde das auch gehen wenn der zu überwachen de Ordner auf einem NAS liegt

Ich denke schon.
fhem auf Intel NUC6CAYH mit Proxmox im LXC (Debian 10), KNX mit knxd über MDT SCN-IP000.02, Buderus GB192-15i über KM100, Solaredge WR SE9K über Modbus-TCP

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

Tomk

Ja, mounten hat bei inotify nichts geändert - klappt nicht.


Gesendet von iPad mit Tapatalk

mani

Hallo @Dirk könnt ich das  so machen:

docker run -it alpine /bin/sh
cat /etc/issue
# Ergebnis: Welcome to Alpine Linux 3.6
exit
oder gibt es dann  Probleme mit dem vorhanden Image...

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

mani

Hallo,

weis jemand ob die Docker-Variante mit dem Jessie Betriebssystem funktioniert. bzw wie muss ich richtigerweise vorgehen damit ich hiki zum laufen bekomme?

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

distel

Zitat von: mani am 11 November 2017, 13:25:57
Ok was kann ich nun machen?Kann ich Alpine einfach nach installieren?
Du musst nichts installieren. Du brauchst aber ein Basis-Image für das zu bauende Docker-Image, das auf dem RasPi (=ARM) läuft. im aktuellen Docker-file liegt Alpine (=I386 ?) zugrunde.

Z.B. (ohne weitere Test und nach kurzer Recherche) dies könnte helfen:
https://hub.docker.com/r/resin/raspberrypi3-node/
https://hub.docker.com/r/hypriot/rpi-node/

Im Dockerfile also die Zeile "FROM node:alpine" entsprechend so anpassen, dass dort eines der o.g. oder ein ganz anderes Image verwendet wird.
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

Hallo,....Danke für die Hilfe @Dirk, Docker schaff ich nicht  :-[nach 1000 versuchen.

Habe das gefunden: https://github.com/mezz64/pyHik

Und bin wieder am probieren :-\

Mfg Mani




Mfg Mani

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

mani

Hallo @Dirk,

hab es nun doch zum laufen :) gebracht aber ohne Docker......... :o

1. nach einer Bewegungserkennung bricht das Skript ab ist das normal?
2.wie muss das postStartCommand aussehen so?(sudo bash /opt/fhem/cam.sh)


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

distel

Zitat von: mani am 18 November 2017, 09:14:21
1. nach einer Bewegungserkennung bricht das Skript ab ist das normal?
2.wie muss das postStartCommand aussehen so?(sudo bash /opt/fhem/cam.sh)
1. Das Script? Also 'hiki' läuft bei mir durchgehend.
2. Hab die Commands (noch) nicht eingerichtet, würde aber alles in ein Script packen und hier nur eben dieses aufrufen. Grad sudo könnte da aber das Passwort wissen wollen, was wohl eher schlecht in der Automation ist.
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

mani

ok, sobald eine Bewegung erkannt wird sieht es so aus

Started playing session
Receiving streamed data (signal with "kill -HUP 3164" or "kill -USR1 3164" to terminate)...
100  115k  100  115k    0     0   273k      0 --:--:-- --:--:-- --:--:--  273k
20171118_0946_12: TypeError: Cannot read property 'VideoMotion1' of undefined
20171118_0946_12: CLOSING [exit]
20171118_0946_12: Stopping driveway - constant
Got shutdown signal
Sending request: TEARDOWN rtsp://admin:1234@10.0.0.xx/Streaming/channels/101/ RTSP/1.0
CSeq: 5
User-Agent: /usr/bin/openRTSP (LIVE555 Streaming Media v2014.01.13)
Session:12345678


irgendwo passt da wohl was nicht? ??? liegt es event an openRTSP
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

mani

So hatte gestern in  "node-hikvision-api Hikvision.js"
var self =this
in den ersten Zeilen eingefügt...da ich immer ich immer den Fehler bekam Self ist nicht definiert.

Nun hab ich dies wieder entfernt, und jetzt wird ein Foto gespeichert und es bricht sofort ab  :'(

sieht so aus:
tup "video/H264" subsession (client ports 53090-53091)
Outputting to the file: "stdout"
Sending request: PLAY rtsp://admin:123456@10.0.0.xx/Streaming/channels/101/ RTSP/1.0
CSeq: 4
User-Agent: /usr/bin/openRTSP (LIVE555 Streaming Media v2014.01.13)
Session: 123456789
Range: npt=50.000-


20171118_1001_40: ReferenceError: self is not defined
20171118_1001_40: CLOSING [exit]
20171118_1001_40: Stopping driveway - constant
Got shutdown signal
20171118_1001_40: Stopping curl on driveway - constant
Sending request: TEARDOWN rtsp://admin:12345@10.0.0.xx/Streaming/channels/101/ RTSP/1.0
CSeq: 5
User-Agent: /usr/bin/openRTSP (LIVE555 Streaming Media v2014.01.13)
Session: 12345678


wieder da self is not definiert was bedeutet das wo kann ich self definieren ?


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

mani

@Dirk welche nodejs Version verwendest du?
RasPi B+,Onkyo_AVR,Luxtronik2,Logo7,Mpd,Arduino Uno mit Ethernet,KNX,Jablotron

mani

Hallo, mittlerweile habe ich es geschafft  :D  aber ohne Docker..... nun kann ich bei Bewegungserkennung einen Befehl an Fhem schicken=>bei Bewegungserkennung geht ein Popup im Tablet ui auf mit einem 20 sec Stream... ;).
Jetzt würde ich noch gerne vom Tablet ui aus auf die gespeicherten Videos zugreifen hat da event. jemand einen Lösungsvorschlag?


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

stefan123

Zitat von: mani am 22 November 2017, 21:02:09
Hallo, mittlerweile habe ich es geschafft  :D  aber ohne Docker..... nun kann ich bei Bewegungserkennung einen Befehl an Fhem schicken...

Hallo mani,
bin seit einigen Tagen auch stolzer Besitzer zweier Hikvision-Kameras :-)
Kannst du nähere Infos geben, wie genau du die Integration des Kamera-Alarms in FHEM umgesetzt hast?

Viele Grüße
Stefan
Raspi mit FHEM 5.7, Gas- + Stromzähler, Temperaturfühler,  SamsungTV, Fritzbox, Zehnder ComfoAir 350