Das rege Interesse freut mich sehr, danke!
Update:
Zusätzlich zur bisherigen Definition können nun <username> <passwort> für ZM hinterlegt werden.
Damit kann sich fhem an der API anmelden, um weitere parameter wie ZM_AUTH_HASH_SECRET oder ZMS_PATH auszulesen.
define zm ZoneMinder 192.168.4.200 zmuser zmpass
Das ZoneMinder device hat in der Detail-Ansicht oben nun einen Link zum direkten Öffnen des ZoneMinder UI.
Außerdem kann man danach noch optional einen weitern Parameter für die Web-URL eintragen, sollte das ZM-Web-UI nicht über
http://hostname/zm erreichbar sein. Beispiel:
define zm ZoneMinder 192.168.4.200 zmuser zmpass https://192.168.4.200/myzoneminder
Das ist wichtig, damit sich das Modul an der ZoneMinder API anmelden kann.
Falls es nicht funktioniert, sollte in den Internals ein HTTP-Code stehen.
Im ZM_Monitor Device sollte nun außerdem der live-stream sichtbar sein.
Wahrscheinlich wird dieser aber nur im LAN verfügbar sein (außer, man hätte beim Anlegen des devices eine public IP angegeben). Deshalb kann man hier nun ein Attribut definieren.
Beispiel:
attr ZM_Monitor_5 streamUrl https://my.comain.com:8443/
Daran wird dann der Wert aus ZMS_PATH angehängt.
Außerdem wird der Live-Stream mit dem auth-hash gebildet, nicht mit username und passwort. kann also eigentlich ohne bedenken auch nach außen gegeben werden, ohne dass credentials sichtbar wären. somit ist diese URL maximal 2h gültig.
Das ganze sollte funktionieren, wenn username und passwort vergeben werden.
Hab's ohne jetzt offen gestanden noch nicht getestet. Könnte sein, dass da noch ein- zwei Fehlermeldungen im Log auftauchen.
Die drei hier dokumentierten zusätzlichen Parameter funktionieren bei mir aber soweit ganz gut.
Aber wie gesagt: rechnet damit, dass die Fallbacks bei falschen Parametern noch nicht ganz so einwandfrei arbeiten :-)
bei Problemen bitte Log-outputs bzw
list <zm-device-name>
oder
list zm_monitor-device-name
posten.
Achja: und man benötigt jetzt zwei Crypto libs, damit die Hashes für den Auth-Hash direkt berechnet werden können.
Eine, um den mysql-passwort hash aus dem passwort zu berechnen. der fließt in den auth-hash ein.
und die zweite crypto-lib berechnet den auth-hash selber.
Der Code ist jetzt noch sehr unordentlich, ich hab noch weitere halb-fertige Dinge drin und haufenweise auskommentierten Code.
Mir ist es jetzt aber wichtiger, schnelles Feedback zu kriegen, als super sauber zu arbeiten.
Wenn ich wieder ein paar Stunden am Stück Zeit habe, lege ich das dann in GitHub ab, ganz klar.
schöne grüße
martin