ZoneMinder: Unterschied zwischen den Versionen
DelMar (Diskussion | Beiträge) K (Alarm setzen dokumentiert) |
DelMar (Diskussion | Beiträge) K (tippfehler beseitigt) |
||
Zeile 71: | Zeile 71: | ||
=== Auth Hash === | === Auth Hash === | ||
Um nicht username und Password öffentlich sichtbar machen zu müssen, bietet ZoneMinder auch das Sicherheitskonzept des Auth-Hash. | Um nicht username und Password öffentlich sichtbar machen zu müssen, bietet ZoneMinder auch das Sicherheitskonzept des Auth-Hash. | ||
Wenn | Wenn FHEM erkennt, dass in ZoneMinder <code>AUTH_HASH_SECRET</code> und <code>AUTH_HASH_LOGINS</code> konfiguriert sind, wird der Auth-Hash errechnet. Für public streaming URLs wird dann automatisch der Auth-Hash anstatt Username und Passwort verwendet. | ||
Somit kann die URL auch nach außen gegeben werden. | Somit kann die URL auch nach außen gegeben werden. | ||
Wie vorher erwähnt, wird diese nach maximal zwei Stunden ungültig. | Wie vorher erwähnt, wird diese nach maximal zwei Stunden ungültig. |
Version vom 23. September 2018, 12:46 Uhr
ZoneMinder | |
---|---|
Zweck / Funktion | |
Integration mit Events und Kamerasteuerung der ZoneMinder API | |
Allgemein | |
Typ | Inoffiziell |
Details | |
Dokumentation | Thema |
Modulname | 70_ZoneMinder.pm |
Ersteller | DelMar |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
ZoneMinder ist eine OpenSource Video-Überwachungssoftware. Das modulare Konzept ermöglicht die Integration von Kameras aller Art (IP, Analog, ...) und bietet Bewegungserkennung, verschiedene Aufnahmemodi und Alarmierung.
Mehr Informationen zu Features findet man auf zoneminder.com, Informationen zur hier angebundenen API gibt es auf zoneminder.readthedocs.io.
Hinweise zum Betrieb mit FHEM
ZoneMinder bietet mehrere Arten der Integration, die einzeln in den Optionen aktiviert werden müssen. In der original Doku werden Kameras als Monitor bezeichnet.
Alerting
Wenn ZoneMinder Bewegungen erkennt, wird die jeweilige Kamera für bestimmte Zeit in den Alarm-Modus versetzt. Damit auch andere Anwendungen diesen Alarmzustand auswerten können, muss in den Optionen im Tab System die Option OPT_TRIGGERS aktiviert werden. Rein technisch öffnet ZoneMinder mit dieser Option den TCP-Port 6802, zu welchem sich FHEM verbindet und unmittelbar über neue Ereignisse informiert wird. Das ZoneMinder-Wiki enthält detailierte Informationen dazu.
Aufzeichnung und Bewegungserkennung
Kameras in ZoneMinder kennen unterschiedliche Betriebsarten (Quelle):
- None – Die Kamera ist deaktiviert. Streaming, Bewegungserkennung, Aufzeichnung und Alerting sind nicht möglich.
- Monitor – Die Kamera wird nur für Live-Streaming verwendet. Bewegungserkennung, Aufzeichnung und Alerting sind nicht möglich.
- Modect – steht für MOtion DEteCTtion. Sobald eine Bewegung erkannt wird, wird ein Event generiert und die Aufzeichnung gestartet.
- Record – Das Kamerabild wird kontinuierlich aufgezeichnet. Dieser Modus kennt keine Bewegungserkennung.
- Mocord – Das Kamerabild wird kontinuierlich aufgezeichnet. Bewegungen werden innerhalb der Aufnahme als Events markiert.
- Nodect – steht für No DEteCTtion. Dieser Modus wurde für externe Trigger eingeführt. Es erfolgt keine Bewegungserkennung, die Aufzeichnung kann aber durch externe Trigger gestartet werden. Dies könnten eigene Bewegungsmelder sein, oder aber auch FHEM (Trigger an ZoneMinder zb über
set ZM_Monitor_xyz Alarm on|off|on-for-timer <sekunden>
).
Daneben kann pro Kamera die Bewegungserkennung auch noch explizit aktiviert und deaktiviert werden. Der Begriff Enabled/disabled kann hier irreführend sein, da nicht die Kamera als solche, sondern nur die Bewegungserkennung betroffen ist. Um eine Kamera zu deaktivieren, muss der Betriebsmodus auf None gestellt werden.
Einbindung in FHEM
Das FHEM Modul kann in drei Ausbaustufen verwendet werden.
Events und Alerting
Mit folgender definition wird nur das weitergeben von Events nach ZM aktiviert:
define zm ZoneMinder <ZM-Host>
Beispiel
define zm ZoneMinder 192.168.1.1
Diese IP wird - wie oben beschrieben - verwendet, um den Event-Port von ZoneMinder zu öffnen. In den ZoneMinder Optionen muss hierfür ZM_TRIGGERS aktiv sein.
Kameramodi
Um Kamera-Modi in FHEM verändern und auslesen zu können, muss auf die ZoneMinder-API zugegriffen werden. Die Authentifizierung hierfür besteht (noch) aus username und password. Aus Sicherheitsgründen bietet es sich evtl an, einen eigenen User für FHEM einzurichten, der nur die nötigen Rechte hat.
define zm ZoneMinder <ZM-Host> <ZM-Username> <ZM-Password>
Bitte beachten: Der API-Login nach ZoneMinder 1.30.x ist unterschiedlich und wird derzeit noch nicht unterstützt.
Mit diesen Parametern kann außerdem direkt von ZoneMinder nach FHEM gestreamt werden und das Reading streamUrl
wird verfügbar.
Wichtig: diese Stream-URL enthält username und password als GET-Parameter. Diese sind also in der URL sichtbar, was tatsächlich ein Sicherheitsproblem darstellt.
Damit die API verwendet werden kann, muss in den ZoneMinder Optionen OPT_USE_API
aktiviert sein.
Public Streaming-URLs
Hierfür muss als Attribut eine öffentlich erreichbare Adresse für ZoneMinder angegeben werden:
attr zm pubStreamUrl https://my.home.server.net:8043
Damit wird neben streamUrl
auch noch ein Reading pubStreamUrl
erzeugt.
Für dieses Reading wird das eben angegebene Attribut mit dem Wert PATH_ZMS
aus der ZoneMinder Konfiguration kombiniert.
Auth Hash
Um nicht username und Password öffentlich sichtbar machen zu müssen, bietet ZoneMinder auch das Sicherheitskonzept des Auth-Hash.
Wenn FHEM erkennt, dass in ZoneMinder AUTH_HASH_SECRET
und AUTH_HASH_LOGINS
konfiguriert sind, wird der Auth-Hash errechnet. Für public streaming URLs wird dann automatisch der Auth-Hash anstatt Username und Passwort verwendet.
Somit kann die URL auch nach außen gegeben werden.
Wie vorher erwähnt, wird diese nach maximal zwei Stunden ungültig.
Für den Login wird der Auth-Hash übrigens nicht akzeptiert, dh man kann maximal für zwei Stunden den Stream sehen, aber er berechtigt nicht zum Verändern von Werten.
Das FHEM-ZoneMinder Modul errechnet den Auth-Hash jede Stunde neu, somit sollten die Readings immer einen gültigen Hash liefern.
Bitte beachten, dass das Einbeziehen der IP für den Auth-Hash derzeit nicht unterstützt wird.
Link zur ZoneMinder Console
Das ZoneMinder Device zeigt ganz oben einen Link zur ZoneMinder Console (dem Web UI) an. Wenn dieser Link auch von Außen einen gültigen Link darstellen soll (also außerhalb des Heim-Netzwerks), kann als weiterer Parameter bei der Definition die öffentliche ZoneMinder Web-URL angegeben werden:
define zm ZoneMinder <ZM-Host> <ZM-Username> <ZM-Password> <ZM-Web-URL>
Beispiel:
define zm ZoneMinder 192.168.1.1 FHEM-API mySecurePassword https://my.secret.server.net:8431/zm
Diese URL wird einfach mit username und password als Parameter verlinkt und in einem neuen Fenster geöffnet. Wer will, kann so bequem von FHEM aus nach ZoneMinder wechseln.
Installation des Moduls
Das Modul ist auf GitHub zum Download verfügbar. Das grunsätzliche Setup sollte hier ausreichend beschrieben sein. Weitere Hintergrund-Infos finden sich außerdem noch im Forum.
Unterstützte ZoneMinder Version
Derzeit wird von diesem Modul nur ZoneMinder 1.30.x unterstützt. Spätere Versionen arbeiten mit einem neuen API-Login Mechanismus, der bisher nicht erfolgreich getestet werden konnte. Das Triggern von Events über den Trigger-Port sollte aber auch mit späteren Versionen von ZoneMinder funktionieren.