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:
Hinzufügen Ihrer INSTAR 2k+ WQHD-Kamera
Öffnen Sie das Server Menü und klicken Sie auf , um ein neues Gerät hinzuzufügen:
Wählen Sie einen Anzeigeplatz:
Hier können Sie ein neues Gerät hinzufügen - wählen Sie dazu eine neue Videoquelle:
Konfigurieren Sie die Videoquelle entsprechend Ihren Anforderungen:
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:
Der DVR-Agent benötigt Ihr Kamera-Login sowie die RTSP-URL Ihrer Kamera:
- HD Kameras:
rtsp://user:password@192.168.x.x:/[11-13]
- Full HD Kameras:
rtsp://user:password@192.168.x.x:/[11-13]
- WQHD Kameras:
rtsp://user:password@192.168.x.x:/livestream[11-13]
Konfigurieren Sie die Videoquelle entsprechend Ihren Anforderungen:
Schließen Sie das Konfigurationsmenü und überprüfen Sie, ob der Videostream hinzugefügt wurde:
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:
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:
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:
Nun zum Hinzufügen Ihres MQTT-Brokers - öffnen Sie die Software Einstellungen:
Wechseln Sie auf den MQTT Reiter:
Und fügen Sie die Adresse und das Login aus dem MQTT Broker Ihrer Kamera hinzu.:
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: