Frage: Einbindung zoneminder

Begonnen von deune, 02 März 2015, 17:41:16

Vorheriges Thema - Nächstes Thema

Florie

Ich denke, es liegt wohl an der ZM-Version und/oder an PHP 7.2. PHP 7.2 ist halt bei Ubuntu 18.04 LTS dabei, ZM wollte ich die
neuere Version wegen Multiport. Wenn ich irgendetwas testen soll/kann, lass es mich wissen. Eine Passowrtänderung auf ein Passwort ohne Sonderzeichen hat es auf jeden Fall nicht lösen können.

delMar

Zitat von: Florie am 01 September 2018, 13:23:44
Ich denke, es liegt wohl an der ZM-Version
Ja.
Ich hab gerade die ZoneMinder Doku durchgeschaut und auch tatsächlich Info über API Login nach 1.30 gefunden. (bisher hatte ich immer nur die Doku vom Stable branch gelesen).
Ich werd mal Blind was implementieren und dir über den Zaun werfen :-)
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

delMar

So: probier mal bitte den letzten Stand von 70_ZoneMinder.pm auf GitHub.
Zuerst wird der bisherige Login probiert. wenn der mit 'invalid username/password' fehlschlägt (wie von dir angegeben), sollte der 'neue' login probiert werden.
list <zm-device-name>
listet nun auch ein weiteres internal:
ZM_LOGIN_METHOD
welches in deinem Fall dann den Wert 'new' haben sollte.

Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Florie

Jetzt kommt das hier:

Internals:
   APILoginStatus 404
   CFGFN     
   DEF        192.168.XXX.XXX admin XXX%
   DeviceName 192.168.XXX.XXX:6802
   HTTPCookies ZMSESSID=k4bvcqXXXn2f4pcplc
   NAME       zm
   NEXT_OPEN  1535802944
   NR         271
   PARTIAL   
   STATE      disconnected
   TYPE       ZoneMinder
   HTTPCookieHash:
     ZMSESSID:
       Options    expires=Sat, 01-Sep-2018 15:54:44 GMT; Max-Age=14400; path=/; HttpOnly
       Value      k4bvcqXXXn2f4pcplc
   READINGS:
     2018-09-01 13:54:44   ZMConsoleUrl    http://192.168.XXX.XXX/zm/index.php?username=admin&password=XXX%25&action=login&view=console
     2018-09-01 13:54:44   state           disconnected
   helper:
     ZM_AUTH_HASH_SECRET     
     ZM_AUTH_KEY XXX
     ZM_HOST    192.168.XXX.XXX
     ZM_LOGIN_METHOD new
     ZM_PASSWORD XXX%
     ZM_PATH_ZMS             
     ZM_USERNAME admin
     ZM_WEB_URL http://192.168.XXX.XXX/zm
Attributes:
   DbLogExclude .*



Ich meine das ZMSESSID hatte ich davor nicht. Method steht auf jeden Fall auf new

Florie

Wenn ich Deinen github-Code lese, will er ja mit der neuen Methode auf:

http://192.168.xxx.xxx/zm/api/login.json?user=admin&pass=XXX%

Wenn ich das im Browser so eingebe kommt:



code 404
name "Controller class LoginController could not be found."
message "Controller class LoginController could not be found."
url "/zm/api/login.json?user=admin&amp;pass=XXX%25"


Bei http://192.168.xxx.xxx/zm/index.php?username=admin&password=XXX%25&action=login&view=console hatte er aber direkt die Konsole geöffnet ...

delMar

Der neue Login ist hier dokumentiert: https://zoneminder.readthedocs.io/en/latest/api.html#login-logout-api-security

Würde deiner Meinung nach die neue Login-URL grunsätzlich der Doku entsprechen?

"/zm/api/login.json?user=admin&amp;pass=XXX%25"
gefällt mir übrigens nicht. statt &amp; dürfte da nur & stehen.
copy/paste fehler?
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

delMar

Könntest du bitte auch mal den Output von
zm/api/host/getVersion.json
posten?

Danke!
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Florie

Zitat von: delmar am 01 September 2018, 14:15:52
Der neue Login ist hier dokumentiert: https://zoneminder.readthedocs.io/en/latest/api.html#login-logout-api-security

Würde deiner Meinung nach die neue Login-URL grunsätzlich der Doku entsprechen?

"/zm/api/login.json?user=admin&amp;pass=XXX%25"
gefällt mir übrigens nicht. statt &amp; dürfte da nur & stehen.
copy/paste fehler?

