Neues Modul: 70_ZoneMinder, 71_ZM_Monitor

Begonnen von delMar, 07 Oktober 2018, 18:45:04

Vorheriges Thema - Nächstes Thema

Brause

Guten Abend

Neugestartet hatte ich FHEM.
In den Einstellungen vom ZM finde ich keine Option "PATH_ZMS".

Ich habe aber gerade nochmal die Attribute im ZoneMinder mit meinen geposteten verglichen.
"usePublicUrlForZmWeb" steht jetzt auf 0, eventuell war die nicht gespeichert beim Neustart.

Gruss Brause

delMar

Zitat von: Brause am 07 April 2019, 18:52:43
In den Einstellungen vom ZM finde ich keine Option "PATH_ZMS".
Also in 1.30.x war es unter Options -> Paths
Beispiel für einen Wert wäre: /zm/cgi-bin/nph-zms
Es kann aber sein, dass das mit den neuen Streaming Varianten aus Version 1.32.x nicht mehr nötig ist.
Dieser Wert ist nämlich Teil des Streaming-Pfades und ich glaube es ist genau Dieser, der nur aus Leerzeichen bestanden hatte und somit deinen Pfad kaputt gemacht hat.

Ich werde da jedenfalls ein Auge drauf haben.
Wir wohl bis Ende der Woche dauern, bis ich eine neue Version rausgebe

Abschlussfrage: für dich funktioniert die Beta jetzt also so gut, dass du sie auch tatsächlich einsetzen kannst?

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.

Brause

Bei mir gibt es in den ZM-Einstellungen nichtmal eine Gruppe Paths.


Ne also bei mir läuft die "Beta". Habe keine weiteren Auffälligkeiten festgestellt.

Gruss Brause

antonwinden

Wie werde ich die Meldungen disconnected - connected los? verbose 0 bringt leider auch nichts.
Zoneminder funktioniert bzw. kann ich die Kameras auf scharf/unscharf schalten je nach Anwesenheit/Zeit
Zoneminder ist Version 1.32.3

Internals:
   APILoginStatus 200
   DEF        192.168.1.10:9080 XXX XXX
   DeviceName 192.168.1.10:9080
   FD         24
   FUUID      5cacec73-f33f-d934-7edc-6f0ae5c53850af6b
   HTTPCookies ZMSESSID=qc2lfvibvo1kf6n7o0qegu2rua; zmCSS=classic; zmSkin=classic
   NAME       ZM
   NOTIFYDEV  global
   NR         820
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   ZM_API_VERSION unknown
   ZM_VERSION unknown
   model      unknown
   HTTPCookieHash:
     ZMSESSID:
       Options    path=/; HttpOnly
       Value      qc2lfvibvo1kf6n7o0qegu2rua
     zmCSS:
       Options    expires=Sat, 03-Mar-2029 12:25:17 GMT; Max-Age=311040000
       Value      classic
     zmSkin:
       Options    expires=Sat, 03-Mar-2029 12:25:17 GMT; Max-Age=311040000
       Value      classic
   READINGS:
     2019-04-25 14:50:20   CPU_Load        0.4,0.53,0.56
     2019-04-24 15:23:25   authHash       
     2019-04-25 14:50:05   state           opened
   helper:
     ZM_HOST    192.168.1.10:9080
     ZM_PASSWORD XXX
     ZM_PATH_ZMS /zm/cgi-bin/nph-zms
     ZM_USERNAME XXX
     apiInitialized 1
Attributes:
   apiVersion post132
   publicAddress XXX.asuscomm.com:9080
   room       Kameras

