iSpy Agent DVR in Docker

Agent DVR - Agent DVR ist ein eigenständiger Ersatz für iSpy, der als Dienst läuft, weniger CPU verbraucht und über eine Web-Benutzeroberfläche verfügt, die von überall aus zugänglich ist, ohne dass eine Portweiterleitung erforderlich ist!

Der DVR Agent betreibt einen eigenen Webserver. Standardmäßig läuft dieser unter http://localhost:8090 auf dem PC, auf dem DVR Agent läuft (obwohl er möglicherweise einen anderen Port verwendet, wenn dieser nicht verfügbar war oder bei der Installation geändert wurde). Der DVR Agent funktioniert auch über Ihr lokales Netzwerk - Sie können private IP-Adressen oder Computernamen verwenden, um lokal auf Agent zuzugreifen (Beispiele: http://192.168.1.10:8090). Möglicherweise müssen Sie Ihre Firewall für Agent für Ihr lokales Netzwerk öffnen.

Einrichtung

Sie müssen Docker installiert haben, bevor Sie mit dieser Anleitung fortfahren.

Sie können das Docker Image erstellen, indem Sie dieses Github Repository klonen und den folgenden Befehl aus dem Verzeichnis heraus ausführen:

git clone https://github.com/mpolinowski/agent-dvr-docker.git && cd agent-dvr-docker
docker build -t agent-dvr .

Um die im laufenden Container erzeugten Daten später aufzubewahren, müssen wir 3 Verzeichnisse auf dem Hostsystem anlegen (den Ort können Sie frei wählen - Sie müssen jedoch den unten stehenden RUN-Befehl entsprechend anpassen):

sudo mkdir -p /opt/dvr-agent/{config,media,commands}
sudo chown -R myuser /opt/dvr-agent/*

Sie müssen den Port 8090 für die Web-Benutzeroberfläche freigeben. Die Ports 3478 (STUN) und 50000 - 50010 (TURN) werden für die webRTC-Videoverbindung benötigt:

docker run -it -p 8090:8090 -p 3478:3478/udp -p 50000-50010:50000-50010/udp \
-v /opt/dvr-agent/config/:/agent/Media/XML/ \
-v /opt/dvr-agent/media/:/agent/Media/WebServerRoot/Media/ \
-v /opt/dvr-agent/commands:/agent/Commands/ \
-e TZ=Europe/Berlin \
--name agent-dvr agent-dvr:latest

Dieser Befehl führt den an Ihr Terminal angebundenen Containerprozess aus und ermöglicht es Ihnen, eventuelle Fehlermeldungen zu erkennen. Um den Container im Hintergrund laufen zu lassen und sicherzustellen, dass er bei Bedarf automatisch neu gestartet wird, verwenden Sie den folgenden Befehl:

docker run --restart=unless-stopped -d -p 8090:8090 -p 3478:3478/udp -p 50000-50010:50000-50010/udp \
-v /opt/dvr-agent/config/:/agent/Media/XML/ \
-v /opt/dvr-agent/media/:/agent/Media/WebServerRoot/Media/ \
-v /opt/dvr-agent/commands:/agent/Commands/ \
-e TZ=Europe/Berlin \
--name agent-dvr agent-dvr:latest

Sie können den, im Hintergrund laufenden, Container im Anschluß mit dem folgenden Befehl beenden:

docker rm -f agent-dvr

Sie können die WebUI in Ihrem Browser auf http://localhost:8090 aufrufen und dem DVR Agenten den Zugriff auf Ihre Mediengeräte erlauben:

iSpy Agent DVR in Docker

Hinzufügen Ihrer INSTAR 2k+ WQHD-Kamera

Öffnen Sie das Server Menü und klicken Sie auf , um ein neues Gerät hinzuzufügen:

iSpy Agent DVR in Docker

Wählen Sie einen Anzeigeplatz:

iSpy Agent DVR in Docker

Hier können Sie ein neues Gerät hinzufügen - wählen Sie dazu eine neue Videoquelle:

iSpy Agent DVR in Docker

Konfigurieren Sie die Videoquelle entsprechend Ihren Anforderungen:

iSpy Agent DVR in Docker

Geben Sie Ihrer Videoquelle einen Namen und ordnen Sie sie einem Standort und einer _Gruppe zu. Wählen Sie als Quellentyp eine IP-Kamera und klicken Sie auf die _drei Punkte, um sie zu konfigurieren:

iSpy Agent DVR in Docker

Der DVR-Agent benötigt Ihr Kamera-Login sowie die RTSP-URL Ihrer Kamera:

iSpy Agent DVR in Docker

Konfigurieren Sie die Videoquelle entsprechend Ihren Anforderungen:

iSpy Agent DVR in Docker

Schließen Sie das Konfigurationsmenü und überprüfen Sie, ob der Videostream hinzugefügt wurde:

iSpy Agent DVR in Docker

Hinzufügen MQTT Ereignissen

Der DVR-Agent kann mit einem MQTT-Broker in Ihrem Netzwerk verbunden werden, um MQTT-Topics im Falle einer Vielzahl von Ereignissen zu aktualisieren. Ein Beispiel ist das Senden einer Alarmbenachrichtigung, wenn eine Bewegung im Live-Stream Ihrer Kamera erkannt wurde. Sie können diese Option in Ihrer Kamerakonfiguration aktivieren:

iSpy Agent DVR in Docker

Um jedoch Updates senden zu können, müssen wir den Agenten zunächst mit unserem MQTT-Broker verbinden - zum Beispiel mit dem INSTAR MQTT Broker auf Ihrer Kamera. Wechseln Sie dazu zunächst zum Konfigurationsreiter Aktionen (siehe Bild oben) und fügen Sie eine MQTT Aktion für Ihre Kamera hinzu:

iSpy Agent DVR in Docker

Im folgenden Beispiel weisen wir den Agenten an, im Falle eines Alarms ein MQTT-Topic zu aktualisieren. Und einen base64-kodierten Schnappschuss Ihrer Kamera als Payload zu verwenden - dieses Bild kann dann in eine Webseite eingebettet werden (z. B. in das Dashboard Ihres Smarthomes), so dass jedes Mal, wenn ein Alarm ausgelöst wird, ein frischer Schnappschuss von Ihrer Kamera angezeigt wird:

iSpy Agent DVR in Docker

Nun zum Hinzufügen Ihres MQTT-Brokers - öffnen Sie die Software Einstellungen:

iSpy Agent DVR in Docker

Wechseln Sie auf den MQTT Reiter:

iSpy Agent DVR in Docker

Und fügen Sie die Adresse und das Login aus dem MQTT Broker Ihrer Kamera hinzu.:

iSpy Agent DVR in Docker

Jetzt erhalten Sie jedes Mal, wenn ein Alarm ausgelöst wird, zusätzlich ein MQTT-Update über das konfigurierte Topic und den base64-kodierten Snapshot des potenziellen Eindringlings:

iSpy Agent DVR in Docker