Also, wenn ich von nem Linux Terminal, wie in der Doku curl -XPOST -d "user=admin&pass=XXX%" -c cookies.txt  http://192.168.XXX.XXX/zm/api/login.json mache, kommt auch wieder nur
{
    "code": 404,
    "name": "Controller class LoginController could not be found.",
    "message": "Controller class LoginController could not be found.",
    "url": "\/zm\/api\/login.json"


&amp; gibt Firefox und Edge so jeweils zurück ...

Florie

Zitat von: delmar am 01 September 2018, 14:37:43
Könntest du bitte auch mal den Output von
zm/api/host/getVersion.json
posten?

Danke!

http://192.168.xxx.xxx/zm/api/host/getVersion.json?user=admin&pass=XXX% geht dann lustigerweise und er gibt das hier richtig aus:

{
    "version": "1.31.47",
    "apiversion": "1.0"
}


Hier übergibt er also richtig User und Pass (davor ohne User und Pass im URL probiert, da kommt dann eine not authenticated Meldung) ...

delMar

kannst du den API login mal mit curl laut der ZM doku die ich verlinkt habe versuchen?
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Florie

hier hatte ich das mit curl gemacht, mit der Anleitung für 1.32 and above (wobei ich ja erst bei 1.31 bin ...

Zitat von: Florie am 01 September 2018, 15:27:11
Also, wenn ich von nem Linux Terminal, wie in der Doku curl -XPOST -d "user=admin&pass=XXX%" -c cookies.txt  http://192.168.XXX.XXX/zm/api/login.json mache, kommt auch wieder nur
{
    "code": 404,
    "name": "Controller class LoginController could not be found.",
    "message": "Controller class LoginController could not be found.",
    "url": "\/zm\/api\/login.json"


&amp; gibt Firefox und Edge so jeweils zurück ...


Bei der Anleitung für "older versions":

curl -d "username=admin&password=XXX%&action=login&view=console" -c cookies.txt  http://192.168.xxx.xxx/zm/index.php

gibt nur eine leere Zeile zurück?!?

delMar

wenns mit curl auch nicht funkt, dann passt bei ZM was nicht.
wohl doch ein CakePHP thema oder was ähnliches...
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

delMar

Hallo Zusammen!

Neues Update auf GitHub.
Function und Enabled können nun von der ZM_Monitor Detailseite aus gesetzt werden.
Somit kann man nun das gewünschte Recording-Verhalten von FHEM aus setzen.

Die Konfigurationen der Kameras werden außerdem minütlich von ZM geholt (den Intervall mach ich später noch konfigurierbar).
Über das ZoneMinder Device kann man auch jederzeit 'get updateMonitors' aufrufen, falls man Änderungen sofort aus ZM holen will.

Als nächstes werde ich mich um die Doku für commandref und eine Wiki-Seite kümmern.
Außerdem das Log-File säubern, etc.

Weitere Features wären dann aus meiner Sicht noch
* Bereitstellen von URLs für einzelne Images von Events (so wie die streamUrl). Das braucht man, um zB über PushOver ein aktuelles Kamerabild zu verschicken.
* Manuelles triggern eines Alarms in ZM von FHEM aus
Bin natürlich für weitere Feature-Vorschläge offen

schöne Grüße
Martin
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.

Florian_GT

Zitat von: delmar am 02 September 2018, 12:02:10
Hallo Zusammen!

Neues Update auf GitHub.
Function und Enabled können nun von der ZM_Monitor Detailseite aus gesetzt werden.
Somit kann man nun das gewünschte Recording-Verhalten von FHEM aus setzen.

Die Konfigurationen der Kameras werden außerdem minütlich von ZM geholt (den Intervall mach ich später noch konfigurierbar).
Über das ZoneMinder Device kann man auch jederzeit 'get updateMonitors' aufrufen, falls man Änderungen sofort aus ZM holen will.

Als nächstes werde ich mich um die Doku für commandref und eine Wiki-Seite kümmern.
Außerdem das Log-File säubern, etc.

Weitere Features wären dann aus meiner Sicht noch
* Bereitstellen von URLs für einzelne Images von Events (so wie die streamUrl). Das braucht man, um zB über PushOver ein aktuelles Kamerabild zu verschicken.
* Manuelles triggern eines Alarms in ZM von FHEM aus
Bin natürlich für weitere Feature-Vorschläge offen

schöne Grüße
Martin

Wenn ein Event geschrieben wird, Info in Fhem, und dann ein Download des Events. z.B. Image(s) bzw. Video, dass mann dann z.B. per Telegram bekommt :D
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

delMar

Hab begonnen, das Modul im Wiki zu dokumentieren.
viel steht noch nicht drin, aber das wird hoffentlich schnell besser :)
https://wiki.fhem.de/wiki/ZoneMinder
Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.