2019-04-25_14:44:56 ZM DISCONNECTED
2019-04-25_14:44:56 ZM CONNECTED
2019-04-25_14:45:20 ZM CPU_Load: 0.92,0.68,0.6
2019-04-25_14:45:48 ZM DISCONNECTED
2019-04-25_14:45:48 ZM CONNECTED
2019-04-25_14:46:20 ZM CPU_Load: 0.49,0.61,0.59
2019-04-25_14:46:39 ZM DISCONNECTED
2019-04-25_14:46:39 ZM CONNECTED
2019-04-25_14:47:20 ZM CPU_Load: 0.6,0.62,0.59
2019-04-25_14:47:31 ZM DISCONNECTED
2019-04-25_14:47:31 ZM CONNECTED

Danke Anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

delMar

#64
Hallo Anton,

Danke fürs Ausprobieren!

verbose 0 schaltet das Logging komplett ab.
Um weitere Infos zu kriegen, müsstest du verbose auf 4 oder 5 stellen.
4 sollte fürs erste reichen.

EDIT: es gibt auch noch das Attribut 'apiTimeout'. Per default sind das 5 Sekunden.
Vielleicht hilft es, wenn du hier einen größeren Wert eingibst.

Falls du da mehr Infos kriegen kannst, würde mich das brennend interessieren.
Spannend find ich auch, dass im Attribut 'model' der Wert 'unknown' drin steht...


schöne Grüße
Martin

EDIT 2:
Ich sehe, dass du direkt einen Port definiert hast. Wahrscheinlich der Port von deinem Web-Interface, richtig?
Das hab ich sehr irreführend gebaut, sorry.
Eigentlich sollte es so sein:
In der device definition gibst du keinen Port an, weil es handelt sich hierbei nur um den Trigger-Port von ZoneMinder (6802 per default).

Wenn dein Web-Interface (und somit die API) nicht auf port 80 läuft, dann definier das bitte im Attribut 'publicAddress'.
Das kann dann auch dein öffentlicher DNS-Name sein, wenn du von außen draufgehst, oder aber trotzdem nur eine IP.
publicAddress kann also zB auch sein http://192.168.1.10:9080 (in deinem Beispiel).
Wenn du das hast, setzt du außerdem noch 'usePublicUrlForZmWeb' auf 1.

Die Verwirrung kommt daher, weil das ZoneMinder Modul eigentlich auf 2 verschiedene Arten mit ZM kommuniziert.
Einerseits den schon erwähnten Trigger-Port 6802. Das ist eine permanente Verbindung zu ZoneMinder, wo Events oder auch aktivieren/deaktivieren von Kameras in Echtzeit durchgeführt werden können.
Andererseits gibts noch die ZM-API, wo ganz normal über request/response zB Details für Events oder Kamerakonfigurationen abgerufen werden (zb auch der auth-hash fürs streaming).

Ich seh schon, ich muss hier noch an der Usability arbeiten.

hope that helps






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.

antonwinden

#65
na ja - das umstellen von verbose bringt nichts:
2019-04-25 16:24:50.199 Global global ATTR ZM verbose 5
2019-04-25 16:24:53.896 ZM_Monitor EingangT monitorFunction None
2019-04-25 16:24:53.902 ZM_Monitor TerasseT monitorFunction None
2019-04-25 16:24:54.429 ZM_Monitor EingangT monitorFunction: None
2019-04-25 16:24:54.930 ZM_Monitor TerasseT monitorFunction: None
2019-04-25 16:25:19.248 ZoneMinder ZM DISCONNECTED
2019-04-25 16:25:19.256 ZoneMinder ZM CONNECTED
2019-04-25 16:25:49.616 ZoneMinder ZM CPU_Load: load": [         0.45,         0.39,         0.35     
2019-04-25 16:25:53.898 ZM_Monitor EingangT monitorFunction None
2019-04-25 16:25:53.906 ZM_Monitor TerasseT monitorFunction None
2019-04-25 16:25:54.448 ZM_Monitor TerasseT monitorFunction: None
2019-04-25 16:25:54.933 ZM_Monitor EingangT monitorFunction: None
2019-04-25 16:26:10.704 ZoneMinder ZM DISCONNECTED
2019-04-25 16:26:10.713 ZoneMinder ZM CONNECTED
2019-04-25 16:26:32.778 Global global ATTR ZM verbose 0
2019-04-25 16:26:49.652 ZoneMinder ZM CPU_Load: load": [         0.23,         0.35,         0.34     
2019-04-25 16:26:53.898 ZM_Monitor EingangT monitorFunction None
2019-04-25 16:26:53.905 ZM_Monitor TerasseT monitorFunction None
2019-04-25 16:26:54.435 ZM_Monitor TerasseT monitorFunction: None
2019-04-25 16:26:54.934 ZM_Monitor EingangT monitorFunction: None
2019-04-25 16:27:02.157 ZoneMinder ZM DISCONNECTED
2019-04-25 16:27:02.165 ZoneMinder ZM CONNECTED

das war der event monitor und im log steht dann:
2019-04-25_16:26:10 ZM DISCONNECTED
2019-04-25_16:26:10 ZM CONNECTED
2019-04-25_16:26:49 ZM CPU_Load: load": [         0.23,         0.35,         0.34     
2019-04-25_16:27:02 ZM DISCONNECTED
2019-04-25_16:27:02 ZM CONNECTED
2019-04-25_16:27:49 ZM CPU_Load: load": [         0.31,         0.34,         0.34     
2019-04-25_16:27:53 ZM DISCONNECTED
2019-04-25_16:27:53 ZM CONNECTED
2019-04-25_16:28:45 ZM DISCONNECTED

apiTimeout hab ich auf 10 gestellt...
ab einem Wert von 25 verschwinden die disconnects :-)
Sorry - war zu früh gefreut denn auch bei apiTimeout von 120 sin die disconnects im Log - nur im event-monitor sind sie dann lustigerweise nicht mehr

Der Port war der von Zoneminder der in einem Docker Container läuft und halt mit 9080 auf 80 (6802 zusätzlich) weil 80 schon belegt ist.
den pfad hab ich mal rausgelöscht da ich ihn derzeit sowieso nicht verwende weil ich eigentlich nur die Kameras auf detect bzw none schalten will je nach anwesenheit...
danke
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

antonwinden

Hallo,
hab jetzt mal alles neu aufgesetzt und jetzt schaut es gut aus - keine Ahnung warum...
Internals:
   APILoginStatus 200
   DEF        192.168.1.10:9080 XXX XXX
   DeviceName 192.168.1.10:9080
   FD         68
   FUUID      5cc97ca2-f33f-2ed4-dd92-216c414c86a9267c
   FVERSION   70_ZoneMinder.pm:0.187880/2019-03-04
   HTTPCookies ZMSESSID=t9rkgh6ci38hje91mloj1l3ags; zmCSS=classic; zmSkin=classic
   NAME       ZM
   NOTIFYDEV  global
   NR         888
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   ZM_API_VERSION 1.0
   ZM_VERSION 1.32.3
   model      1.32.3
   HTTPCookieHash:
     ZMSESSID:
       Options    path=/; HttpOnly
       Value      t9rkgh6ci38hje91mloj1l3ags
     zmCSS:
       Options    expires=Fri, 09-Mar-2029 11:06:00 GMT; Max-Age=311040000
       Value      classic
     zmSkin:
       Options    expires=Fri, 09-Mar-2029 11:06:00 GMT; Max-Age=311040000
       Value      classic
   READINGS:
     2019-05-01 13:10:01   CPU_Load        8.17,9.77,11.21
     2019-05-01 13:06:05   authHash        597c2896f838d6abfd233808d80882a5
     2019-05-01 13:10:00   state           opened
   helper:
     ZM_AUTH_HASH_SECRET ...Change me to something unique...
     ZM_HOST    192.168.1.10:9080
     ZM_PASSWORD XXX
     ZM_PATH_ZMS /zm/cgi-bin/nph-zms
     ZM_USERNAME XXX
     apiInitialized 1
Attributes:
   apiTimeout 60
   room       Kameras

hat jetzt auch automatisch die angelegten Kameras erzeugt..
danke anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Florian_GT

