Neues Modul: 70_ZoneMinder, 71_ZM_Monitor

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

Vorheriges Thema - Nächstes Thema

delMar

Hallo,

um ein Bild zu verschicken kommts drauf an, wie du es verschicken möchtest.
Die Optionen die ich kenne sind PushOver und TelgramBot

Bei PushOver gehts zb so:
set pushmsg msg Haustür Es hat geläutet! attachment="www/snapshot/ipcam_frontdoor_snapshot.jpg" expire=3600
Es ist dazu wichtig, dass das Bild in einem lokalen Pfad verfügbar ist.
In diesem Beispiel wurde es vom IPCAM Modul gespeichert, nicht von ZoneMinder

Beim Versenden des Links zur Kamera kommts auch wieder drauf an, welches Modul man zum Versenden verwenden will.
Manche Module erkennen zb [gerät:reading] als Verweis auf einen Wert und setzen ihn dann ein.

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.

kamp

#286
Also ich verwende für das Versenden mein eigenes HTTPMOD mit dem ich mein Nextcloud Talk anspreche (ich verwende keine Dienste bei denen man mit seinen Daten fürs Verwenden bezahlt). Fürs erste wäre ich daher schon zufrieden, wenn ich den Link (zum Stream und Bild) auslesen und als Nachricht schicken könnte. Das hier geht mal leider nicht:
AlarmStatus wird korrekt ausgelesen und die Nachricht nur bei eingeschalteter Alarmanlage gesendet. Allerdings nur der erste Teil der Nachricht, $stream ist immer leer...

ZM_Monitor_zm_3:alert:.on {
my $alarm = Value("AlarmStatus");;
my $stream = Value("ZM_Monitor_zm_3:pubStreamUrl");;
if ($alarm eq "on") {
fhem("set Talk msg Kamerabewegung im Büro!\\n$stream");;
}
}

Ich komme mit dem Bild ohnehin nicht klar, wenn eine Auslösung erfolgt (=Kamerabewegung), dann ist anscheinend die Verzögerung bis FHEM das kneisst derart groß, dass das Bild welches er schicken würde, ein paar Sekunden neuer ist und nicht das vom Auslösezeitpunkt. Also wenn ich zum Testen durchs Bild gehe, wird ausgelöst, aber ankommen würde einige Sekunden später ein Bild nur vom leeren Kamerabereich - also das funktioniert nicht wie erwartet, daher werde ich aufs Bild verschicken (und auch Link dazu) eher verzichten - außer es gibt eine Möglichkeit tatsächlich das Auslösebild zu erhalten.

kamp

scheinbar sind die Profis im Urlaub, daher musste ich selbst unzählige Stunden in die Lösung investieren. Falls jemand anderes das brauchen sollte:


ZM_Monitor_zm_3:alert:.on {
my $alarm = Value("AlarmStatus");;
my $stream = ReadingsVal("ZM_Monitor_zm_3","pubEventStreamUrl","https://video.kmpr.at");;
if ($alarm eq "on") {
fhem("set Talk msg Kamerabewegung im Büro!\\n$stream");;
}
}

presskopf

#288
Hallo zusammen,
ich bin gerade dabei mich mit ZM zu beschäftigen und habe die Anwendung in einer Docker-Umgebung installiert.
Das war erst mal nicht ganz trivial, da ZM dort wenig gepflegt wird. Dennoch habe ich nun ein Setup auf Basis von
ghcr.io/zoneminder-containers/zoneminder-base:latest
laufen.

Was mich nun vor ein Problem stellt, ist dass in diesem Paket der Pfad ohne /zm angegeben wird.
Das betrifft das Webinterface als auch die API.

Die Option webConsoleContext hilft mir schon mal weiter beim WI, nur bei der API weiß ich nicht, wie ich da die Verbindung hinkriegen kann.
Stehe ich auf dem Schlauch und es ist trivial oder ist das mit diesem Modul wirklich nicht lösbar?

So funktioniert's:
curl -X POST -d "user=fhemuser&pass=secret" http://192.168.0.143:8099/api/host/getVersion.json
{"version":"1.36.33","apiversion":"2.0"}

LG Matthias


Hat sich erledigt.
Das Docker-Repo. von dlandon (v1.34) macht doch was es soll. :)

kamp

#289
Hallo,
ich habe das Modul bislang noch immer nicht vernünftig zum laufen bekommen, folgende massive funktionsblockierende Probleme habe ich:

1) Wenn ich das ZoneMinder Device anlege, dauert es bis zu 24 Stunden bis die ZM_Monitore alle automatisch angelegt werden. Ein Neustart von FHEM und/oder ZoneMinder hilft nicht, im Gegenteil, dadurch entstehen neue Probleme (siehe weitere Punkte). Damit könnte man grundsätzlich leben, wenn das Modul dann einwandfrei funktioniert, aber zur Fehlersuche, wenn man Geräte immer wieder löschen und anlegen möchte, ein Horror! In den Logs sind keine Fehlermeldungen vorhanden, es geht einfach nicht schneller scheint es.

2) Ich habe bei meinen ZM_Monitor Devices überall showLiveStreamInDetail=1 eingetragen. Das funktioniert aber nur, bis der Zoneminder-Server neu gestartet wird. Dann gibt es nur noch das Broken-Image Symbol statt des Livestreams. Kein erneutes Starten des Zoneminder oder FHEM hilft. Keine Fehlermeldung in FHEM Logs. Bereinigt sich auch nach 2 Tagen nicht von selbst. Mit diesem Fehler ist das Modul schon zu 90% unbrauchbar.

3) Im ZoneMinder-Device geht das Reading CPU_Load wenige Stunden nach Erstellung auf error und funktioniert dann nie wieder, auch nicht nach 2 Wochen. Wie man schön erkennt, liest er das nie wieder mit neuem Status aus (error noch vom 6.6., andere Readings werden regelmäßig aktualisiert):
CPU_Load
error
2023-06-06 10:00:45
authHash
8763810dff90ea376410a5dd6227836c
2023-06-07 07:54:41
state
Trigger-Port: opened, API: opened
2023-06-07 07:54:41
Jetzt kein Drama, aber schön ist es trotzdem nicht, wenn es auf error geht und nie wieder funktioniert.

4) Der generierte Link in den ZM_Monitor Devices zu pubEventStreamUrl führt immer zu einem 403er. Verwende ich hingegen pubStreamUrl, funktioniert es. Es hat also nichts mit Zoneminder, Reverseproxy etc. zu tun, sondern wie dieses Modul den pubEventStreamUrl falsch erstellt. Mit diesem Fehler ist das Modul endgültig unbrauchbar, denn diesen Link sende ich per Benachrichtigungen aus, damit man prüfen kann was los ist. Wenn dann nicht via Link das Auslöseevent angesehen werden kann, ist es nutzlos.

Hat jemand ZoneMinder aktuell ohne diese Fehler in FHEM am Laufen? So ist es ja nicht brauchbar...? Ich verwende übrigens Zoneminder v1.37.40

JudgeDredd

Hallo kamp,

bei mir läuft das Zoneminder-Modul.
Ich hatte aber zu Testzwecken mal mehrere Zoneminder-Server definiert und dabei kam es zu einem ähnlichen Fehlerbild wie bei Dir.
Hast Du evtl. auch mehrere Server definiert ?

Zitat von: kamp am 07 Juni 2023, 08:01:25Der generierte Link in den ZM_Monitor Devices zu pubEventStreamUrl führt immer zu einem 403er. Verwende ich hingegen pubStreamUrl, funktioniert es. Es hat also nichts mit Zoneminder, Reverseproxy etc. zu tun, sondern wie dieses Modul den pubEventStreamUrl falsch erstellt. Mit diesem Fehler ist das Modul endgültig unbrauchbar, denn diesen Link sende ich per Benachrichtigungen aus, damit man prüfen kann was los ist. Wenn dann nicht via Link das Auslöseevent angesehen werden kann, ist es nutzlos.
pubStreamUrl und pubEventStreamUrl sind für verschiedene Dinge gedacht.
Den Fehler 403 bekommst Du wenn der User keine Berechtigung hat. Der Link den das Modul erstellt stimmt sehr wohl, kontrolliere lieber mal Deine Berechtigungen.

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Hyper-V | CentOS (VM)

delMar

Zitat von: kamp am 07 Juni 2023, 08:01:25Ich verwende übrigens Zoneminder v1.37.40
Hallo,

die ungeraden Minor-Versionen bei ZoneMinder sind immer die Entwicklungs-Zweige.
Dh 1.32, 1.34, 1.36 sind die stabilen Zweige und das sind auch die einzigen Versionen, die getestet wurden.

Mit 1.37 ist somit nie getestet worden.

Davon abgesehen ist es leider so, dass die ZoneMinder API selber nicht das Gelbe vom Ei ist.
Zwischen den Versionen gibt es immer wieder maßgebliche unterschiede, so dass es mich eher überraschen würde, wenn 1.37 funktionieren würde.
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.