Neues Modul: 70_ZoneMinder, 71_ZM_Monitor

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

Vorheriges Thema - Nächstes Thema

delMar

Die Lösung ist so simpel wie unwahrscheinlich: es ist ein Bug in ZoneMinder.

Google nach "Zoneminder API 404" befragt, hat im ersten Treffer den Link geliefert, den ich gepostet hatte.

Notiz: den Fehler als ersten mal googeln :-)

schön, wenns jetzt läuft.
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.

Sky

Gebe ich Dir Recht ,
allerdings ist die Fehlersuche schwieriger wenn man das Problem nicht richtig erkannt hat .
Bei mir waren ja mehrere Ungereimtheiten .

Trotzdem klasse wenn es am Ende funktioniert  ;)

delMar

Zitat von: Sky am 04 Februar 2020, 22:38:24
Gebe ich Dir Recht ,
allerdings ist die Fehlersuche schwieriger wenn man das Problem nicht richtig erkannt hat .
Natürlich, das war auch nicht direkt an dich gerichtet.
Ich versuche immer, die Gedanken so gut wie möglich festzuhalten, wenn ein Problem gelöst wurde.
Oft hilfts mir, wenn ich in 10 Monaten schon wieder alles vergessen habe.
Und speziell bei ZoneMinder muss man leider sagen, dass die Qualität der APIs erst jetzt mit 1.34 endlich beginnt, in die richtige Richtung zu gehen (zumindest laut Doku)
Oft sucht man den Fehler bei sich selber, was in diesem Fall aber weder bei dir noch bei mir zutreffend war ;-)

Ich werde jedenfalls auch die Wiki-Seite ergänzen

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.

Pau1

Moin vom Newbie aus Hamburg,

ich würde mich sehr freuen, wenn mir jemand helfen kann.
Ich stehe gerade irgendwie auf dem Schlauch und das Login von FHEM auf ZM schlägt fehl.

Zoneminder Version: 1.34.5, API Version: 2.0
FHEM Version: 21477

Das Login funzt und dennoch heißt es immerzu "Triggerport disappeared" (in ZM ist OPT_Trigger aktiv).
In FHEM ist das Attribut "apiVersion" ist auch auf "post132" gesetzt.

Hier ein Auszug aus dem Gerät:

STATE      Trigger-Port: disappeared, API: opened
   TYPE       ZoneMinder
   ZM_API_VERSION 2.0
   ZM_VERSION 1.34.5
   model      1.34.5
   HTTPCookieHash:
     ZMSESSID:
       Options    expires=Sun, 22-Mar-2020 08:07:57 GMT; Max-Age=3600; path=/; HttpOnly
       Value      entfernt
     zmCSS:
       Options    expires=Tue, 29-Jan-2030 07:07:57 GMT; Max-Age=311040000
       Value      dark
     zmSkin:
       Options    expires=Tue, 29-Jan-2030 07:07:57 GMT; Max-Age=311040000
       Value      classic
   READINGS:
     2020-03-22 12:41:13  authHash      hierstandderhash
     2020-03-22 12:51:29   state           Trigger-Port: disappeared, API: opened
   helper:
     ZM_API_STATE opened
     ZM_HOST    192.168.xxx.xxx.
     ZM_PASSWORD blafa
     ZM_TRIGGER_STATE disappeared
     ZM_USERNAME FHEM
     apiInitialized 1
Attributes:
   apiVersion post132
   verbose    5


Und hier ein Auszug aus dem Logfile:

2020.03.22 08:42:58 4: ZoneMinder (ZM_XXX) SimpleGet calling http://192.168.xxx.xxx/zm/api/host/getLoad.json with callback CODE(0x37f6f38)
2020.03.22 08:42:58 4: ZoneMinder (ZM_XXX) - (?^:"load":\s*\[) NOT found in {"success":false,"data":{"name":"Not Authenticated","message":"Not Authenticated","url":"\/zm\/api\/host\/getLoad.json","exception":{"class":"UnauthorizedException","code":401,"message":"Not Authenticated"}}}.
2020.03.22 08:43:58 4: ZoneMinder (ZM_XXX) SimpleGet calling http://192.168.xxx.xxx/zm/api/host/getLoad.json with callback CODE(0x37f6f38)
2020.03.22 08:43:58 4: ZoneMinder (ZM_XXX) - (?^:"load":\s*\[) NOT found in {"success":false,"data":{"name":"Not Authenticated","message":"Not Authenticated","url":"\/zm\/api\/host\/getLoad.json","exception":{"class":"UnauthorizedException","code":401,"message":"Not Authenticated"}}}.
2020.03.22 08:44:58 4: ZoneMinder (ZM_XXX) SimpleGet calling http://192.168.xxx.xxx/zm/api/host/getLoad.json with callback CODE(0x37f6f38)
2020.03.22 08:44:58 4: ZoneMinder (ZM_XXX) - (?^:"load":\s*\[) NOT found in {"success":false,"data":{"name":"Not Authenticated","message":"Not Authenticated","url":"\/zm\/api\/host\/getLoad.json","exception":{"class":"UnauthorizedException","code":401,"message":"Not Authenticated"}}}.
2020.03.22 08:45:58 4: ZoneMinder (ZM_XXX) SimpleGet calling http://192.168.xxx.xxx/zm/api/host/getLoad.json with callback CODE(0x37f6f38)
2020.03.22 08:45:58 4: ZoneMinder (ZM_XXX) - (?^:"load":\s*\[) NOT found in {"success":false,"data":{"name":"Not Authenticated","message":"Not Authenticated","url":"\/zm\/api\/host\/getLoad.json","exception":{"class":"UnauthorizedException","code":401,"message":"Not Authenticated"}}}.
2020.03.22 08:46:58 4: ZoneMinder (ZM_XXX) SimpleGet calling http://192.168.xxx.xxx/zm/api/host/getLoad.json with callback CODE(0x37f6f38)
2020.03.22 08:46:58 4: ZoneMinder (ZM_XXX) - (?^:"load":\s*\[) NOT found in {"success":false,"data":{"name":"Not Authenticated","message":"Not Authenticated","url":"\/zm\/api\/host\/getLoad.json","exception":{"class":"UnauthorizedException","code":401,"message":"Not Authenticated"}}}.
2020.03.22 08:47:58 4: ZoneMinder (ZM_XXX) SimpleGet calling http://192.168.xxx.xxx/zm/api/host/getLoad.json with callback CODE(0x37f6f38)
2020.03.22 08:47:58 4: ZoneMinder (ZM_XXX) - (?^:"load":\s*\[) NOT found in {"success":false,"data":{"name":"Not Authenticated","message":"Not Authenticated","url":"\/zm\/api\/host\/getLoad.json","exception":{"class":"UnauthorizedException","code":401,"message":"Not Authenticated"}}}.


Offenbar glückt der Login und dennoch bekommt FHEM ein 401 "Not Authenticated" von ZM zurückgemeldet.
Was mache ich falsch? Liegt es an der Version?

Ideen herzlich willkommen. DANKESCHÖN!
Bleibt gesund!

delMar

Hi,
Ich werd mir das am Abend mal ansehen.

Lg
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.

Pau1

Hi Martin,

das wäre ja prima. Dankeschön.
Ich habe mal ein nmap auf den zm-server gemacht und dabei fiel mir auf, dass dort nur

PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3389/tcp open  ms-wbt-server

geöffnet sind. Ist das so richtig (obwohl in ZM OPT_USE_API, OPT_USE_EVENTNOTIFICATION und OPT_TRIGGERS aktiv sind)?

Der User FHEM hat alle Rechte und auch dort in ApiEnabled gesetzt.

Vielen Dank vorab.

Lg
Paul

Pau1

Hallo Martin,

nach einem heutigen (erneuten) Update beider Komponenten (Zoneminder 1.34.6 und FHEM 21487) läuft es nun.
Ich bin gespannt, ob es dabei bleibt und danke Dir für Deine Hilfsbereitschaft!

Viele Grüße
Paul

delMar

Danke für die Info, freut ich zu hören.

Ich werde versuchen, die Zeit zu finden, mir das genau anzuschauen, ich bin derzeit leider etwas unter Wasser.

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.

Pau1

#218
Nun, da alles soweit läuft:
Woran könnte es liegen, dass mir dennoch die Readings eventImageUrl, eventStreamUrl, etc. im jeweiligen zm_monitor nicht angezeigt werden?
Ich bekomme nur folgende Readings angeboten:

alert
lastEventId
lastEventNotes
lastEventTimestamp
state


Da habe ich doch bestimmt irgendetwas übersehen?!

P.S. Würde mir bei einem Event (Bewegung) gerne Standbilder der Kameras per FHEM_Bot zusenden lassen. Ist das hier schon mal thematisiert worden? Mittels notify und IPCAM vielleicht?
Danke!

newb

#219
Hi, I've got same error as above. Triggers are open but API is not working. I keep getting:

Zitat2020.03.25 20:56:16 4 : ZoneMinder (zm) SimpleGet calling http://xxx.xxx.xxx.xxx/zm/api/monitors.json with callback CODE(0x46d1a80)
2020.03.25 20:56:16 4 : ZoneMinder (zm) - (?^:"Id":\s*") NOT found in {"success":false,"data":{"name":"Not Authenticated","message":"Not Authenticated","url":"\/zm\/api\/monitors.json","exception":{"class":"UnauthorizedException","code":401,"message":"Not Authenticated"}}}.

My main concern that is I can't autocreate monitors.

Heres the raw definition:

defmod zm ZoneMinder xxx.xxx.xxx.xxx admin admin
attr zm DbLogExclude state
attr zm apiVersion post132
attr zm room ZoneMinder
attr zm verbose 5

setstate zm Trigger-Port: opened, API: n/a
setstate zm 2020-03-25 11:22:40 CPU_Load error
setstate zm 2020-03-25 20:59:13 authHash xxxxxxxxxxxxxxxxxxxx
setstate zm 2020-03-25 20:59:13 state Trigger-Port: opened, API: n/a



Fhem and ZM are uptodate.

EDIT: If I login only with hash I get this, and I still get the error above.

ZitatAPILoginStatus
401
CHANGED
DEF   
xxx.xxx.xxx.xxx
DeviceName
xxx.xxx.xxx.xxx:6802
FD
7
FUUID
5e4b0d5a-f33f-613d-cc04-a3db8c6d4139e507
HTTPCookies
NAME
zm
NOTIFYDEV
global
NR
89
PARTIAL
STATE
Trigger-Port: opened, API: opened
TYPE
ZoneMinder
ZM_API_VERSION
unknown
ZM_VERSION
unknown
model
unknown
Readings
CPU_Load
error
2020-03-25 11:22:40
authHash
9049dddcb7830cc5a623716e3b152140
2020-03-25 21:05:17
state
Trigger-Port: opened, API: opened
2020-03-25 21:08:54

delMar

Zitat von: Pau1 am 24 März 2020, 00:38:25
Würde mir bei einem Event (Bewegung) gerne Standbilder der Kameras per FHEM_Bot zusenden lassen.
Genau, mit IPCAM und notify mach ich das auch:
im Define die IP-Adresse von ZM angeben.

Attribute path: /zoneminder/cgi-bin/nph-zms?mode=single&scale=100&monitor=5&user=x&pass=y

Und das notify:

defmod not_doorbell_touch1 notify FS20_Doorbell_1:on get ipcam_frontdoor image;;set ZM_Monitor_Frontdoor alarmState on-for-timer 60;;defmod atTempBellMsg at +00:00:01 set pushmsg msg Haustür Es hat geläutet! action='[ZM_Monitor_Frontdoor:pubEventStreamUrl]' url_title=Zeigen expire=3600 attachment='www/snapshots/ipcam_frontdoor_snapshot.jpg'


In diesem Fall mach ich per IPCAM ein Bild, löse in ZM ein Event aus und verschicke das Bild per Pushover, inklusive Link zum Live-Stream.

Das ZM-Event löse ich aus, weil ich die Bewegungserkennung in ZM deaktiviert habe. Nur wenn jemand läutet, wird auch aufgezeichnet.


Die Readings, die bei dir fehlen, werden nur erstellt und geschrieben, wenn ein ZM-Event getriggert wird.
Ist das der Fall?

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.

delMar

Zitat von: newb am 25 März 2020, 20:13:06
Triggers are open but API is not working.
I haven't been able to test with 1.34 yet.

But I have a RPi waiting on my desk to become my test-setup for that.

I'll keep you posted

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.

Pau1

Dankeschön Martin!

Ist ja sehr cool!
Nur leider bekomme ich derzeit immer ein "403 Forbidden" vom Server, obwohl ich in den ZM-Options "AUTH_RELAY_PLAIN" aktiviert habe.

Der Pfad lautet dabei: http://192.168.nnn.nnn/zm/cgi-bin/nph-zms?scale=100&width=1280px&height=960px&mode=single&maxfps=30&buffer=50&monitor=6&user=FHEM&pass=FHEM

Was habe ich nur vergessen?

Danke schonmal im Voraus für die nette Unterstützung.
Paul


Zitat von: delMar am 26 März 2020, 21:53:20
Genau, mit IPCAM und notify mach ich das auch:
im Define die IP-Adresse von ZM angeben.

Attribute path: /zoneminder/cgi-bin/nph-zms?mode=single&scale=100&monitor=5&user=x&pass=y

Und das notify:

defmod not_doorbell_touch1 notify FS20_Doorbell_1:on get ipcam_frontdoor image;;set ZM_Monitor_Frontdoor alarmState on-for-timer 60;;defmod atTempBellMsg at +00:00:01 set pushmsg msg Haustür Es hat geläutet! action='[ZM_Monitor_Frontdoor:pubEventStreamUrl]' url_title=Zeigen expire=3600 attachment='www/snapshots/ipcam_frontdoor_snapshot.jpg'


In diesem Fall mach ich per IPCAM ein Bild, löse in ZM ein Event aus und verschicke das Bild per Pushover, inklusive Link zum Live-Stream.

Das ZM-Event löse ich aus, weil ich die Bewegungserkennung in ZM deaktiviert habe. Nur wenn jemand läutet, wird auch aufgezeichnet.


Die Readings, die bei dir fehlen, werden nur erstellt und geschrieben, wenn ein ZM-Event getriggert wird.
Ist das der Fall?

schöne Grüße
Martin

Pau1

Äh, leider nein. Die Readings werden (auch im provozierten) Alarmfall von ZM nicht geschrieben.
Sorry, dass ich Deine Frage noch nicht beantwortet hatte...

Zitat von: delMar am 26 März 2020, 21:53:20
Genau, mit IPCAM und notify mach ich das auch:
im Define die IP-Adresse von ZM angeben.

Attribute path: /zoneminder/cgi-bin/nph-zms?mode=single&scale=100&monitor=5&user=x&pass=y

Und das notify:

defmod not_doorbell_touch1 notify FS20_Doorbell_1:on get ipcam_frontdoor image;;set ZM_Monitor_Frontdoor alarmState on-for-timer 60;;defmod atTempBellMsg at +00:00:01 set pushmsg msg Haustür Es hat geläutet! action='[ZM_Monitor_Frontdoor:pubEventStreamUrl]' url_title=Zeigen expire=3600 attachment='www/snapshots/ipcam_frontdoor_snapshot.jpg'


In diesem Fall mach ich per IPCAM ein Bild, löse in ZM ein Event aus und verschicke das Bild per Pushover, inklusive Link zum Live-Stream.

Das ZM-Event löse ich aus, weil ich die Bewegungserkennung in ZM deaktiviert habe. Nur wenn jemand läutet, wird auch aufgezeichnet.

Die Readings, die bei dir fehlen, werden nur erstellt und geschrieben, wenn ein ZM-Event getriggert wird.
Ist das der Fall?


schöne Grüße
Martin

delMar

Ich bin überzeugt, dass das Problem irgendwie durch 1.34 verursacht wird, das jetzt schlicht und ergreifend im Code noch nicht berücksichtigt ist.
Leider muss ich um weitere Geduld bitten, es fällt mir derzeit nicht leicht, genug Zeit dafür zu erübrigen.

Aber sobald ich in diese Richtung etwas unternehme, gebe ich Bescheid.
Und Fragen beantworten kann ich natürlich sehr wohl in der Zwischenzeit :-)

Danke!

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.