Schaut mal bei euch, ob Swap an ist, und ob da was belegt ist. Es hilft vielleicht das abzuschalten, wenn genug RAM vorhanden ist.
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)

eckibrecki

Hallo Martin,

ich habe meinen Fehler:
ZitatIch bekomme immer noch als ZM_API_VERSION "on" angezeigt und als ZM_VERSION "rsion"
jetzt weg bekommen. Ich habe jetzt ein Update auf die neue Version gemacht und seitdem läuft es :-)

Danke und Grüße
Carsten

delMar

Zitat von: eckibrecki am 07 Mai 2019, 13:37:08
ich habe meinen Fehler:jetzt weg bekommen. Ich habe jetzt ein Update auf die neue Version gemacht und seitdem läuft es :-)
sehr schön. Ja, der Fehler kam daher, dass ich selber JSON-parsing code geschrieben habe. und der machmal ist hoffnungslos fehlgeschlagen.
die neue version macht das besser.

Danke für deinen Input

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

#70
Hallo delmar,

ich finde die Ausgabe im state noch nicht so schön. Obwohl die Kamera in Zoneminder als nicht funktionsfähig angezeigt wird, ist im state Idle zu sehen. Lässt sich da noch eine Sabotage Erkennung einbauen?

Ich würde mir das so vorstellen:

a) Status (None, Monitor, Modetect ...)
b) Wenn detection dann alarm
c) Wenn defekt dann malfanction

Und im Zoneminderdevice:
Wenn CPU_Load error ist, dies auch im state anzeigen. Hatte heute schon wieder keine korrekte Verbindung :S

Danke und Gruß
Florian
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

Hi Florian,

ja, ich bin mir des Problems bewusst.

Sobald bei CPU_Load 'error' angezeigt wird, funktioniert das Modul nicht mehr einwandfrei - das wird aber nicht entsprechend klar visualisiert.
Die Urlaubszeit rückt näher und ich hoffe, dann wieder die Zeit zu finden, diese Unzulänglichkeiten auszubügeln.
Deine Vorschläge werde ich definitiv näher ins Auge fassen, danke dafür!

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.

MadMax-FHEM

Hallo und vielen Dank schon mal für das Modul :)

Ich habe seit ein paar Tagen eine Unifi Dome :)

Allerdings will/wollte ich keinen "Unif-Recorder" dazu kaufen und da er nicht auf einem PI läuft kann ich ihn aktuell auch nicht einfach so wo installieren...

Daher bin ich dann auf Zoneminder und das Modul gestoßen...

Zoneminder (1.30.0) läuft soweit, muss mich aber da auch noch reinarbeiten...


Habe dann (auf 2 Testsystemen) das Modul bzw. ein Zoneminder-Device definiert, klappt auch irgendwie aber beim "get Zoneminder autocreateMonitors" (muss ich da einen Parameter mitgeben? Und wenn: was? Ich hab schon mal den Namen meines Monitors mitgegeben) bekomme ich im Log nur: Invalid monitorId

Ich habe mal den Aufruf mit verbose 5 mitgeschnitten:


2019.07.11 16:56:20 0: ZoneMinder (Zoneminder) - Invalid monitorId: 
2019.07.11 16:58:40 4: ZoneMinder (Zoneminder) SimpleGet calling http://192.168.1.130/zm/api/monitors.json with callback CODE(0x2f18738)
2019.07.11 16:58:40 5: ZoneMinder (Zoneminder) - "Id":" found at -1
2019.07.11 16:58:40 5: ZoneMinder (Zoneminder) - looking for "Id":" - length: 6. start: 5. end: 6. result: 
2019.07.11 16:58:40 4: ZoneMinder (Zoneminder) SimpleGet calling http://192.168.1.130/zm/api/monitors.json with callback CODE(0x2f041e0)
2019.07.11 16:58:40 5: ZoneMinder (Zoneminder) - "Id":" found at -1
2019.07.11 16:58:40 5: ZoneMinder (Zoneminder) - looking for "Id":" - length: 6. start: 5. end: 6. result: 
2019.07.11 16:58:40 0: ZoneMinder (Zoneminder) - Invalid monitorId: 
2019.07.11 16:58:47 4: ZoneMinder (Zoneminder) SimpleGet calling http://192.168.1.130/zm/api/host/getLoad.json with callback CODE(0x100c088)
2019.07.11 16:58:47 5: ZoneMinder (Zoneminder) - "load":[ found at -1
2019.07.11 16:58:47 5: ZoneMinder (Zoneminder) - looking for "load":[ - length: 8. start: 7. end: 61. result: "load": [
        0.5,
        0.64,
        0.67
   
2019.07.11 16:59:47 4: ZoneMinder (Zoneminder) SimpleGet calling http://192.168.1.130/zm/api/host/getLoad.json with callback CODE(0x100c088)
2019.07.11 16:59:47 5: ZoneMinder (Zoneminder) - "load":[ found at -1
2019.07.11 16:59:47 5: ZoneMinder (Zoneminder) - looking for "load":[ - length: 8. start: 7. end: 62. result: "load": [
        0.38,
        0.59,
        0.65


Verbindung/Login ist ok und "CPU-Daten" kommen auch regelmäßig...

Allerdings sehen einige Internal "komisch" aus:


ZM_API_VERSION on
ZM_VERSION rsion


War hier schon mal aber ich habe extra vorher ein fhem update gemacht (und auch OS: raspbian Stretch lite / PI3B ohne Plus)...

Hier noch ein list:


Internals:
   APILoginStatus 200
   CFGFN     
   DEF        192.168.1.130 zm_fhem fhem
   DeviceName 192.168.1.130:6802
   FD         14
   FUUID      5d274d3c-f33f-ff8d-c830-56dbb10a2dff7766
   HTTPCookies ZMSESSID=f7opigctueg7kfl9de8s51mci1; zmCSS=flat; zmSkin=classic
   NAME       Zoneminder
   NOTIFYDEV  global
   NR         81
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   ZM_API_VERSION on
   ZM_VERSION rsion
   HTTPCookieHash:
     ZMSESSID:
       Options    path=/
       Value      f7opigctueg7kfl9de8s51mci1
     zmCSS:
       Options    expires=Sat, 19-May-2029 14:52:44 GMT; Max-Age=311040000
       Value      flat
     zmSkin:
       Options    expires=Sat, 19-May-2029 14:52:44 GMT; Max-Age=311040000
       Value      classic
   READINGS:
     2019-07-11 17:15:50   CPU_Load        "load": [
        0.74,
        0.66,
        0.65
   
     2019-07-11 16:52:46   authHash        1fb954fccede8c2dd9b548814b8cee19
     2019-07-11 16:52:44   state           opened
   helper:
     ZM_AUTH_HASH_SECRET     
     ZM_HOST    192.168.1.130
     ZM_PASSWORD fhem
     ZM_PATH_ZMS             
     ZM_USERNAME zm_fhem
     apiInitialized 1
Attributes:
   room       Zoneminder
   verbose    0


Was kann ich tun/was läuft falsch?

Ich habe eben auch noch in Zoneminder ein paar mehr Rechte vergeben (also zm_fhem hat nun die selben Rechte wie der admin)...
...hilft nichts es bleibt beim "invalid minitorId"...  :-\

Danke schon mal, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

delMar

Hi Joachim.
Das Problem liegt am Modul.
Gib mir ein paar Tage Zeit, ich hoffe ich kann das rasch lösen

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.

MadMax-FHEM

Hallo Martin,

jaja, lass dir (wegen mir) Zeit!
Ich hab noch genügend andere Baustellen...

Wenn du was brauchst bzw. ich noch was beisteuern kann dann einfach Bescheid geben!

Bin allerdings am WE unterwegs...

Vielen Dank schon mal, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)