FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: deune am 02 März 2015, 17:41:16

Titel: Frage: Einbindung zoneminder
Beitrag von: deune am 02 März 2015, 17:41:16
Hallo fhem - Gemeinde,

hat das schon mal jemand geschafft - die Einbindung von zoneminder, um events im zoneminder in fhem notify´s auszulösen?

Es gab vor einiger Zeit ein ähnliches Thema, allerdings damals ohne Ergebnis.

Kurzum, ich habe nun einige Kameras um das Haus installiert und möchte in Abhängigkeiten von anderen Eigenschaften im fhem schalten bzw. nicht schalten.

Herzliche Grüße aus der Eifel

Holger
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Shax am 05 März 2015, 12:38:22
Hallo deune!

Genau das gleiche Suche ich gerade auch. Ich bin kein Freund von nur Standbildern speichern.
In Zoneminder kann ich die Ereignisse ja nach Motion Detection aufnehmen lassen und ansehen.

Eine Verbindung mit FHEM und dadurch Profile auslösen wäre cool, aber ich glaube das ist eine ganze Menge Arbeit das umzusetzen.

Ich versuche gerade ein Modul zu schreiben, welches reagiert wenn Zoneminder ein Ereignis auslöst. Ich will dadrüber eine Aussenlampe
schalten. Mal sehen ob es klappt ;)

Grüße
Shax
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: deune am 05 März 2015, 18:27:24
Hallo Shax,

es freut mich einen Ideengenossen gefunden zu haben, leider bin ich total unbegabt Code zu schreiben,
habe es einige Male versucht - liegt mir einfach nicht.

Was ich aber total gut kann, ist versch. Sachen zu puzzeln, vielleicht hilft Dir folgender Link (ist sogar perl Code):

http://www.zoneminder.com/wiki/index.php/FAQ#How_can_I_use_ZoneMinder_to_trigger_something_else_when_there_is_an_alarm.3F

Sieht so aus, als ob man dieses kleine Programm starten und eine fhem Eigenschaft  mit z.B.
fhem.pl <fhemhost>:7072 "<command>..." (Aus fhem commandref) ändern kann.
Bewegungsmelder aus der Homematic Serie funktionieren auch so, diese setzen auch nur die Motion readings, ein "unmotion" gibt es nicht.

Liebe Grüße aus der Eifel
Holger
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Shax am 05 März 2015, 19:21:28
Hier schonmal ein paar Codeschnipsel auf denen ich aufbaue:

sub
Control_ZM()
{

my $sock = new IO::Socket::INET (
                PeerAddr => '127.0.0.1',
                PeerPort => '6802',
                Proto => 'tcp',
                 );
die "Could not create socket: $!\n" unless $sock;
print $sock "6|on+60|250|alarm|TEST|test\n";
close($sock);

}

define zmevent notify ALARM:on.*  {fhem "set BLABLA on";; fhem "set BEFEHL off";;fhem "set BLUBB off";; Control_ZM}
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: linusd am 13 März 2016, 21:09:56
Hallo zusammen,

sollte das Thema bei Euch noch aktuell sein würde ich mich beteiligen.

Fhem löst eine Aufzeichnung im zmServer aus:
Bist Du mit Deinem Codeshnipsel weiter gekommen Shax?

Ich habe es vorerst mit einem shell-script umgesetzt.
FHEM

define notifyZMRecordUG notify bewegungTreppeUG {system('/opt/fhem/zmControl.sh&');;}


Shell-Script (zmControl.sh)

#!/bin/bash
# monitor#|action|priority|Cause|text|showtext where
#Aufzeichung im Arbeitszimmer für 30 Sekunden starten
echo '5|on+30|1|Bewegung UG|Bewegungsmelder' > /dev/tcp/<zmSetverIP>/6802


Ein notify wird im fhem ausgelöst wenn eine Aufzeichnung im zmServer stattgefunden hat
Hierzu hat Deune schon den richtigen Hinweis gefunden!
how-can-i-use-zoneminder-to-trigger-something-else-when-there-is-an-alarm (http://zoneminder.readthedocs.org/en/latest/faq.html#how-can-i-use-zoneminder-to-trigger-something-else-when-there-is-an-alarm)
Im Grunde muss nur z.B. zyklisch das angegebene SQL abgesetzt und auf das Ergebnis reagiert werden.

Ich werde zunächst mit einem shell-Script und cron eine Pushnachricht mit Pushover an meine Phone senden wenn jemand vor der Tür steht! ;)
Eine Aktion in fhem ließe sich dann zwar auch mit dem Script auslösen, aber eine direkte Einbindung wäre natürlich schicker!

Vielleicht wird ja ein offizielles Modul draus! 8)

Meine Ergebnisse werde ich natürlich hier bereitstellen!

Gruß
Christian
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Shax am 14 März 2016, 00:35:51
Ich hab komplett gewechselt zu Synology Surveillance. Zoneminder hat bei mir noch andere Probleme gemacht ;)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: MadMax am 07 Januar 2017, 17:26:47
Hallo,

ist zwar schon etwas älter aber ich habe mich damite heute mal befasst.
Ich höle mit das letzte Event mit der Startzeit und kann dann dort mit einem Notify drauf reagieren.
Hier mal mein Code wenn es jemand braucht.

+*00:00:10 {

use DBI;

my ($db_user, $db_name, $db_pass) = ('user', 'zm', 'pass');

my $dbh = DBI->connect("DBI:mysql:database=zm", $db_user, $db_pass);

my $query_test = $dbh->prepare('SELECT StartTime FROM Events ORDER BY Id DESC LIMIT 1');

$query_test->execute() or die $query_test->err_str;

fhem("set ZM_Event off");

while (my ($StartTime) = $query_test->fetchrow_array() ) {

fhem("set ZM_Event ".$StartTime);
}

$dbh->disconnect();

}


gruß
Max
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Ma_Bo am 23 Februar 2017, 18:41:41
Zitat von: linusd am 13 März 2016, 21:09:56
Hallo zusammen,

sollte das Thema bei Euch noch aktuell sein würde ich mich beteiligen.

Fhem löst eine Aufzeichnung im zmServer aus:
Bist Du mit Deinem Codeshnipsel weiter gekommen Shax?

Ich habe es vorerst mit einem shell-script umgesetzt.

  • fhem ruft das Script auf wenn ein Bewegungsmelder auslöst
  • Script schickt ein entsprechendes tcp-paket an meinen zmServer
FHEM

define notifyZMRecordUG notify bewegungTreppeUG {system('/opt/fhem/zmControl.sh&');;}


Shell-Script (zmControl.sh)

#!/bin/bash
# monitor#|action|priority|Cause|text|showtext where
#Aufzeichung im Arbeitszimmer für 30 Sekunden starten
echo '5|on+30|1|Bewegung UG|Bewegungsmelder' > /dev/tcp/<zmSetverIP>/6802


Ein notify wird im fhem ausgelöst wenn eine Aufzeichnung im zmServer stattgefunden hat
Hierzu hat Deune schon den richtigen Hinweis gefunden!
how-can-i-use-zoneminder-to-trigger-something-else-when-there-is-an-alarm (http://zoneminder.readthedocs.org/en/latest/faq.html#how-can-i-use-zoneminder-to-trigger-something-else-when-there-is-an-alarm)
Im Grunde muss nur z.B. zyklisch das angegebene SQL abgesetzt und auf das Ergebnis reagiert werden.

Ich werde zunächst mit einem shell-Script und cron eine Pushnachricht mit Pushover an meine Phone senden wenn jemand vor der Tür steht! ;)
Eine Aktion in fhem ließe sich dann zwar auch mit dem Script auslösen, aber eine direkte Einbindung wäre natürlich schicker!

Vielleicht wird ja ein offizielles Modul draus! 8)

Meine Ergebnisse werde ich natürlich hier bereitstellen!

Gruß
Christian

Hallo Christian, kannst du mir ein wenig zu den Parametern sagen ?

Zitatecho '5|on+30|1|Bewegung UG|Bewegungsmelder' > /dev/tcp/<zmSetverIP>/6802

Ich habe fhem auf einem Raspberry und möchte, wenn dort eine Bewegung über einen Bewegungsmelder gemeldet wird, auf einem anderen Rechner (NUC) auf dem Zoneminder läuft, eine Aufnahme starten und wieder stoppen.

Grüße Marcel
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Ma_Bo am 23 Februar 2017, 19:05:56
Ok, hat sich erledigt, wer lesen kann ist klar im Vorteil...  ::)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Ma_Bo am 23 Februar 2017, 20:24:06
Gibt es irgendwo eine Übersicht, welche Parameter alle möglich sind...?


Gesendet von iPhone mit Tapatalk
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Ma_Bo am 25 Februar 2017, 08:15:14
Vielleicht kann mir jemand helfen,

ich bekomme folgendes im LOG angezeigt, wenn ich das define notifyZMRecordUG notify bewegungTreppeUG {system('/opt/fhem/Zoneminder/zmControl.sh&');;} ausführe:

/opt/fhem/Zoneminder/zmControl.sh: connect: Connection refused
/opt/fhem/Zoneminder/zmControl.sh: line 4: /dev/tcp/192.168.178.126/6802: Connection refused


Bei Zoneminder (v1.26.5) habe ich unter Optionen den Punkt OPT_TRIGGERS aktiviert.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 21 März 2017, 21:46:19
hallo

falls jemand interessiert ist, ich habe Zoneminder ebenso ins FHEM eingebunden. Die einzelnen Cams (Status etc.) via HTTPMOD und ein kleinen externen Perl-Daemon geschrieben, welcher einerseits auf den Zoneminder Port (zmtrigger) connected um die Events in echtzeit mitzukriegen und diese dann umwurstelt und an das FHEM weitergibt, resp ein "get" der Kamera auslöst damit diese wieder den aktuellen Status hat.

Bei interesse kann ich die Codeschnipsel auch posten.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: ernie0124 am 25 März 2017, 00:22:37
Ich wäre interessiert.

Das wäre superlieb.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 27 März 2017, 14:24:47
also hier mal ein paar codeschnipsel... ich versuche meine gedanken dahinter ein wenig zu erklären, wird aber wohl nicht möglich sein ohne anpassungen zu übernhemen.. also FHEM kenntnisse sind nicht nur von vorteil, sondern wohl nötig ;)

HTTPMOD define für eine ZM kamera:


define http_zm_27 HTTPMOD none 20
attr http_zm_27 userattr get01Name get01Poll:0,1 get01PollDelay get01PollDelay:0,1 get01URL get02ExtractAllJSON:0,1 get02MaxAge get02Name get02Poll:0,1 get02URL get03JSON get03Name get03Poll:0,1 get03URL get04-1Name get04-2Name get04JSON get04Name get04Poll:0,1 get04URL readi
ng02MaxAge reading02MaxAgeReplacement replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value set01Data set01IMap set01Name set01URL sid1URL url
attr http_zm_27 alias Meine_Cam
attr http_zm_27 devStateIcon present:it_camera@0CFB0C absent:it_camera@E50005
attr http_zm_27 enableCookies 1
attr http_zm_27 event-on-update-reading .*
attr http_zm_27 get02ExtractAllJSON 1
attr http_zm_27 get02Name status
attr http_zm_27 get02Poll 1
attr http_zm_27 get02URL https://<zm.domain.com>/zm/api/monitors/daemonStatus/id:%%zm_id%%/daemon:zmc.json
attr http_zm_27 get03JSON status
attr http_zm_27 get03Name alarm
attr http_zm_27 get03Poll 1
attr http_zm_27 get03URL https://<zm.domain.com>/zm/api/monitors/alarm/id:%%zm_id%%/command:status.json
attr http_zm_27 get04-1Name enabled
attr http_zm_27 get04-2Name function
attr http_zm_27 get04JSON (monitor_Monitor_Enabled)|(monitor_Monitor_Function)
attr http_zm_27 get04Name Monitor
attr http_zm_27 get04Poll 1
attr http_zm_27 get04URL https://<zm.domain.com>/zm/api/monitors/%%zm_id%%.json
attr http_zm_27 group camera
attr http_zm_27 icon it_camera
attr http_zm_27 reAuthRegex "code": 401
attr http_zm_27 reading02MaxAge 10
attr http_zm_27 reading02MaxAgeReplacement 0
attr http_zm_27 replacement01Mode text
attr http_zm_27 replacement01Regex %%zm_id%%
attr http_zm_27 replacement01Value 27
attr http_zm_27 set01Data Monitor[Enabled]=$val
attr http_zm_27 set01IMap 0:0,1:1
attr http_zm_27 set01Name enable
attr http_zm_27 set01URL https://<zm.domain.com>/zm/api/monitors/%%zm_id%%.json
attr http_zm_27 sid1URL https://<zm.domain.com>/zm/index.php?username=<FHEMUSER>&password=<FHEMPASS>&action=login&view=console
attr http_zm_27 sortby 010
attr http_zm_27 stateFormat { return "present" if ((ReadingsVal("$name","statustext", undef) =~ "running") && (ReadingsVal("$name","status",undef) eq "1"));; return "absent" }
attr http_zm_27 timeout 5
attr http_zm_27 url /cgi-bin/nph-zms?mode=jpeg&scale=50&maxfps=10&buffer=1000&monitor=27&user=<FHEMUSER>&pass=<FHEMPASS>
attr http_zm_27 userReadings presence { return "absent" if (ReadingsVal("$name","function",undef) eq "none");; \
        return "disabled" if (ReadingsVal("$name","enabled", undef) eq "0");; \
        return "present" if ((ReadingsVal("$name","statustext", undef) =~ "running.*pid = [0-9]*") && (ReadingsVal("$name","status",undef) eq "1"));; \
        return "unknown" }


dann habe ich noch einen kleinen ZM zu FHEM perl-daemon geschrieben (sorry für meine schwachen programmierkentnisse...) der aktiv auf events vom ZM hört und diese an FHEM als "get" request weitergibt, so dass alarme in echtzeit im FHEM abgebildet werden und z.b. im FLOORPLAN angezeigt werden können (z.b. via ValueIcon und longpoll).

hier muss evtl. die Zeile:
$msg = sprintf("get http_zm_%d alarm\n", $id);
angepasst werden wenn die "definition" andere namen als "http_zm_<id>" enthält...


#!/usr/bin/perl

use IO::Socket;
use IO::Interface qw(:flags);
use strict;
use Proc::Daemon;
use Proc::PID::File;

sub my_daemon(){
MAIN:
{
    # Daemonize
    Proc::Daemon::Init();

    # If already running, then exit
    if (Proc::PID::File->running()) {
        exit(0);
    }

    # Perform initializes here

my $buf;
my $id;
my $event;
my $date;
my $seq;
my $msg;
my $zm;
my $fhem;

print "starting\n";

sub open_zm() {
  while (!$zm || !$zm->connected()) {
    $zm = IO::Socket::INET->new(
      Proto    => 'tcp',
      PeerPort => 6802,
      PeerAddr => 'localhost',
    ) or sleep(5);
  }
}

sub open_fhem() {
  while (!$fhem || !$fhem->connected()) {
    $fhem = IO::Socket::INET->new(
      Proto    => 'tcp',
      PeerPort => 7072,
      PeerAddr => 'localhost',
    ) or sleep(5);
  }
}


while(1) {
    open_zm();

    print "opened\n";

    while($buf = <$zm>) {
      print "received: ".$buf;
      ($id, $event, $date, $seq) = split(/\|/, $buf);
      print "id: ".$id." event: ".$event." date:".$date." sequence: ".$seq;
      $msg = sprintf("get http_zm_%d alarm\n", $id);
      open_fhem();
      $fhem->send($msg);
    }

}
}
}

my_daemon();


gerne kann ich versuchen weitere hilfe zu leisten, wenns nicht klappen sollte... einfach hier posten...

und ich bin sicher man hätte das viel eleganter lösen können... ich nehm gerne tipps entgegen... aber immerhin funktionierts ;)

viel spass beim tüfteln...

STefan
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: mani am 05 November 2017, 20:39:06
Hallo clumsy,

glaube das ist genau das was ich suche, möchte deine Codeschnipsel für Zoneminder gerne verwenden jedoch ist mir nicht ganz klar wo ich den Perldaemon abspeichern muss ???

bitte um hilfe


Mfg Mani
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 05 November 2017, 21:46:44
Hallo

Zitat von: mani am 05 November 2017, 20:39:06
glaube das ist genau das was ich suche, möchte deine Codeschnipsel für Zoneminder gerne verwenden jedoch ist mir nicht ganz klar wo ich den Perldaemon abspeichern muss ???

Der Perl-Daemon ist lediglich ein Script dass im Hintergrund laufen muss. Am besten speicherst du den dorthin wo alle anderen Start-Scripts sind (eg. unter Linux im /etc/rc.d) und startest ihn nachdem Zoneminder und fhem gestartet wurden, damit er auf beide Ports connecten kann!

Grüsse

STefan
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: mani am 06 November 2017, 09:35:15
Hallo danke für  die schnelle Antwort..

also könnte ich den auch in der 99.Utils.pm abspeichern oder?

Mfg Mani
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 06 November 2017, 22:27:52
Zitat von: mani am 06 November 2017, 09:35:15
also könnte ich den auch in der 99.Utils.pm abspeichern oder?
öhm, kann ich dir nicht so genau sage... das ist ja ein daemon der im hintergrund laufen muss... ich glaube aus dem FHEM heraus kannst du so einfach keinen hintergrund daemon starten... also ich mach das einfach eben analog dem start von fhem und zoneminder...

Grüsse

STefan
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Wetterhexe am 06 November 2017, 22:41:17
Danke @Stefan für die Codeschnipsel  :)

Dein zm2fhem script ist genau das was ich gesucht habe. Ich verwende zm schon ewig, aber irgendwie konnte ich bis jetzt nix mit dem zmtrigger anfangen  :o

lg, Christina
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 06 November 2017, 23:24:49
Zitat von: Wetterhexe am 06 November 2017, 22:41:17
Danke @Stefan für die Codeschnipsel  :)
Dein zm2fhem script ist genau das was ich gesucht habe. Ich verwende zm schon ewig, aber irgendwie konnte ich bis jetzt nix mit dem zmtrigger anfangen  :o
cool.. freut mich... falls es verbesserungen gibt, immer gerne ;)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: weini am 15 November 2017, 23:11:46
Spannendes Thema!
Ich habe bei mir auch ZM mit FHEM integriert. Mir ging es aber ausschließlich darum, den ZM State von FHEM aus zu setzen (abhängig von meiner FHEM-basierenden PRESENCE Erkennung). Das konnte ich am Ende ohne jegliche Skripte nur via HTTPMOD lösen:

Zitat
defmod zoneMinder HTTPMOD none 0
attr zoneMinder userattr replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value set01Name set01NoArg:0,1 set01ReAuthRegex set01Replacement01Value set01Replacement02Value set01URL set02Name set02NoArg:0,1 set02Replacement01Value set02Replacement02Value set02URL set0ReAuthRegex sid1URL
attr zoneMinder enableControlSet 1
attr zoneMinder enableCookies 1
attr zoneMinder reAuthAlways 1
attr zoneMinder replacement01Mode key
attr zoneMinder replacement01Regex %%ZM_USER%%
attr zoneMinder replacement01Value ZM_USER
attr zoneMinder replacement02Mode key
attr zoneMinder replacement02Regex %%ZM_PASS%%
attr zoneMinder replacement02Value ZM_PASS
attr zoneMinder set01Name all-monitor
attr zoneMinder set01NoArg 1
attr zoneMinder set01URL http://zmserver/zm/api/states/change/all-monitor.json
attr zoneMinder set02Name all-modect
attr zoneMinder set02NoArg 1
attr zoneMinder set02URL http://zmserver/zm/api/states/change/all-modect.json
attr zoneMinder set0ReAuthRegex 401|UnauthorizedException|Not Authenticated
attr zoneMinder sid1URL http://zmserver/zm/index.php?username=%%ZM_USER%%&password=%%ZM_PASS%%&action=login&view=console
attr zoneMinder timeout 10

all-monitor und all-motdect sind als States im ZM definiert. ZM_USER und ZM_PASS müssen via SET gesetzt werden.
Natürlich muss das API beim ZM aktiviert sein und funktionieren.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 16 November 2017, 07:21:33
Zitat von: weini am 15 November 2017, 23:11:46
Ich habe bei mir auch ZM mit FHEM integriert. Mir ging es aber ausschließlich darum, den ZM State von FHEM aus zu setzen (abhängig von meiner FHEM-basierenden PRESENCE Erkennung). Das konnte ich am Ende ohne jegliche Skripte nur via HTTPMOD lösen.
Das mach ich ähnlich, mit den set befehlen:

attr http_zm_27 set01Data Monitor[Enabled]=$val
attr http_zm_27 set01IMap 0:0,1:1
attr http_zm_27 set01Name enable
attr http_zm_27 set01URL https://www.clumsy.ch/zm/api/monitors/%%zm_id%%.json
attr http_zm_27 set02Data Monitor[Function]=$val
attr http_zm_27 set02Map None:None,Monitor:Monitor,Modect:Modect,Record:Record,Mocord:Mocord,Nodect:Nodect
attr http_zm_27 set02Name function
attr http_zm_27 set02URL https://www.clumsy.ch/zm/api/monitors/%%zm_id%%.json

lässt sich die "Function" der Cam sowie enable/disable per set befehl setzen (analog zum ZM-Gui). Für jede Cam einzeln natürlich.

Das Script macht ja die umgekehrte Verbindung, also vom ZM zum FHEM, hauptsächlich um ZM-Motion-Event im FHEM mitzubekommen. So kann ich auf dem Tablet der Haussteuerung automatisch immer die Kamera anzeigen, welche grad Bewegung hat...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 22 Januar 2018, 22:40:53
Hallo,

ich habe mal eine "verbesserte Version" erstellt.

- Support von HTTPS,
- Mehr Variablen, weniger doppelte Konfiguration notwendig
- Propper Login

define zoneminder_flur HTTPMOD none 5
attr zoneminder_flur userattr get01Name get01Poll:0,1 get01PollDelay get01PollDelay:0,1 get01URL get02ExtractAllJSON:0,1 get02MaxAge get02Name get02Poll:0,1 get02URL get03JSON get03Name get03Poll:0,1 get03URL get04-1Name get04-2Name get04JSON get04Name get04Poll:0,1 get04URL readi reading02MaxAge reading02MaxAgeReplacement replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value securitycams securitycams_map set01Data set01IMap set01Name set01URL set02Data set02Map set02Name set02URL sid1URL structexclude zoneminder_flur zoneminder_flur_map
attr zoneminder_flur sslArgs SSL_verify_mode,0
attr zoneminder_flur alias Kamera - Flur
attr zoneminder_flur devStateIcon present:it_camera@0CFB0C absent:it_camera@E50005
attr zoneminder_flur enableControlSet 1
attr zoneminder_flur enableCookies 1
attr zoneminder_flur reAuthAlways 0
attr zoneminder_flur reAuthRegex .*Not Authenticated.*
attr zoneminder_flur set0ReAuthRegex 401|UnauthorizedException|Not Authenticated
attr zoneminder_flur sid01Data username=%%ZM_USER%%&password=%%ZM_PASS%%
attr zoneminder_flur sid01URL https://%%zm_host%%/zm/index.php?action=login&view=console
attr zoneminder_flur event-on-update-reading .*
attr zoneminder_flur get02ExtractAllJSON 1
attr zoneminder_flur get02Name status
attr zoneminder_flur get02Poll 1
attr zoneminder_flur get02URL https://%%zm_host%%/zm/api/monitors/daemonStatus/id:%%zm_id%%/daemon:zmc.json
attr zoneminder_flur get03JSON status
attr zoneminder_flur get03Name alarm
attr zoneminder_flur get03Poll 1
attr zoneminder_flur get03URL https://%%zm_host%%/zm/api/monitors/alarm/id:%%zm_id%%/command:status.json
attr zoneminder_flur get04-1Name enabled
attr zoneminder_flur get04-2Name function
attr zoneminder_flur get04JSON (monitor_Monitor_Enabled)|(monitor_Monitor_Function)
attr zoneminder_flur get04Name Monitor
attr zoneminder_flur get04Poll 1
attr zoneminder_flur get04URL https://%%zm_host%%/zm/api/monitors/%%zm_id%%.json
attr zoneminder_flur group camera
attr zoneminder_flur room SecurityCAM
attr zoneminder_flur icon it_camera
attr zoneminder_flur reading02MaxAge 10
attr zoneminder_flur reading02MaxAgeReplacement 0
attr zoneminder_flur replacement01Mode text
attr zoneminder_flur replacement01Regex %%zm_id%%
attr zoneminder_flur replacement01Value 1
attr zoneminder_flur replacement02Mode text
attr zoneminder_flur replacement02Regex %%zm_host%%
attr zoneminder_flur replacement02Value 192.168.99.21
attr zoneminder_flur replacement03Mode text
attr zoneminder_flur replacement03Regex %%ZM_USER%%
attr zoneminder_flur replacement03Value SUPERGEHEIMERUSER
attr zoneminder_flur replacement04Mode text
attr zoneminder_flur replacement04Regex %%ZM_PASS%%
attr zoneminder_flur replacement04Value SUPERGEHEIMESPASSWORT
attr zoneminder_flur securitycams zoneminder_home
attr zoneminder_flur set01Data Monitor[Enabled]=$val
attr zoneminder_flur set01IMap 0:0,1:1
attr zoneminder_flur set01Name enable
attr zoneminder_flur set01URL https://192.168.178.36/zm/api/monitors/%%zm_id%%.json
attr zoneminder_flur set02Data Monitor[Function]=$val
attr zoneminder_flur set02Map None:None,Monitor:Monitor,Modect:Modect,Record:Record,Mocord:Mocord,Nodect:Nodect
attr zoneminder_flur set02Name function
attr zoneminder_flur set02URL https://192.168.178.36/zm/api/monitors/%%zm_id%%.json
attr zoneminder_flur sortby 010
attr zoneminder_flur stateFormat { return "present" if ((ReadingsVal("$name","statustext", undef) =~ "running") && (ReadingsVal("$name","status",undef) eq "1"));; return "absent" }
attr zoneminder_flur timeout 5
attr zoneminder_flur verbose 5
attr zoneminder_flur userReadings presence { return "absent" if (ReadingsVal("$name","function",undef) eq "none");; \
        return "disabled" if (ReadingsVal("$name","enabled", undef) eq "0");; \
        return "present" if ((ReadingsVal("$name","statustext", undef) =~ "running.*pid = [0-9]*") && (ReadingsVal("$name","status",undef) eq "1"));; \
        return "unknown" }
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 23 Januar 2018, 08:09:30
Cool, sieht gut aus, werd ich mal ausprobieren... Evtl. könnte man auch noch in den Set-Befehlen den Host mit der %zm_host%% Variable ersetzen, dann ists auch dort generisch!

vielen Dank und Gruss
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 23 Januar 2018, 23:34:16
Zitat von: clumsy am 23 Januar 2018, 08:09:30
Cool, sieht gut aus, werd ich mal ausprobieren... Evtl. könnte man auch noch in den Set-Befehlen den Host mit der %zm_host%% Variable ersetzen, dann ists auch dort generisch!

vielen Dank und Gruss

Die wollte er nicht ersetzen, wenn du eine Lösung kennst, nur her damit ;)

Ich habe noch das Problem, das bei der Auswahl der Funktion im Set Bereich jetzt andere komische mit angezeigt werden, hab den Fehler noch nicht gefunden, aber hat jetzt auch nicht gestört bei der Funktionalität.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 24 Januar 2018, 07:32:25
Zitat von: afloria am 23 Januar 2018, 23:34:16
Die wollte er nicht ersetzen, wenn du eine Lösung kennst, nur her damit ;)
Komisch, bei mir scheint das zu klappen...

Zitat von: afloria am 23 Januar 2018, 23:34:16
Ich habe noch das Problem, das bei der Auswahl der Funktion im Set Bereich jetzt andere komische mit angezeigt werden, hab den Fehler noch nicht gefunden, aber hat jetzt auch nicht gestört bei der Funktionalität.
Ja, sehe ich auch grad (hab das noch nie so gebraucht, sondern immer nur von der Kommandozeile aus), muss ich mir auch mal ansehen...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 27 Januar 2018, 18:56:06
Zitat von: clumsy am 24 Januar 2018, 07:32:25
Komisch, bei mir scheint das zu klappen...
Ja, sehe ich auch grad (hab das noch nie so gebraucht, sondern immer nur von der Kommandozeile aus), muss ich mir auch mal ansehen...

Hallo!

Ich habe eine neue Version fertiggestellt. Das Protokoll (http oder https) ist nun auch konfigurierbar. Die IP-Adressen werden nun überall automatisch ersetzt. Ich habe außerdem das Problem bei der Funktionsauswahl durch Entfernung von enableControlSet behoben.

Viel Spaß mit der Konfiguration!

PS: Wenn jemand weiß, wie man das ordentlich in ein Module gießen kann, bitte PN oder Link dazu.

######################
# ZONEMINDER IFRAMES #
######################
# 20 - Flur
define SecurityCAM_flur weblink iframe http://192.168.XXX.XXX/zm/cgi-bin/nph-zms?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=20
attr SecurityCAM_flur htmlattr width="1300" height="740"
attr SecurityCAM_flur room SecurityCAM

# 18 - Arbeitszimmer
define SecurityCAM_arbeitszimmer weblink iframe http://192.168.XXX.XXX/zm/cgi-bin/nph-zms?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=18
attr SecurityCAM_arbeitszimmer htmlattr width="660" height="500"
attr SecurityCAM_arbeitszimmer room SecurityCAM

##################
# ZONEMINDER API #
##################
# 20 - Flur
define zoneminder_flur HTTPMOD none 5
attr zoneminder_flur userattr get02ExtractAllJSON:0,1 get02Name get02Poll:0,1 get02URL get03JSON get03Name get03Poll:0,1 get03URL get04-1Name get04-2Name get04JSON get04Name get04Poll:0,1 get04URL reading02MaxAge reading02MaxAgeReplacement replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value replacement03Mode:reading,internal,text,expression,key replacement03Regex replacement03Value replacement04Mode:reading,internal,text,expression,key replacement04Regex replacement04Value replacement05Mode:reading,internal,text,expression,key replacement05Regex replacement05Value set01Data set01IMap set01Name set01URL set02Data set02IMap set02Name set02URL set0ReAuthRegex sid01Data sid01URL
attr zoneminder_flur alias Kamera - Flur
attr zoneminder_flur devStateIcon present:it_camera@0CFB0C absent:it_camera@E50005
attr zoneminder_flur enableCookies 1
attr zoneminder_flur event-on-update-reading .*
attr zoneminder_flur get02ExtractAllJSON 1
attr zoneminder_flur get02Name status
attr zoneminder_flur get02Poll 1
attr zoneminder_flur get02URL %%ZM_WEB_PROTOCOL%%://%%ZM_HOST%%/zm/api/monitors/daemonStatus/id:%%ZM_ID%%/daemon:zmc.json
attr zoneminder_flur get03JSON status
attr zoneminder_flur get03Name alarm
attr zoneminder_flur get03Poll 1
attr zoneminder_flur get03URL %%ZM_WEB_PROTOCOL%%://%%ZM_HOST%%/zm/api/monitors/alarm/id:%%ZM_ID%%/command:status.json
attr zoneminder_flur get04-1Name enabled
attr zoneminder_flur get04-2Name function
attr zoneminder_flur get04JSON (monitor_Monitor_Enabled)|(monitor_Monitor_Function)
attr zoneminder_flur get04Name Monitor
attr zoneminder_flur get04Poll 1
attr zoneminder_flur get04URL %%ZM_WEB_PROTOCOL%%://%%ZM_HOST%%/zm/api/monitors/%%ZM_ID%%.json
attr zoneminder_flur group camera
attr zoneminder_flur icon it_camera
attr zoneminder_flur reAuthAlways 0
attr zoneminder_flur reAuthRegex .*Not Authenticated.*
attr zoneminder_flur reading02MaxAge 10
attr zoneminder_flur reading02MaxAgeReplacement 0
attr zoneminder_flur replacement01Mode text
attr zoneminder_flur replacement01Regex %%ZM_ID%%
attr zoneminder_flur replacement01Value FHEMCAMERAMONITORID
attr zoneminder_flur replacement02Mode text
attr zoneminder_flur replacement02Regex %%ZM_HOST%%
attr zoneminder_flur replacement02Value 192.168.XXX.XXX
attr zoneminder_flur replacement03Mode text
attr zoneminder_flur replacement03Regex %%ZM_USER%%
attr zoneminder_flur replacement03Value FHEMUSER
attr zoneminder_flur replacement04Mode text
attr zoneminder_flur replacement04Regex %%ZM_PASS%%
attr zoneminder_flur replacement04Value FHEMPASSWORD
attr zoneminder_flur replacement05Mode text
attr zoneminder_flur replacement05Regex %%ZM_WEB_PROTOCOL%%
attr zoneminder_flur replacement05Value https
attr zoneminder_flur room SecurityCAM
attr zoneminder_flur set01Data Monitor[Enabled]=$val
attr zoneminder_flur set01IMap 0:0,1:1
attr zoneminder_flur set01Name enable
attr zoneminder_flur set01URL %%ZM_WEB_PROTOCOL%%://%%ZM_HOST%%/zm/api/monitors/%%ZM_ID%%.json
attr zoneminder_flur set02Data Monitor[Function]=$val
attr zoneminder_flur set02IMap None:None,Monitor:Monitor,Modect:Modect,Record:Record,Mocord:Mocord,Nodect:Nodect
attr zoneminder_flur set02Name function
attr zoneminder_flur set02URL %%ZM_WEB_PROTOCOL%%://%%ZM_HOST%%/zm/api/monitors/%%ZM_ID%%.json
attr zoneminder_flur set0ReAuthRegex 401|UnauthorizedException|Not Authenticated
attr zoneminder_flur sid01Data username=%%ZM_USER%%&password=%%ZM_PASS%%
attr zoneminder_flur sid01URL %%ZM_WEB_PROTOCOL%%://%%ZM_HOST%%/zm/index.php?action=login&view=console
attr zoneminder_flur sortby 010
attr zoneminder_flur sslArgs SSL_verify_mode,0
attr zoneminder_flur stateFormat { return "present" if ((ReadingsVal("$name","statustext", undef) =~ "running") && (ReadingsVal("$name","status",undef) eq "1"));; return "absent" }
attr zoneminder_flur timeout 5
attr zoneminder_flur userReadings presence { return "absent" if (ReadingsVal("$name","function",undef) eq "none");; \
        return "disabled" if (ReadingsVal("$name","enabled", undef) eq "0");; \
        return "present" if ((ReadingsVal("$name","statustext", undef) =~ "running.*pid = [0-9]*") && (ReadingsVal("$name","status",undef) eq "1"));;\
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 02 Juni 2018, 14:10:23
Hallo,

ich habe es versucht nachzuvollziehen, bin aber dran gescheitert.

Ich habe hier auch Zoneminder laufen und möchte folgende Dinge gerne mit Fhem verbinden:

- Bei Einem Alert/Event einer Kamera möchte ich dies in Fhem auswerten
- ich möchte auch gerne den Monitor-Modus einer Kamera ändern (bei Anwesenheit zB die Aufzeichnung unterbrechen usw)

Vielleicht kann es jmd. Schritt-für-Schritt erklären?

Danke!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 03 Juni 2018, 01:30:14
Zitat von: spel am 02 Juni 2018, 14:10:23
Hallo,

ich habe es versucht nachzuvollziehen, bin aber dran gescheitert.

Ich habe hier auch Zoneminder laufen und möchte folgende Dinge gerne mit Fhem verbinden:

- Bei Einem Alert/Event einer Kamera möchte ich dies in Fhem auswerten
- ich möchte auch gerne den Monitor-Modus einer Kamera ändern (bei Anwesenheit zB die Aufzeichnung unterbrechen usw)

Vielleicht kann es jmd. Schritt-für-Schritt erklären?

Danke!

Hallo,

die Daten werden von dem Zoneminder Server alle paar Sekunden, bzw. je nachdem, was du konfiguriert hast abgefragt. Dabei wird u. a. auch der alarm Status abgefragt. Damit ein Alarm in Zoneminder erkannt wird, musst du die Kamera mind. im Detect Modus ausführen, wenn ich mich nicht irre. "alarm" wird dann auf 1 geändert, sollte Zoneminder einen alarm ausgelöst haben. Wie du dir nun aber denken kannst, ist es nicht die beste Methode, Zoneminder alle paar Sekunden abzufragen. Ich arbeite gerade daran, mal zu prüfen, in wiefern z.B. Zoneminder und MQTT miteinander arbeiten können. Dann kann man nämlich die Abfragerei lassen, und Zoneminder meldet sich selbst, wenn etwas erkannt worden ist.

Wenn du mein Beispiel benutzt hast, kannst du die Kameras je nach Anwesenheit so steuern:
# SecurityCAM aktivieren wenn nicht Zuhause
define notify_zoneminder_homestate_on notify rgr_Bewohner:(absent|gone) { \
        fhem "set zoneminder_flur enable 1";; \
fhem "set zoneminder_flur function Modect";; \
}

# SecurityCAM deaktivieren wenn Zuhause
define notify_zoneminder_homestate_off notify rgr_Bewohner:(home) { \
        fhem "set zoneminder_flur enable 1";; \
fhem "set zoneminder_flur function Monitor";; \
}

# SecurityCAM deaktivieren wenn im Schlaf
define notify_zoneminder_homestate_sleep notify rgr_Bewohner:(gotosleep) { \
fhem "set zoneminder_flur function None";; \
        fhem "set zoneminder_flur enable 0";; \
}
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 05 Juni 2018, 09:07:57
Danke!!

Wie kann ich einzelne Alerts abfragen?

Möchte, wenn Zoneminder zB Bewegung erkannt hat, zB eine Telegram Nachricht verschicken!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 08 Juni 2018, 19:40:22
Zitat von: spel am 05 Juni 2018, 09:07:57
Danke!!

Wie kann ich einzelne Alerts abfragen?

Möchte, wenn Zoneminder zB Bewegung erkannt hat, zB eine Telegram Nachricht verschicken!

Die würde ich nicht per Web-API abfragen. Das macht man so nicht. Ich arbeite gerade noch an einer besseren Alternative. Ein Perl Deamon der auf dem Zoneminder Server mit läuft, und den Alarm Status per MQTT meldet. Sprich wann Alarm und wann Ende. Ich könnte mir auch vorstellen, dass dann später so zu erweitern, dass man alles darüber machen kann.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 08 Juni 2018, 19:44:34
du kannst sonst auch das perl-script von hier https://forum.fhem.de/index.php/topic,34570.msg612182.html#msg612182 (https://forum.fhem.de/index.php/topic,34570.msg612182.html#msg612182) nehmen, das benutzt den Zoneminder Eventdeamon und meldet ereignise in echtzeit direkt dem FHEM...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 09 Juni 2018, 16:36:02
Zitat von: clumsy am 08 Juni 2018, 19:44:34
du kannst sonst auch das perl-script von hier https://forum.fhem.de/index.php/topic,34570.msg612182.html#msg612182 (https://forum.fhem.de/index.php/topic,34570.msg612182.html#msg612182) nehmen, das benutzt den Zoneminder Eventdeamon und meldet ereignise in echtzeit direkt dem FHEM...

Ich habe eine erste Beta, siehe Anhang. Die sendet schon mal, was uns so interessiert. Wenn jemand Zeit hat, ein Empfang Teil wäre nice, würde ich dann nach meinem Urlaub weiter dran arbeiten.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Spezialtrick am 12 Juni 2018, 17:45:11
Zitat von: afloria am 09 Juni 2018, 16:36:02
Ich habe eine erste Beta, siehe Anhang. Die sendet schon mal, was uns so interessiert. Wenn jemand Zeit hat, ein Empfang Teil wäre nice, würde ich dann nach meinem Urlaub weiter dran arbeiten.

Kannst du mir ein paar Informationen geben, wie es zu testen ist. Habe großes Interesse an der Zoneminder Einbindung in Fhem.  :)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 28 Juni 2018, 21:28:02
Zitat von: Spezialtrick am 12 Juni 2018, 17:45:11
Kannst du mir ein paar Informationen geben, wie es zu testen ist. Habe großes Interesse an der Zoneminder Einbindung in Fhem.  :)

Ich werde die kommenden Tage wenn Zeit ist, eine Anleitung im Wiki Schreiben. Echt klasse, der MQTT Client gibt eine Info an FHEM und dann läd FHEM das Bild runter und schickt es mir per Telegram :D
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: inesa394 am 02 Juli 2018, 04:17:09
Würde mich auch brennend interessieren suche schon lang eine Möglichkeit Zoneminder in Fhem zu integrieren.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 20 August 2018, 22:57:24
Hallo zusammen,

ich bin wohl nicht der Einzige, der ZM events gerne in fhem auswerten würde.
Hier mein Ansatz:
fhem selber kann auf den event port 6802 horchen, es ist kein eigenständiger prozess dafür nötig.

Im Anhang meine Implementierung.
zb per define zm ZoneMinder 192.168.4.200 wird die Verbindung zu ZoneMinder als physisches device angelegt.
Wird ein event empfangen, wird automatisch ein logisches device angelegt (ZM_Monitor).

Auf diesem gibt's dann drei readings:
Auf alert:.on kann man dann ganz einfach ein notify setzen.

Weitere (zum Teil schon getestete) Features, die ich einbauen werde:

Ich hab in diesem Thread viel gelernt und bedanke mich somit herzlich bei allen Vor-Postern.

Feedback und Fragen sind natürlich willkommen!

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 21 August 2018, 09:32:34
@delmar: tönt gut, sobald die features da sind und ich etwas zeit habe, werde ich gerne mal mittesten!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 24 August 2018, 19:10:31
Nette Lösung, deutlich besser als mein Daemon, der dann die Nachrichten an MQTT schickt und dann erst weiter an FHEM.

Wenn Zoneminder mal Down ist, wie reagiert das Module dann? Keine waitings in Fhem?

Es gibt noch weitere Nette Daten, die man da von FHEM bekommen kann, z.B. state active oder trigger_state, falls getriggert worden ist.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 24 August 2018, 19:23:24
Zitat von: afloria am 24 August 2018, 19:10:31
Nette Lösung, deutlich besser als mein Daemon, der dann die Nachrichten an MQTT schickt und dann erst weiter an FHEM.

Wenn Zoneminder mal Down ist, wie reagiert das Module dann? Keine waitings in Fhem?

Es gibt noch weitere Nette Daten, die man da von FHEM bekommen kann, z.B. state active oder trigger_state, falls getriggert worden ist.
Danke. MQTT find ich trotzdem sehr spannend; speziell wenn man von einem System Infos an mehrere andere weitergeben möchte.

Wenn ZoneMinder down ist, hat das grundsätzlich keinen Einfluss, weil fhem ja nicht aktiv nach events pollt.
Ich arbeite aber auch schon an der Abfrage einiger ZM APIs.
Das könnte theoretisch ein Problem sein, ich arbeite aber ausschließlich mit non-blocking calls.

Ja, es gibt noch jede Menge interessante Daten. Ganz richtig.
Ich hoffe, übers Wochenende ein Update bringen zu können.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 24 August 2018, 19:30:26
Bitte kurz um euren Input:
Bei mir ist das ZM Web UI über /zm erreichbar, Streaming aber über /zoneminder (der Wert kommt aus PATH_ZMS im Tab 'Paths' in den Settings).
Wie ist das bei euch?
Gleich oder auch unterschiedlich, wie bei mir?

Danke!
schöne grüße
martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 24 August 2018, 22:06:59
Zitat von: delmar am 24 August 2018, 19:30:26
Bitte kurz um euren Input:
Bei mir ist das ZM Web UI über /zm erreichbar, Streaming aber über /zoneminder (der Wert kommt aus PATH_ZMS im Tab 'Paths' in den Settings).
Wie ist das bei euch?
Gleich oder auch unterschiedlich, wie bei mir?

Danke!
schöne grüße
martin

Bei mir ist Zoneminder auch über /zm/ erreichbar. Der Stream über http://192...../zm/cgi-bin/nph-zms?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=15&connkey=573935&rand=1535140873

Ich habe dir mal meine Zoneminder to MQTT Lösung im Anhang hinzugefügt, kannst du ja gut als Informationsquelle nutzen, ich habe viele Datenpunkte später auskommentiert, weil es diese zwar gibt, aber am ende nicht verfügbar sind.

Bei der Abfrage der ZM Api meinst du damit den offenen Port oder die Web Api? Von einer Nutzung der Web Api kann ich nur abraten, das Zonemindersystem kommt damit nicht zurecht. Das hatte ich mal hier im Thread gezeigt: https://forum.fhem.de/index.php/topic,34570.15.html

Hier wie ich den Stream in FHEM einbinde:

# 20 - Flur
define SecurityCAM_flur weblink iframe http://192....../zm/cgi-bin/nph-zms?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=20
attr SecurityCAM_flur htmlattr width="1300" height="740"
attr SecurityCAM_flur room SecurityCAM


IPCAM Module verwende ich dann, damit ich das Bild herunterladen, und mir per Telegram schicken lassen kann:
define zoneminder_ipcam_21 IPCAM 192.1.....
attr zoneminder_ipcam_21 snapshots 1
attr zoneminder_ipcam_21 path /zm/cgi-bin/nph-zms?mode=single&monitor=21
attr zoneminder_ipcam_21 storage /opt/fhem/data/IPCAM


Hier der Auslöser, der das Bild dann verschickt:
define notify_zoneminder_alert notify zoneminder_mqtt_.*:(STATE_ALARM) {\
  my $ipcam_id = ReadingsVal($NAME, "id", "none");;\
  fhem "get zoneminder_ipcam_$ipcam_id image";;\
  fhem "set telegram message security camera detected motion: $NAME - [$NAME:name] ($EVENT)";;\
  fhem "set telegram sendImage /opt/fhem/data/IPCAM/zoneminder_ipcam_[$NAME:id]_snapshot.jpg Roter-Alarm:";;\
}


Deine Lösung ist insofern besser, weil mein Perl Daemon nur alle Sekunde auf einen neuen Alarm pollt. Dein lauschen geht somit um ca. 1s schneller und belastet die CPU weniger, auch wenn das Auslesen nur im RAM stattfindet. Beide Lösungen sind jedenfalls besser als das Pollen der Webapi. Dann hat die CPU richtig zu tun...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Wetterhexe am 24 August 2018, 23:45:38
mein ZM WebUI ist über /zm erreichbar (default)
streaming entsprechend PATH_ZMS (default): /zm/cgi-bin/nph-zms

@delmar: Danke Martin für die beiden Module, laufen bei mir problemlos! Stehe jederzeit für Tests etc. zur Verfügung :)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 25 August 2018, 00:21:56
Zitat von: Wetterhexe am 24 August 2018, 23:45:38
mein ZM WebUI ist über /zm erreichbar (default)
streaming entsprechend PATH_ZMS (default): /zm/cgi-bin/nph-zms

@delmar: Danke Martin für die beiden Module, laufen bei mir problemlos! Stehe jederzeit für Tests etc. zur Verfügung :)

Ich schließe mich an. Teste gerne. Schreibe auch gerne an Module mit, dafür müsste man aber erstmal Ideen für Funktionen sammeln. Ein Github Repo dafür wäre für den Anfang aber sicherlich gut, nach 1-2 Monaten Testzeit dann ins SVN?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 25 August 2018, 10:47:10
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
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 25 August 2018, 12:01:20
Hallo Delmar,

vielen Dank für Deine Arbeit. Bei mir bekommen ich folgender Fehlermeldung beim Reloaden von 70_ZoneMinder.pm

Can't locate Crypt/MySQL.pm in @INC (you may need to install the Crypt::MySQL module) (@INC contains: . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM ./FHEM/lib) at ./FHEM/70_ZoneMinder.pm line 5.
BEGIN failed--compilation aborted at ./FHEM/70_ZoneMinder.pm line 5.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 25 August 2018, 13:24:49
hi

sudo apt install libcrypt-mysql-perl

sollte helfen

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 25 August 2018, 13:32:05
Hi Delmar,

vielen Dank. Jetzt fuktioniert es und kann es testen.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 25 August 2018, 22:08:25
Hallo zusammen!

Kleines Update:
* die URLs für den Link zur ZoneMinder Console (web UI) und die streaming URLs für die Kameras sind jetzt als Readings verfügbar.
* das Attribut streamUrl ist zum ZoneMinder device verschoben worden. Muss nicht mehr pro Kamera gesetzt werden, gilt sofort für alle Kameras, wenn gesetzt

Die Dateien sind außerdem von nun an auf https://github.com/delMar43/FHEM zu finden.

Als nächstes werde ich am enable/disable und setzen der kameramodi (function) arbeiten.
Damit wird dann mMn ein sinnvolles erstes Featureset implementiert sein und ich werde mich um den Feinschliff kümmern.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 29 August 2018, 13:27:04
Hallo delmar!

Vielen Dank für deine Arbeit! - Ich wollte auch testen -  habe aber den STATE disconnected.

Was muss ich in Zoneminder vorbereiten? BN /PW passen.

Danke!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 30 August 2018, 14:07:20
Hallo!

Ich hatte das Problem, dass Fhem das disconnected angezeigt hat. Folglich konnten keine Stati übertragen werden.

Im Log war ein: connection refused angezeigt.

delmar hat mir weitergeholfen und auf

OPT_TRIGGER und
https://wiki.zoneminder.com/How_to_use_your_external_camera%27s_motion_detection_with_ZM

hingewiesen. OPT_TRIGGER muss aktiviert sein!

Danke!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 30 August 2018, 17:13:29
Hi,

habe ein

APILoginError

Invalid username or password.


Allerdings sind die korrekt, sprich wenn ich auf Go to ZoneMinder console klicke funzt es einwandfrei.

Das Passwort hat allerdings ein %-Zeichen enthalten, kann es daran liegen?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 30 August 2018, 17:19:54
Hi,
daran kann es tatsächlich liegen.
Danke für den Hinweis, werde das in den nächsten Tagen adressieren.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 30 August 2018, 18:36:44
Hi,
Zitat von: Florie am 30 August 2018, 17:13:29
Das Passwort hat allerdings ein %-Zeichen enthalten, kann es daran liegen?

habe jetzt urlencode für username und passwort ergänzt, bitte die letzte Version von GitHub probieren.

Danke
schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 30 August 2018, 19:29:55
Habe nach Update der beiden Files FHEM neu gestartet, geht aber leider immer noch nicht, selbe Fehlermeldung
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 30 August 2018, 19:40:53
kannst du mal die Optionen checken? API Zugriff muss aktiviert sein
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 30 August 2018, 20:03:02
API ist an, zmNinja geht auch, der nutzt auch die API ;)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 30 August 2018, 20:14:17
Zitat von: Florie am 30 August 2018, 20:03:02
API ist an, zmNinja geht auch, der nutzt auch die API ;)
Gut, da hast du recht.

Funktioniert "Go to ZoneMinder console" nach dem letzten Update immer noch? Bzw wird das Passwort nun URL-escaped angezeigt?

Also "Invalid username or password" wird wirklich nur dann angezeigt, wenn der ZoneMinder login genau das auch zurückliefert...
Das macht mich stutzig. Aber wenn zmNinja funktioniert, dann ist das einfach nur komisch...

Kanns sein, dass du vielleicht ein Leerzeichen am Ende stehen hast? Bei URL-Encode würde sich das durch ein %20 am Ende bemerkbar machen.

Evtl auch mal checken, was 'list <zm-device-name>' liefert.
zB, macht ZM_WEB_URL Sinn? (muss es ja wohl, wenn der Link zur ZM Console funktioniert)...

Du könntest auch mal versuchen die API Login-URL manuell aufzurufen.
Wird zusammengesetzt aus <ZM_WEB_URL> + /index.php?username=<ZM_USERNAME>&password=<ZM_PASSWORD>&action=login&view=console
Die Parameter sind alle im 'list' command ersichtlich.

Welche ZM Version hast du laufen?

Sonst bin ich echt ratlos.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 30 August 2018, 20:37:06
ja, irgendwie ist das komisch, ich weiß jetzt spontan auch nicht weiter. Ichwerde da morgen nochmal rumspielen. URL-escaped sollte es sein, es kommt jetzt statt % -> %25

list zeigt eigentlich soweit alles richtig an m.E.

ZM Version ist die aktuellste Master 1.31.46
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 30 August 2018, 20:39:48
Ich bin auf 1.30.4

der Sprung auf 1.31 könnte schon einen Unterschied machen
werde mal nach doku suchen
edit: es gab da tatsächlich probleme, die aber fixed sein sollten
daneben kann auch zb PHP 7.2 Ärger machen.

bin sicher, dass hier oder so ähnlich der grund liegt.
da 1.31 aber kein stable branch ist und ich es auch nicht einsetze, kann ich dich hier leider nur passiv unterstützen.
fix Vorschläge setze ich gern um.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 01 September 2018, 13:23:44
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.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 01 September 2018, 13:28:00
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 :-)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 01 September 2018, 13:44:32
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.

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 01 September 2018, 13:58:40
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
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 01 September 2018, 14:04:12
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 ...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag 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?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag 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!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 01 September 2018, 15:27:11
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 ...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 01 September 2018, 15:30:09
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) ...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 01 September 2018, 17:39:09
kannst du den API login mal mit curl laut der ZM doku die ich verlinkt habe versuchen?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 01 September 2018, 17:55:04
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?!?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 01 September 2018, 19:17:41
wenns mit curl auch nicht funkt, dann passt bei ZM was nicht.
wohl doch ein CakePHP thema oder was ähnliches...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag 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
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 02 September 2018, 21:54:57
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
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 03 September 2018, 09:47:07
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
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 07 September 2018, 21:38:14
Zitat von: afloria am 02 September 2018, 21:54:57Wenn 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

Änderungen mit dem letzten Update auf GitHub:

Der Verbindungsabbruch betrifft nur den Event-Port. Für API Aufrufe wird ohnehin jedesmal ein eigener HTTP-Request gemacht. Die sind per Definition stateless.

Feedback willkommen.

Als sinnvollen nächsten Schritt würde ich das senden von Events zu ZoneMinder sehen.
Welches Trigger-Verhalten stellt ihr euch vor?
Ich denke an "set <monitor> alarm on,off,on-for-timer <sec>"

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 13 September 2018, 05:49:20
Hallo Martin,

nach ein paar Tagen habe die letzte Version von GitHub geladen und frisch installiert.
Nach ein ein Trigger bekomme ich folgender Meldung:

2018.09.13 05:44:17 1: ERROR: >ZM_Monitor_zm_1< returned by the ZM_Monitor ParseFn is invalid, notify the module maintainer
2018.09.13 05:44:40 1: ERROR: >ZM_Monitor_zm_1< returned by the ZM_Monitor ParseFn is invalid, notify the module maintainer

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 13 September 2018, 07:40:29
Hallo Ben,

Danke fürs Testen! Ich werde mal versuchen, das zu reproduzieren.
Die Meldung kommt aus dem FHEM Code selber, ich weiß noch nicht, was dazu führt.

ZM_Monitor_zm_1 wäre der Name eines Monitors, den FHEM automatisch vergeben hat.
Kanns sein, dass es das mal gegeben hat, aber zb umbenannt wurde?

Taucht die Meldung auch auf, wenn du das ZoneMinder device und alle ZM_Monitor devices mal löschst und das ZoneMinder device nochmal neu anlegst? (am besten einfach 'raw device definition' unten im Detailscreen kopieren). die ZM_Monitor devices sollten dann ja automatisch neu angelegt werden.

Also ich selber hab auch einige ZM_Monitor devices umbenannt, diese Meldung ist mir aber noch nie aufgefallen. (was nix heißen muss)



schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 13 September 2018, 18:59:03
Hallo Martin,

Danke für Deine Hilfe. ich habe soeben alle ZM-Devices gelöscht und das ZM-Device neu angelegt.

defmod zm ZoneMinder 192.168.178.9 xxxx Xxxxxxx

setstate zm opened
setstate zm 2018-09-13 18:47:39 ZMConsoleUrl http://192.168.xxx.9/zm/index.php?username=xxxx&password=Xxxxxxx&action=login&view=console
setstate zm 2018-09-13 18:47:39 state opened


danach die gleiche Meldung


2018.09.13 18:48:39 1: ERROR: >ZM_Monitor_zm_1< returned by the ZM_Monitor ParseFn is invalid, notify the module maintainer
2018.09.13 18:49:01 1: ERROR: >ZM_Monitor_zm_1< returned by the ZM_Monitor ParseFn is invalid, notify the module maintainer


Grüße und nochmal Danke für Deine Hilfe,

Ben



Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 14 September 2018, 06:50:08
Sehr seltsam.
Kannst du mal bitte verbose auf 5 stellen? beim zm device und den monitoren?
Und dann alles, was von diesen devices so drin steht hier posten?
Vielleicht bringt auch ein 'list zm' und ein list von den monitoren licht in die sache?

danke
martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 14 September 2018, 07:22:12
guten Morgen Martin,

die Monitore werden nicht angelegt. Im Log (mit verbose 5) entsteht folgendes:


2018.09.14 07:16:54 5: zm: dispatch event:1|on|1536902214|66
2018.09.14 07:16:54 2: autocreate: define ZM_Monitor_zm_1 ZM_Monitor 192.168.178.x xxxx Xxxxxx 1
2018.09.14 07:16:54 2: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>
2018.09.14 07:16:54 1: define ZM_Monitor_zm_1 ZM_Monitor 192.168.178.x xxxx Xxxxxx 1: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>
2018.09.14 07:16:54 1: ERROR: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>
2018.09.14 07:17:17 5: zm: dispatch event:1|off|1536902237|66
2018.09.14 07:17:17 2: autocreate: define ZM_Monitor_zm_1 ZM_Monitor 192.168.178.x xxxx Xxxxxx 1
2018.09.14 07:17:17 2: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>
2018.09.14 07:17:17 1: define ZM_Monitor_zm_1 ZM_Monitor 192.168.178.x xxxx Xxxxxx 1: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>
2018.09.14 07:17:17 1: ERROR: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>


ein List von zm bringt:


Internals:
   APILoginStatus 200
   DEF        192.168.178.x xxxx Xxxxxx
   DeviceName 192.168.178.x:6802
   FD         42
   HTTPCookies ZMSESSID=0pnajof0e2o3nmt0qv7in5uot0; zmCSS=flat; zmSkin=classic
   NAME       zm
   NR         607
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   HTTPCookieHash:
     ZMSESSID:
       Options    path=/
       Value      0pnajof0e2o3nmt0qv7in5uot0
     zmCSS:
       Options    expires=Sun, 23-Jul-2028 05:16:09 GMT; Max-Age=311040000
       Value      flat
     zmSkin:
       Options    expires=Sun, 23-Jul-2028 05:16:09 GMT; Max-Age=311040000
       Value      classic
   READINGS:
     2018-09-14 07:16:09   ZMConsoleUrl    http://192.168.178.x/zm/index.php?username=xxxx&password=Xxxxxx&action=login&view=console
     2018-09-14 07:16:09   state           opened
   helper:
     ZM_AUTH_HASH_SECRET     
     ZM_AUTH_KEY b266139e940e84edd60b1f7750fa0e70
     ZM_HOST    192.168.178.x
     ZM_LOGIN_METHOD old
     ZM_PASSWORD Xxxxxx
     ZM_PATH_ZMS             
     ZM_USERNAME xxxx
     ZM_WEB_URL http://192.168.178.x/zm
Attributes:
   verbose    5


Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 14 September 2018, 07:33:48
Hallo Martin,

wenn ich den Monitor manuel anleg mit:


define ZM_Monitor_zm_1 ZM_Monitor 192.168.178.x 1

(ohne Login und Passwort) und ein Ereignis auslös, entstehen nach list "ZM_Monitor_zm_1"

Internals:
   CFGFN     
   DEF        192.168.178.x 1
   IODev      zm
   LASTInputDev zm
   MSGCNT     2
   NAME       ZM_Monitor_zm_1
   NR         705
   STATE      idle
   TYPE       ZM_Monitor
   zm_MSGCNT  2
   zm_TIME    2018-09-14 07:29:23
   READINGS:
     2018-09-14 07:29:23   alert           off
     2018-09-14 07:29:23   eventImageUrl   http://192.168.178.x/            ?mode=single&scale=100&maxfps=30&buffer=1000&monitor=1&user=xxxx&pass=Xxxxxx
     2018-09-14 07:29:23   eventStreamUrl  http://192.168.178.x/            ?source=event&mode=jpeg&event=68&frame=1&scale=100&rate=100&maxfps=30&replay=gapless&user==xxxx&pass=Xxxxxx
     2018-09-14 07:29:23   lastEventId     68
     2018-09-14 07:29:23   lastEventTimestamp 1536902963
     2018-09-14 07:29:23   state           idle
     2018-09-14 07:28:40   streamUrl       http://192.168.178.x/            ?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=1&user==xxxx&pass=Xxxxxx
   helper:
     ZM_HOST    192.168.178.x
     ZM_MONITOR_ID 1
Attributes:


Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 14 September 2018, 07:52:00
Ok, das define command stimmt nicht.
Ich hab aber nochmal den Code auf GitHub gecheckt, dort wird es richtig aufgebaut.
Bist du sicher sicher, dass du die aktuelle Version verwendest?

Weil - genau wie von dir richtig manuell angelegt - das ZM_Monitor device username und passwort garnicht mitkriegt.
Und ich hab auch die History gecheckt, username und passwort waren nie Parameter für ZM_Monitor...

Sämtliche Kommunikation, wofür diese Parameter benötigt werden, läuft über das eltern-device (ZoneMinder).

Also, Code, der sich selber verändert, hab ich noch nie geschrieben.
Entweder, ich habs geschafft, oder es war jemand anderer...  :-\
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 14 September 2018, 08:13:02
Hallo Martin,

vielen Dank für Deine Hilfe. ich habe es soeben noch Mal überprüft und, sicherheitshalber, gedownloaded, überspielt und FHEM neu gestartet.
Die Meldung bleibt der Gleiche.
Die verwendete Version von GitHub (https://github.com/delMar43/FHEM) ist vom 08.09.2018 13:30Uhr.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 14 September 2018, 08:34:14
Ok, danke.

Kannst du mal bei dir im Editor Zeile 260 von 70_ZoneMinder.pm ansehen?
Und mit dieser vergleichen https://github.com/delMar43/FHEM/blob/master/70_ZoneMinder.pm#L260

CommandDefine(undef, "$newDevName ZM_Monitor $zmHost $monitorId");
Hier wird das Define fürs Autocreate zusammengebaut.
Du siehst, dass nur $zmHost und $monitorId übergeben werden.
Laut deinem Log Auszug von vorhin müsste hier auch noch username und password mit drin stehen.

Mal von diesem Autocreate dilemma abgesehen: funktioniert alles wie erwartet mit dem manuell angelegten ZM_Monitor device?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 14 September 2018, 14:00:24
Hallo Martin,

Du glaubst es vielleicht nicht, aber diese Zeile ist Hanau wie von Dir beschrieben.
Kann es sein dass die Information irgendwo anders herkommt (Cookie)?

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 14 September 2018, 14:27:38
EDIT: hast du evtl zwei fhem Instanzen laufen und arbeitest irgendwie mit der falschen?
Klingt jetzt vielleicht blöd, passiert mir aber selber immer wieder mal, wenn ich zwischen meiner Dev-Instanz und der tatsächlich produktiven hin- und her wechsle

Zitat von: Braakhekke am 14 September 2018, 14:00:24
Du glaubst es vielleicht nicht, aber diese Zeile ist Hanau wie von Dir beschrieben.
Pfff, echt komisch

Zitat von: Braakhekke am 14 September 2018, 14:00:24
Kann es sein dass die Information irgendwo anders herkommt (Cookie)?
Eigentlich nicht. Zumindest kenne ich nur diese Eine Codestelle...

fhem update wird wohl auch nix ändern...
Ich werd versuchen, dass über's Wochenende mal nachzustellen.

Funktioniert das Eventing mit dem manuell angelegten Device wie erwartet?

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 14 September 2018, 15:30:58
Hallo Martin,

auch ich habe bereits im Verdacht gehabt im falschen FHEM unterwegs zu sein. Leider ist es das auch nicht.
Ich habe aber vielleicht noch ein anderer Hinweis:

im ZM_Monitor_zm_1 (wo die Links übrigens nicht functionieren) steht folgendes:


Internals:
   CFGFN     
   DEF        192.168.178.x 1
   IODev      zm
   LASTInputDev zm
   MSGCNT     3
   NAME       ZM_Monitor_zm_1
   NR         1404
   STATE      idle
   TYPE       ZM_Monitor
   zm_MSGCNT  3
   zm_TIME    2018-09-14 15:20:50
   READINGS:
     2018-09-14 15:20:50   alert           off
     2018-09-14 15:20:50   eventImageUrl   http://192.168.178.x/            ?mode=single&scale=100&maxfps=30&buffer=1000&monitor=1&user=xxxx&pass=Xxxxxx
     2018-09-14 15:20:50   eventStreamUrl  http://192.168.178.x/            ?source=event&mode=jpeg&event=78&frame=1&scale=100&rate=100&maxfps=30&replay=gapless&user=xxxx&pass=Xxxxxx
     2018-09-14 15:20:50   lastEventId     78
     2018-09-14 15:20:50   lastEventTimestamp 1536931250
     2018-09-14 15:20:50   state           idle
     2018-09-14 15:20:12   streamUrl       http://192.168.178.x/            ?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=1&user=xxxx&pass=Xxxxxx
   helper:
     ZM_HOST    192.168.178.9
     ZM_MONITOR_ID 1
Attributes:


Auf events wird reagiert, der resultierende Link "http://192.168.178.x/ ?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=1&user=xxxx&pass=Xxxxxx" ist aber nicht korrekt.
Interressant ist das zwischen "http://192.168.178.x/" und "?mode=" ein Leerzeichen steht.

Ich werde am Wochenende ein neues Test-FHEM aufsetzen und vom Scratch testen.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 14 September 2018, 16:45:57
Hallo Martin,

konnte es doch nicht erwarten..... und gleich eine neues FHEM in ein neuer CT (PROXMOX) erstellt.
Auch unter dieses "nackte" FHEM funktioniert es nicht und das Ergebnis ist das Gleiche.


2018.09.14 16:39:52 2: autocreate: define ZM_Monitor_zm_1 ZM_Monitor 192.168.178.x xxxx Xxxxxx 1
2018.09.14 16:39:52 2: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>
2018.09.14 16:39:52 1: define ZM_Monitor_zm_1 ZM_Monitor 192.168.178..x xxxx Xxxxxx 1: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>
2018.09.14 16:39:52 1: ERROR: ZM_Monitor (ZM_Monitor_zm_1) - Wrong syntax: define <name> ZM_Monitor <ZM_URL> <ZM_MONITOR_ID>


Das OS worunter FHEM (aktuelle Version) läuft ist Debian GNU/Linux 8. Zoneminder ist die Version v1.29.0. Beide laufen in ein eigenen Container unter PROXMOX (Virtual Environment 5.2-8).
Kann es damit was zu tun haben?

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 14 September 2018, 19:51:55
Irgendwas hab ich vermurkst, ich weiß nur noch nicht, was.

Ich hab alle ZoneMinder und ZM_Monitor devices aus fhem gelöscht.
Dann ein neues ZoneMinder device mit anderem Namen definiert.
Da wurden auch keine ZM_Monitor devices angelegt. Nix hat so richtig funktioniert.
Nach einem 'shutdown restart' wurden aber sofort alle Monitore richtig angelegt.

Leider hab ich auch kein ZoneMinder 1.29 zum Testen.
Ich hab die nötigen Optionen im FHEM-Wiki unter ZoneMinder dokumentiert. Kannst du mal nachlesen, ob es unter 1.29 alle Optionen gibt, die dieses Modul benötigt? (zb PATH_ZMS, denn dieser Wert fehlt bei dir beispielweise).

Also: ich hab absoluten Nachbesserungsbedarf, dein konkretes Problem konnte ich aber nicht nachstellen...

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 14 September 2018, 20:13:23
so, ich glaub ich habs.
aber noch nicht implementiert.

kannst du im ZoneMinder device mal 'updateMonitors' aufrufen? dort sollte das monitor aufrufen funktionieren

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 14 September 2018, 22:05:24
Hallo zusammen!

Neues Update auf GitHub; sollte eine Menge Probleme mit autocreate, etc. beheben
Danke an @Braakhekke für die vielen Informationen.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 15 September 2018, 03:56:11
Hallo Martin,

vielen Dank für Deine Arbeit. Ein bisschen mehr funktioniert es jetzt. Ein 'updateMonitors' legt, bei mir, zwar noch kein 'ZM_Monitor_zm_x' an, aber nach ein Trigger auf der entsprechender Monitor wird das Device und das entsprechende LOG-File angelegt.
Leider aber ist der erzeugte Pfade zu 'eventImageUrl' etc. noch nicht korrekt.

Internals:
   DEF        1
   IODev      zm
   NAME       ZM_Monitor_zm_1
   NR         610
   STATE      idle
   TYPE       ZM_Monitor
   READINGS:
     2018-09-15 03:43:16   alert           off
     2018-09-15 03:43:16   eventImageUrl   http://192.168.178.x/            ?mode=single&scale=100&maxfps=30&buffer=1000&monitor=1&user=xxxx&pass=Xxxxxx
     2018-09-15 03:43:16   eventStreamUrl  http://192.168.178.x/            ?source=event&mode=jpeg&event=0&frame=1&scale=100&rate=100&maxfps=30&replay=gapless&user=xxxx&pass=Xxxxxx
     2018-09-15 03:43:16   lastEventId     0
     2018-09-15 03:43:16   lastEventTimestamp 1536975796
     2018-09-15 03:45:39   state           idle
     2018-09-15 03:41:34   streamUrl       http://192.168.178.x/            ?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=1&user=xxxx&pass=Xxxxxx
   helper:
     ZM_MONITOR_ID 1
Attributes:
   room       ZM_Monitor


zur Info. Bei mein Zoneminder sieht der Pfad zu ein 'eventStreamUrl' wie folgt aus:

http://192.168.178.x/zm/cgi-bin/nph-zms?source=event&mode=jpeg&event=83&frame=1&scale=100&rate=100&maxfps=30&replay=single&auth=fad90bb4f0fa8386b68153378f1c0fe6&connkey=144936&rand=1536977121


anbei auch noch das 'list zm'


Internals:
   APILoginStatus 200
   DEF        192.168.178.x
   DeviceName 192.168.178.x:6802
   FD         43
   HTTPCookies ZMSESSID=emp4qjkiaoean8ns2b84g1ppn3; zmCSS=flat; zmSkin=classic
   NAME       zm
   NR         607
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   HTTPCookieHash:
     ZMSESSID:
       Options    path=/
       Value      emp4qjkiaoean8ns2b84g1ppn3
     zmCSS:
       Options    expires=Mon, 24-Jul-2028 01:45:43 GMT; Max-Age=311040000
       Value      flat
     zmSkin:
       Options    expires=Mon, 24-Jul-2028 01:45:43 GMT; Max-Age=311040000
       Value      classic
   READINGS:
     2018-09-15 03:45:39   ZMConsoleUrl    http://192.168.178.x/zm/index.php?username=xxxx&password=Xxxxxx&action=login&view=console
     2018-09-15 03:46:04   state           opened
   helper:
     ZM_AUTH_HASH_SECRET     
     ZM_AUTH_KEY f3320cc18862b6400945b368af737e39
     ZM_HOST    192.168.178.x
     ZM_LOGIN_METHOD old
     ZM_PASSWORD Xxxxx
     ZM_PATH_ZMS             
     ZM_USERNAME xxxx
     ZM_WEB_URL http://192.168.178.9/zm
Attributes:


Danke und Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 15 September 2018, 08:40:31
ZM_PATH_ZMS in den internals von zm ist leer.
das ist genau der Teil, der in der streaming url fehlt.
sind die folgenden settings in zoneminder aktiv?
OPT_USE_API
PATH_ZMS
AUTH_HASH_SECRET
AUTH_HASH_LOGINS

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 15 September 2018, 09:53:03
Hallo Martin,

bei mir sieht es so aus:

OPT_USE_API : x
PATH_ZMS : /zm/cgi-bin/nph-zms
AUTH_HASH_SECRET : FHEM
AUTH_HASH_LOGINS : x

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 15 September 2018, 10:00:11
hm. Vielleicht gibts durch die zm version ein Problem.
ich werde mal an besserem logging etc arbeiten, um dem Problem auf die spur zu kommen

danke
schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 15 September 2018, 10:24:53
Hallo Martin,

unter welches Distri läuft Dein Zoneminder und welche Version? Hast Du ein gute Installprezedur (Link reicht)?
Ich setztze gern einen neuen Container auf.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 15 September 2018, 10:42:49
ubuntu 14 mit letzter stable zm 1.30.4

läuft schon ewig, weiß leider nicht mehr wie ichs aufgesetzt hab
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 16 September 2018, 08:19:50
guten Morgen Martin,

nach dem ich eine komplett neuer Server (Ubuntu 14.04.5 LTS) mit Zoneminder (v1.30.4) aufgesetzt habe, funktioniert Dein Modul einwandfrei.
Es muß somit was mit der alte Version zu tun gehabt haben.

Nochmal vielen Dank für Deine Hilfe und das tolle Modul.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 16 September 2018, 08:53:02
Freut mich zu hören

Die Ubuntu Version kann auch eine aktuellere sein.
Ich bin sicher, dass es an der ZoneMinder Version lag.

Es wird sicher noch etwas Arbeit nötig sein, aber dein Input hat mir geholfen, viele Kleinigkeiten zu verbessern.

Danke
schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 16 September 2018, 22:27:13
Hallo zusammen.
Hier das Update zum Sonntag, zu haben auf GitHub:

Die Internals ZM_VERSION und ZM_API_VERSION zeigen nun die Werte, die getVersion liefert (https://zoneminder.readthedocs.io/en/stable/api.html#api-version).
Ich bin am überlegen, die API-Funktionalitäten daran fest zu machen. Wenn eine andere ZM_VERSION als 1.30.x verwendet wird, würde nur die OPT_TRIGGERS Funktionalität zur Verfügung stehen.
Wie der regelmäßige Leser festgestellt hat, funktionieren weder 1.29 noch 1.31.
Derzeit ist dieses Limit aber noch nicht eingebaut.

Und: das Triggern eines Alarms in ZoneMinder ist jetzt möglich: set ZM_Monitor_x Alarm on|off|on-for-timer <sekunden>
'on-for-timer' kann man zwar durch aufruf von 'set' verwenden, allerdings zeigt FHEMWEB noch kein Textfeld zur Eingabe der Sekunden.
Falls jemand weiß, wie man das macht, bitte Bescheid geben.

Einen Bug hab ich auch gefixt: das ändern von Function und Enabled war kaputt, funktioniert jetzt aber wieder.

Noch etwas Doku:
Ich habs nie explizit erwähnt, aber das Versenden eines Live-Bildes oder -Streams ist seit längerem möglich.
Auf ein Alert-Event kann man sich eine notification senden, die dann entweder die Inhalte der Readings pubEventImageUrl oder pubEventStreamUrl enthält.
Diese liefern einen Link zu Bild/Stream des letzten Events.

Wer ein Live-Bild oder einen Live-Stream haben will (also von 'jetzt', unabhängig davon, obs gerade ein Event gibt oder nicht), kann auf pubImageUrl und pubEventUrl zurückgreifen.
Man muss also nicht extra ein Event generieren, um aktuelles Material zu kriegen.

@afloria's Use-case hab ich somit bei mir schon am laufen.
Zitat von: afloria am 02 September 2018, 21:54:57
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

Download eines Live-Bildes auf Basis eines Events werde ich hier wohl nicht implementieren, da ich ja schon die URL bereitstelle.
Mir wärs lieber, fertige Download Funktionalität nutzen zu können, die man als Teil der Notification konfiguriert.

Tja, mit dem Triggern von Events wird das Teil hier fertiger und fertiger.
Nächste Schritte sind die commandref, das Wiki um Use-Cases erweitern (wie eben hier zB beschrieben) und schlussendlich dann auch mal Code aufräumen (ja, doch).

Ich überlege außerdem, ZM-Events als eigene fhem-devices einzubinden. Ein Event wäre dann ein eigenes device, allerdings mit einer Limitierung auf zb 10...
Muss ich mir Ressourcentechnisch mal überlegen.
Sinn wäre, zb pro Event infos wie 'schon gesehen' zu speichern und dann auch in Tablet UI schön eine Liste anzuzeigen, etc.

Genug gequatscht: schöne Woche euch allen.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 17 September 2018, 04:23:55
Hallo Martin,

vielen Dank für die Erweiterungen von Dein Modul. Ich habe die neue Version installiert und es funktioniert wunderbar.

Meiner Meinung nach ist ein Textfeld für "set ZM_Monitor_x Alarm on-for-timer x" nicht nötig weil diese Funktion meisten mittels ein Ereignis (z.B. Notify nach einen Event von ein Bewegungsmelder) aufgerufen wird.

Ein paar andere Wünsche hätte ich aber schon noch  :)
Wenn ein Event von ein Bewegungsmelder ausgelöst wird, werden bei mir mittels das Modul "IPCAM" x Bilder in ein Abstand von 2 Sekunden erstellt. Diese Bilder werden anschließend im "Tablet UI" dargestellt.

Schön wäre es diese Funktionalität (also mehrere "eventImageUrl"s etc. mit "Delay" und Zähler) ein zu bauen.

Auch wünsch ich mir wenn es eine Funktionalität für "OPT_TRIGGERS" integriert wird.
Dies verwende ich z.B. um mittels ein externes Script mittels Telnet (weniger schön)

#!/bin/bash
temperature=$(wget -qO - "http://192.168.178.x:8083/fhem?XHR=1&cmd={ReadingsVal(%22gar_ss_Temp_WetterStation%22,%22temperature%22,0)}")
niederschlag=$(wget -qO - "http://192.168.178x:8083/fhem?XHR=1&cmd={ReadingsVal(%22gar_ss_Regen_Sensor%22,%22state%22,0)}")
echo "1|show||||Temp. $temperature C($niederschlag)" | telnet 192.168.178.y 6802


die Außentemperatur und ob es regnet oder trocken ist, in ein Monitor dar zu stellen.

viele Grüße und eine schöne Woche,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 September 2018, 07:54:14
Zitat von: Braakhekke am 17 September 2018, 04:23:55
Wenn ein Event von ein Bewegungsmelder ausgelöst wird, werden bei mir mittels das Modul "IPCAM" x Bilder in ein Abstand von 2 Sekunden erstellt. Diese Bilder werden anschließend im "Tablet UI" dargestellt.
Schön wäre es diese Funktionalität (also mehrere "eventImageUrl"s etc. mit "Delay" und Zähler) ein zu bauen.
Verstehe.
Wärs nicht möglich, einfach aus dem ZM_Monitor device die Bilder über IPCAM zu holen?
IPCAM holt also die Bilder nicht direkt von der Kamera-URL, sondern vom ZM_Monitor Reading.
Kannst du ein Beispiel für die IPCAM Funktionalität hier posten?

Zitat von: Braakhekke am 17 September 2018, 04:23:55

#!/bin/bash
temperature=$(wget -qO - "http://192.168.178.x:8083/fhem?XHR=1&cmd={ReadingsVal(%22gar_ss_Temp_WetterStation%22,%22temperature%22,0)}")
niederschlag=$(wget -qO - "http://192.168.178x:8083/fhem?XHR=1&cmd={ReadingsVal(%22gar_ss_Regen_Sensor%22,%22state%22,0)}")
echo "1|show||||Temp. $temperature C($niederschlag)" | telnet 192.168.178.y 6802

Spitze, das baue ich gern ein.
Ich hab gelesen, dass man über den Trigger-Port auch Text mitgeben kann, hab aber keine ordentliche Doku dazu gefunden.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 17 September 2018, 11:43:25
Hallo Martin,

IPCAM kann mehrere Bilder in ein bestimmter Zeitablauf (bei mir 2 Sek.) aufnehmen und speichern. Diese stehen dann im Tablet UI dann zur Verfügung.
Ich habe das wie folgt gelöst (bitte nicht lachen, ich bin halt kein Programmierer)
Mein Bewegungsmelder "gar_ss_Beweg_Einfahrt" löst das Ereignis aus, darauf reagiert ein Notify


defmod NO_gar_ss_Bewegm2 notify gar_ss_Beweg_Einfahrt:motion {fhem "get Cam_Einfahrt image";;\
}


welches das Modul IPCAM triggert


defmod Cam_Einfahrt IPCAM 192.168.178.8
attr Cam_Einfahrt delay 1
attr Cam_Einfahrt group WebCAM
attr Cam_Einfahrt path /zm/cgi-bin/nph-zms?mode=single&monitor=1&user=admin&pass=Moritz13
attr Cam_Einfahrt room Presence
attr Cam_Einfahrt snapshots 9
attr Cam_Einfahrt storage /opt/fhem/www/images/default/webcam


und die Bilder in das entsprechende Verzeichnis speichert.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 September 2018, 13:51:09
Hallo,

da es sich beim Aufnehmen der Bilder um Funktionalität handelt, die in IPCAM schon implementiert ist, würde ich es besser finden, mein Modul so sinnvoll wie möglich mit diesem zu kombinieren.
Wenn du also zB noch ein weiteres Reading benötigst, lass es mich wissen. (zB um das 'path' attribut automatisch befüllen zu lassen)
Funktionalität duplizieren mach ich aber nicht ;-)

Bezüglich Temperatur anzeigen hab ich schon etwas research gemacht, das sollte sich eigentlich problemlos umsetzen lassen.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 17 September 2018, 14:17:49
Hallo Martin,

Du hast hier Recht. Es wäre nur praktisch gewesen. Freu mich schon auf der der Möglichkeit Text im Monitor anzeigen zu lassen.

schöne Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 September 2018, 15:22:28
Hallo,

Zitat von: Braakhekke am 17 September 2018, 14:17:49
Freu mich schon auf der der Möglichkeit Text im Monitor anzeigen zu lassen.

Ich hab mal probehalber versucht, so ein 'show' kommando abzusetzen, allerdings sehe ich weder am Live-Stream, noch am Recording den entsprechenden Text.

echo "5|show|100|fhem|text|showtext" | telnet localhost 6802


Was mach ich falsch? Kannst du evtl einen Screenshot posten, wie ein richtiges Ergebnis aussehen würde?

Dank dir!

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 17 September 2018, 15:38:27
Hallo Martin,

ich habe das Script im FHEM-Verzeichnis (IP 192.168.178.X) laufen. Dieses macht ein Telnetverbindung zum Zoneminder (IP 192.168.178.Y).
Ach ja, dies funktioniert nur wenn der entsprechender Monitor im "Nodect" Modus ist.
anbei ein Beispielbild.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 September 2018, 15:52:15
Ah, ich hab's gefunden.
Man muss im Timestamp %Q hinzufügen.
Außerdem muss ZoneMinder (oder zumindest die Kamera) neu initialisiert werden (also ZM neu starten).

danke!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 September 2018, 18:49:36
Neues Update auf GitHub: set ZM_Monitor Text 'hallo' ist jetzt umgesetzt.
Man kann somit im Timestamp einen Platzhalter %Q frei befüllen.

Ich hab bei mir jetzt übrigens auch ein IPCAM device zum Download von Images von der ZM_Monitor URL eingerichtet.
Das funktioniert meiner Meinung nach so gut, dass es wirklich keinen Grund gibt, dass in diesem Modul nochmal zu implementieren. :-)

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 17 September 2018, 19:10:19
Hallo Martin,

Danke, endlich bin ich das schreckliche Telnetscript los

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 September 2018, 19:32:23
Ich hatte auch so ein ähnliches Script.
Deshalb hab ich dieses Modul gebaut :-D
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: psycho160 am 17 September 2018, 21:16:48
ICh weiß nicht warum ihr das mit Telnet etc. macht, denn Zoneminder sieht dafür ein Interface vor.
Zitat

ZM_OPT_TRIGGERS

ZoneMinder can interact with external systems which prompt or cancel alarms. This is done via the zmtrigger.pl script. This option indicates whether you want to use these external triggers. Most people will say no here.


1. in den Zoneminder Einstellungen ZM_OPT_TRIGGERS aktivieren

2. habe ich ein PHP Script das sich zum Zoneminder verbindet

<?php
   $extTrigger 
$_GET['extTrigger'];
// hier die Zoneminder Server IP
   
$cfgServer "192.168.1.1";
   
$cfgPort 6802;

$conn_handle fsockopen($cfgServer$cfgPort);
 if(!
$conn_handle) {
        echo 
"Connection failed ";
   exit();
    }else{
      
//  echo "Connected <br>";
        
fputs($conn_handle$extTrigger);
    }  
fclose($conn_handle);   

?>



3. im FHEM rufe ich dieses Script auf (nonblocking -> Falls Zoneminder mal nicht läuft)


+*00:30:10 { 
my $OUTtemp = ReadingsVal("CUL_HM_HM_WDS10_TH_O_1CCC03", "temperature", "0");
my $encodedURL = urlEncode("4|show|255|display txt|cam-control|- Temp: $OUTtemp");

HttpUtils_NonblockingGet( { url=>"http://localhost/camtext.php?extTrigger=$encodedURL",  method=>"HEAD", header=>"User-Agent: TeleHeater/2.2.3\r\nAccept: application/json", callback=>sub($$$) { my ($hash, $err, $data) = @_;; Log 1, "ZM-Temp: $err/$data" } }) }


Kurze Beschreibung zum Code oben:
Lese aus meinem Temperatursensor alle 30min die Temperatur ein und schreibe sie auf das Kamerabild von Monitor 4 (siehe encodedURL)

Mache das mit einigen anderen notifys auch so und das läuft eigentlich sehr stabil.

Vl kann es jemand gebrauchen.

lg
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 18 September 2018, 07:19:03
Zitat von: psycho160 am 17 September 2018, 21:16:48
ICh weiß nicht warum ihr das mit Telnet etc. macht, denn Zoneminder sieht dafür ein Interface vor.
Telnet macht ja genau das. Es verbindet sich zu diesem Interface und sendet eine ASCII Zeichenkette.

Zitat von: psycho160 am 17 September 2018, 21:16:48
2. habe ich ein PHP Script das sich zum Zoneminder verbindet
Genau das ist eigentlich der Knackpunkt an diesem Thread: wir wollten keine externen Scripte mehr konfigurieren und warten müssen, sondern diese Funktionalität direkt in einem ZoneMinder Modul haben.
Ob in diesem externen Script dann PHP oder Telnet oder sonstwas gemacht wird, ist nebensächlich. Ich will einfach kein zusätzliches Ding zwischen FHEM und ZoneMinder haben.

Was du jetzt über dein PHP script machst, sollte auch im ZoneMinder Modul funktionieren.
Wenn das ZoneMinder Modul die Monitor-devices angelegt hat, kannst du folgendes als Notify command ausführen:

{fhem("set ZM_Monitor_4 Text ".ReadingsVal('CUL_HM_HM_WDS10_TH_O_1CCC03', 'temperature', '0'))}


Vielleicht kannst du damit was anfangen.
Sollte was fehlen, nehm ich das gern mit rein.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 19 September 2018, 04:57:21
Hallo Martin,

ich war, beruflich, etwas eingespannt und kann erst jetzt wieder testen. Deine neue Funktion "Text " funktioniert bei mir einwandfrei bis auf eine Kleinigkeit:
Warum wird untenstehendes nicht auf alle Drei Kameras ausgegeben:


defmod NO_TempCam notify gar_ss_Regen_Sensor:state:.*|gar_ss_Temp_WetterStation:temperature:.* {\
fhem("set ZM_Monitor_zm_1 Text Temp.".ReadingsVal('gar_ss_Temp_WetterStation', 'temperature', '0').'C '.ReadingsVal('gar_ss_Regen_Sensor', 'state', '0'));;\
fhem("set ZM_Monitor_zm_2 Text Temp.".ReadingsVal('gar_ss_Temp_WetterStation', 'temperature', '0').'C '.ReadingsVal('gar_ss_Regen_Sensor', 'state', '0'));;\
fhem("set ZM_Monitor_zm_3 Text Temp.".ReadingsVal('gar_ss_Temp_WetterStation', 'temperature', '0').'C '.ReadingsVal('gar_ss_Regen_Sensor', 'state', '0'))\
}

Das Ergebnis auf Monitor 1 ist richtig "Temp.13.6C dry", auf Monitor 2 steht "Temp.13.6C dry3" und auf Monitor 3 steht nur noch ein Leerzeichen.

Ist in mein Notify was falsch oder liegt es an das Modul?

Danke und Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 19 September 2018, 20:06:07
Hallo!
Zitat von: Braakhekke am 19 September 2018, 04:57:21
Ist in mein Notify was falsch oder liegt es an das Modul?
Wenn du verbose auf mindestens 4 stellt, solltest du im Log die Strings sehen, die an den ZM-Port 6802 geschickt werden.
Wenn es 2x funktioniert und beim dritten mal nicht, gehe ich davon aus, dass das Modul grundsätzlich funktioniert.
Wenn im Log das falsche steht, dürfte etwas im Notify nicht stimmen.

Ich selber hab festgestellt, dass ich, nachdem ich %Q zum Timestamp in ZM hinzugefügt habe, ZoneMinder komplett neu starten musste, damit Werte auch wirklich übernommen wurden. Vielleicht hast du das noch nicht gemacht, nachdem du Monitor 3 konfiguriert hast?
Außerdem ist ZoneMinder extrem heikel, was Sonderzeichen, Umlaute, etc. angeht.
Werde hier noch eine Validierung einbauen müssen.
Aber bei Monitor 3 gibts bei dir ja keinen Unterschied, was das betrifft, richtig?


Ich hab noch ein anderes Problem festgestellt.
Nach einigen Tagen wurde der Auth-Key nicht mehr aktualisiert.
Warum, weiß ich noch nicht.
Auf GitHub liegt aber eine neue Version, die auf verbose level 3 Log statements schreibt, falls die Verbindung zu ZoneMinder verloren gegangen ist.

schöne Grüße
Martin

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 19 September 2018, 21:57:03
Ich will kein Klugscheißer sein, aber sauberer Code macht debugging oft einfacher.
Wenn ich es richtig verstanden habe, zeigen alle 3 Kameras den selben Text?
Irgendwas in dieser Form wäre lesbarer:


defmod NO_TempCam notify gar_ss_Regen_Sensor:state:.*|gar_ss_Temp_WetterStation:temperature:.* {\
my $temp = ReadingsVal('gar_ss_Temp_WetterStation', 'temperature', '0');;\
my $rain = ReadingsVal('gar_ss_Regen_Sensor', 'state', '0');;\
Log3 'ZM_Monitor', 0, "temp: $temp, rain: $rain";;\
fhem("set ZM_Monitor_zm_1 Text Temp.$temp"."C $rain");;\
fhem("set ZM_Monitor_zm_2 Text Temp.$temp"."C $rain");;\
fhem("set ZM_Monitor_zm_3 Text Temp.$temp"."C $rain")\
}


Falls der Log-Output vom Modul selber nicht ausreichen würde, hättest du auch hier die Chance, zu loggen (was ich versucht habe, darzustellen)

Dieser Code ist aber nicht getestet, hab ich nur im Editor zusammengebastelt.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 20 September 2018, 05:37:07
Hallo Martin,

vielen Dank für Deine Optimierung und Änderung von mein Notify. Ich habe dies eingebaut und sicherheitshalber FHEM und Zoneminder neu gestartet. Leider muss ich schreiben dass, obwohl im LOG korrekt

2018.09.20 05:28:21 4: NO_TempCam exec {
my $temp = ReadingsVal('gar_ss_Temp_WetterStation', 'temperature', '0');;
my $rain = ReadingsVal('gar_ss_Regen_Sensor', 'state', '0');;
Log3 'ZM_Monitor', 0, "temp: $temp, rain: $rain";;
fhem("set ZM_Monitor_zm_1 Text Temp.$temp"."C $rain");;
fhem("set ZM_Monitor_zm_2 Text Temp.$temp"."C $rain");;
fhem("set ZM_Monitor_zm_3 Text Temp.$temp"."C $rain")
}
2018.09.20 05:28:21 0: temp: 12.5, rain: dry


die Werte, ich weiß das hört sich komisch an, in ZM_Monitor_zm_3 ab und zu richtig eingetragen werden, meistens aber nicht.
Kann es sein das die drei Befehle zu schnell hintereinander kommen und Zoneminder dies nicht verarbeiten kann?

Grüße,

Ben

ps. Ich habe gerade noch mal neu gestartet und manuel ein Trigger auf das Notify ausgelößt. Interessant ist dabei die "3" in in "ZM_Monitor_zm_2". Wo kommt dieser Wert her?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 20 September 2018, 07:15:36
Zitat von: Braakhekke am 20 September 2018, 05:37:07
in ZM_Monitor_zm_3 ab und zu richtig eingetragen werden, meistens aber nicht.
Mir ist auch aufgefallen, dass das nicht immer so gut funktioniert, der Neustart hat aber dann eigentlich immer geholfen.
Kann schon sein, dass ZoneMinder mit 3 Nachrichten nacheinander überfordert ist.
Durch die Variablen $temp und $rain ist jetzt ja auch sichergestellt, dass der Text identisch ist, dh an Sonderzeichen etc kanns auch nicht liegen.
Was ist, wenn du zB Monitor 2 mal herausnimmst, und nur an 1 und 3 schickst?
Zeit Monitor 3 den Text dann immer korrekt?

Zitat von: Braakhekke am 20 September 2018, 05:37:07
Interessant ist dabei die "3" in in "ZM_Monitor_zm_2". Wo kommt dieser Wert her?
Da ja, wie oben schon erwähnt, durch die Variablen sicher immer der selbe String übergeben wird, kann's eigentlich nur daran liegen, dass direkt in ZoneMinder bei der Konfiguration des Monitor Timestamps die '3' drinsteht.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 20 September 2018, 07:35:11
wenn ich "ZM_Monitor_zm_2" aus dem Notify entfern und Zoneminder neu gestartet habe, erscheinen die richtige Werte in  "ZM_Monitor_zm_1" und  "ZM_Monitor_zm_3".
"%Q" ist somit richtig eingetragen

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 20 September 2018, 07:49:28
Zitat von: Braakhekke am 20 September 2018, 07:35:11
wenn ich "ZM_Monitor_zm_2" aus dem Notify entfern und Zoneminder neu gestartet habe, erscheinen die richtige Werte in  "ZM_Monitor_zm_1" und  "ZM_Monitor_zm_3".
"%Q" ist somit richtig eingetragen
Moment, jetzt vermischen wir hier 2 unterschiedliche Dinge.

Das Weglassen von Kamera 2 hatte den Sinn, herauszufinden, ob 3 Requests in kurzer Zeit zu viel sind.
Wenn Kamera 3 den Text nun immer richtig anzeigt, bedeutet das, dass 3 Requests offenbar wirklich zu viele sind (mit %Q hat das aber garnix zu tun).
Eine mögliche Lösung wäre, den Text für Kamera 3 erst zB 2 Sekunden später zu schicken.

fhem("set ZM_Monitor_zm_1 Text Temp.$temp"."C $rain");;
fhem("set ZM_Monitor_zm_2 Text Temp.$temp"."C $rain");;
fhem("defmod atMon3TextDelay at +00:00:02  set ZM_Monitor_zm_3 Text Temp.$temp"."C $rain")


%Q könnte aber für die '3' bei Kamera 2 verantwortlich sein.
%Q ist in ZoneMinder für jede Kamera extra konfiguriert.
Da es nur bei Kamera 2 auftaucht, ist es für die Kameras 1 und 3 natürlich richtig konfiguriert.
Die Frage wäre nun, wie die Timestamp konfiguration in ZoneMinder für Kamera 2 aussieht. Ich bin mir fast sicher, dass dort '%Q 3' drinsteht.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 21 September 2018, 04:16:34
Hallo Martin,

in alle Monitore steht nur "%Q" drin, aber das Problem ist gelöst. Ein Delay, allerdings für ZM_Monitor_zm_2, und das Problem ist gelöst.

nochmals vielen Dank,

Grüße und ein schönes Wochenende,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 21 September 2018, 07:03:00
Zitat von: Braakhekke am 21 September 2018, 04:16:34
in alle Monitore steht nur "%Q" drin, aber das roblem ist gelöst. Ein Delay, allerdings für ZM_Monitor_zm_2, und das Problem ist gelöst.
Freut mich!
Die '3' ist auch verschwunden?

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 21 September 2018, 08:37:39
Hallo Martin,

ja, der "3-er" ist auch verschwunden.

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 26 September 2018, 17:58:37
Hallo delmar,

ich bin gerade dabei, dein Module statt meiner MQTT Eigenentwicklung einzubinden.

Mir ist dabei schon mal ein Punkt aufgefallen:
HTTP/HTTPS.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 26 September 2018, 18:59:40
Hi,

ZitatMir ist dabei schon mal ein Punkt aufgefallen:
HTTP/HTTPS.
Hm.
Genau.

:-D

Edit:
es gibt zwei Möglichkeiten, was du meinen könntest:
Um https streaming urls rauszugeben, kannst du beim ZoneMinder device das Attribut 'pubStreamUrl' setzen.
Dort schreibst du rein, was du gerne vor den Pfad, der in PATH_ZMS hinterlegt ist, stehen haben würdest.
zB https://meine.eigene.domain.de/
Wenn PATH_ZMS in ZoneMinder dann noch /zm/cgi-bin/nph-zms liefert, sollte das zusammen eine gültige streaming URL ergeben (alles was nach PATH_ZMS noch rein muss, hängt das Modul selber dran).
Aber du hast recht: die privaten streaming URLs werden immer noch nur mit HTTP geliefert. Da werde ich eine Konfigurationsmöglichkeit nachliefern.

Falls du beim define an username und passwort noch eine URL drangehängt hast, dann bezieht sich das nur auf den Link, der dann zum ZM Web UI gezeigt wird.

Und hier hast du wieder recht: das ist sehr verwirrend.
Ich werde das noch nachbessern.

Übrigens: den SVN Zugriff hab ich gestern Abend erhalten, ich werde das Wochenende noch mit dem Text für die commandref und besserer Konfiguration verbringen.
Dann überarbeite ich noch das Wiki und wenn alles glatt läuft, gibts ab nächster Woche das Modul offiziell als Teil von FHEM.
Inklusive Ankündigung im richtigen Forum, etc natürlich.

Falls du noch mehr Input hast, bitte immer nur her damit

Danke!
schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 26 September 2018, 19:17:00
Hi,

ich bekomms nicht zum laufen. Ich hab die cmdref so:
# Define ZoneMinder server
define zm ZoneMinder 192.168.0.12 fhem supergeheimespw http://192.168.0.12/zm

# Define ZoneMinder camera: 18
define zoneminder_arbeitszimmer ZM_Monitor 18


Verbose auf 5 liefert nix im Log.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 26 September 2018, 19:18:40
Ich kaufe bitte ein list zm
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 26 September 2018, 19:23:57
Zitat von: delmar am 26 September 2018, 19:18:40
Ich kaufe bitte ein list zm

Internals:
   APILoginStatus 200
   CFGFN      ./conf/sub_configuration/fhem.cfg-ZONEMINDER
   DEF        192.168.0.12 fhem fhem http://192.168.0.12/zm
   DeviceName 192.168.0.12:6802
   FD         13
   HTTPCookies ZMSESSID=dcqj9l27v2me7n9vfjr20mmal2; zmCSS=flat; zmSkin=classic
   NAME       zm
   NR         112
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   ZM_API_VERSION 1.0
   ZM_VERSION 1.30.4
   HTTPCookieHash:
     ZMSESSID:
       Options    path=/; HttpOnly
       Value      dcqj9l27v2me7n9vfjr20mmal2
     zmCSS:
       Options    expires=Fri, 04-Aug-2028 17:09:44 GMT; Max-Age=311040000
       Value      flat
     zmSkin:
       Options    expires=Fri, 04-Aug-2028 17:09:44 GMT; Max-Age=311040000
       Value      classic
   Helper:
     DBLOG:
       state:
         DbLog:
           TIME       1537981789.23631
           VALUE      CPU_Load:
   READINGS:
     2018-09-26 19:09:49   CPU_Load       
     2018-09-26 19:09:22   ZMConsoleUrl    http://192.168.0.12/zm/index.php?username=fhem&password=fhem&action=login&view=console
     2018-09-26 19:09:22   state           opened
   helper:
     ZM_HOST    192.168.0.12
     ZM_LOGIN_METHOD old
     ZM_PASSWORD fhem
     ZM_USERNAME fhem
     ZM_WEB_URL http://192.168.0.12/zm
Attributes:


Die Streamurl im Device stimmt nicht: http://192.168.0.12/:?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=18&user=fhem&pass=fhem

Und die Einstellungen der jeweiligen Kameras lassen sich nicht ändern.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 26 September 2018, 19:32:01
Also:

STATE opened
das sagt, dass die Connection auf TCP 6802 offen ist. (dh du solltest events reinkriegen)

APILoginStatus 200
das sagt, dass der Login an der API OK geliefert hat (theoretisch hats also funktioniert)

ZM_API_VERSION 1.0
ZM_VERSION 1.30.4

fhem konnte deine ZoneMinder version auslesen (API login hat also auch praktisch funktioniert)

Das verbose 5 nix ins Log schreibt, ist seltsam. Eigentlich sollte das Log auf diesem Level komplett absaufen.

Im zm Device hast du oben einen Link, der auf das ZM Web-UI verlinkt.
Funktioniert der?
Wenn ja, dann kann nicht mehr soviel fehlen

Außerdem kannst du im zm Device auf 'get updateMonitors' klicken.
Das sollte eigentlich *alle* Monitore, die definiert sind, als ZM_Monitor devices anlegen.

Wenn nicht, dann erzwinge mal ein event in ZoneMinder.
Wenn es das ZM_Monitor device dazu nicht gibt, sollte es ebenfalls automatisch angelegt werden.

Hast du autocreate aktiv?
(such einfach nach autoload_undefined_devices in der commandref)

Ja, und das im Log nix steht, finde ich sehr verwirrend...

Hoffe, irgendwas davon hilft.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 26 September 2018, 19:36:40
Sorry, ich hatte deine Antwort nicht ganz gelesen.
In deiner Stream-URL fehlt eindeutig der Wert aus PATH_ZMS, der per API geholt wird.

In ZoneMinder müssen folgende Optionen aktiv sein:
OPT_USE_API
OPT_USE_TRIGGERS

Liegts vielleicht daran?

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 26 September 2018, 19:48:18
Zitat von: delmar am 26 September 2018, 19:36:40
Sorry, ich hatte deine Antwort nicht ganz gelesen.
In deiner Stream-URL fehlt eindeutig der Wert aus PATH_ZMS, der per API geholt wird.

In ZoneMinder müssen folgende Optionen aktiv sein:
OPT_USE_API
OPT_USE_TRIGGERS

Liegts vielleicht daran?

Hi,

die sind beide bei mir gesetzt, wenn auch der Name der zweiten Variable bei mir nur "OPT_TRIGGERS" ist.

Das Setzen von Modes funktioniert jetzt, ich hatte das Verbose Logging nur im Device, nicht in der für den Zoneminder Server gesetzt. Danach konnte ich sehen, dass der User fhem nicht genug Rechte hat und das korrigieren. Jetzt hat der Fhem User genau so viele Rechte, wie der admin User, ob das so super ist, ich weiß ja nicht...

Die Fehler würde ich mir vorstellen, sollten direkt als Fehler ausgegeben werden, sodass man dort nicht auf Verbose angewiesen sein muss.

Jetzt passt nur noch die StreamingURL nicht. Wobei ich da auch eigentlich nur die Variable korrekt haben möchte, der Stream soll in FHEM nicht gezeigt werden, dafür habe ich gesonderte iFrames.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 26 September 2018, 20:00:30
Zitat von: afloria am 26 September 2018, 19:48:18
Jetzt passt nur noch die StreamingURL nicht.
Liefert 'list zm' unter Internals --> Helper einen Eintrag für ZM_PATH_ZMS?
Das Log sollte auf 'verbose 4' die wichtigsten Infos liefern, ohne das Logfile komplett zu spammen.
Falls wir das hier nicht hinkriegen, werd ich das Modul um weitere Debug-Log Einträge speziell bei diesem Wert erweitern...

Zitat von: afloria am 26 September 2018, 19:48:18
Jetzt hat der Fhem User genau so viele Rechte, wie der admin User, ob das so super ist, ich weiß ja nicht...
Nö, isses nicht. Eigentlich hatte ich schon das Ziel, mit einem API-User mit minimalen Rechten arbeiten zu können.
Kommt mit auf die Liste fürs Wochenende.

Zitat von: afloria am 26 September 2018, 19:48:18
Die Fehler würde ich mir vorstellen, sollten direkt als Fehler ausgegeben werden, sodass man dort nicht auf Verbose angewiesen sein muss.
Ja, Fehler sollten auf loglevel 0 stehen. Ist notiert.

Zitat von: afloria am 26 September 2018, 19:48:18
Wobei ich da auch eigentlich nur die Variable korrekt haben möchte, der Stream soll in FHEM nicht gezeigt werden, dafür habe ich gesonderte iFrames.
Das der Stream im Device gleich angezeigt wird, war quasi meine Marketing-Masche, um zu zeigen, dass die Integration funktioniert.
Und ist super fürs debugging :-)
Ich werde das per default ausschalten und per Attribut einschaltbar machen.

Dank dir fürs Feedback!
So macht das Spaß :-)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 26 September 2018, 21:12:07
Zitat von: delmar am 26 September 2018, 20:00:30
Liefert 'list zm' unter Internals --> Helper einen Eintrag für ZM_PATH_ZMS?
Das Log sollte auf 'verbose 4' die wichtigsten Infos liefern, ohne das Logfile komplett zu spammen.
Falls wir das hier nicht hinkriegen, werd ich das Modul um weitere Debug-Log Einträge speziell bei diesem Wert erweitern...
Nö, isses nicht. Eigentlich hatte ich schon das Ziel, mit einem API-User mit minimalen Rechten arbeiten zu können.
Kommt mit auf die Liste fürs Wochenende.
Ja, Fehler sollten auf loglevel 0 stehen. Ist notiert.
Das der Stream im Device gleich angezeigt wird, war quasi meine Marketing-Masche, um zu zeigen, dass die Integration funktioniert.
Und ist super fürs debugging :-)
Ich werde das per default ausschalten und per Attribut einschaltbar machen.

Dank dir fürs Feedback!
So macht das Spaß :-)

Einen "ZM_PATH_ZMS" bekomme ich nicht geliefert. In Zoneminder finde ich ein "PATH_ZMS" mit der Value "/zm/cgi-bin/nph-zms".

Den Stream in der Übersicht nutzt halt so kaum jemand, der nerft nur, wenn man auf die Config zugreifen will, bzw. wenn ich ein Kommando absetzt sorgt es für einen zusätzlichen Aufruf am Webserver, dem gefällt das in der selben Sekunde auch nicht.

Wie lange planst du noch in der Beta Phase zu bleiben, bevor das Module im SVN landet? Ein Update Kontrollfile wäre nicht schlecht, wenn es noch länger im Git verbleibt.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 26 September 2018, 23:45:51
Mache vars. werden erst nach einem Event erstellt. Wenn ich das richtig gesehen habe: eventImageUrl und eventStreamUrl. Ich finde beide überflüssig. Lieber nur die EventID schreiben, und dann später funktionen bereitstellen, um die URL zu bauen. So wenig Daten wie möglich erzeugen. Sonst ist die Datenbank so voll...

Auf der anderen Seite fehlen mir dann auch wieder einige Daten. Ich würde mir wünschen, das Original State von Zoneminder auch irgendwo übergeben zu bekommen. Dann kann man z.B. zwischen Trigger (Force Alarm) und echter Alamierung unterscheiden.

STATE 0 = all ok
STATE 1
STATE 2 = ALARM (== FORCED ALARM)
STATE 3 = ALERT


Und "trigger_data:trigger_state". Über die TCP API werden auch noch andere Stati übergeben, z.B. den Status des ZM Monitors: shared_data:active. Wenn ich deinen Code richtig gelesen habe, machst du nach dem setzen ja eine Abfrage per http, besser wäre nach meiner Erfahrung weniger HTTP-Calls. Sonst wird der Zoneminder immer langsamer zu erreichen sein.

Den Namen könntest du auch mit auslesen, und ggf. beim anlegen der Devices verwenden.

In der Dokumentation sollten zwei Tabellen sein, welche Daten nur nach Intervall und welche über die TCP-Api geliefert werden.

Bei den URLs, also bei allen habe ich ein Backslash zu viel: http://192.168.0.12//zm/.

Und ich weiß nicht, ob ich da jetzt zu pingelig bin, aber nen Funktionsaufruf, also Function oder Enable oder Alarm wird normalerweise immer klein geschrieben.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 27 September 2018, 08:22:51
ZitatLieber nur die EventID schreiben, und dann später funktionen bereitstellen
Die Funktionen zum Abruf der Streaming URLs machen Sinn. Mir sind die Readings eh auch zu viel.

ZitatDann kann man z.B. zwischen Trigger (Force Alarm) und echter Alamierung unterscheiden.
Ob das mit dem State so detailliert möglich ist, weiß ich nicht, ich reiche da eigentlich nur Informationen weiter.
Wenn du da bessere Infos (Links zur Doku, Forum, etc) hast: sehr gern.

ZitatDen Namen könntest du auch mit auslesen, und ggf. beim anlegen der Devices verwenden.
Hatte ich auch schon dran gedacht. Macht also +1 :-)
Zumindest als Alias setzen.

ZitatBei den URLs, also bei allen habe ich ein Backslash zu viel: http://192.168.0.12//zm/.
Fällt unter 'aufräumen'. Kommt noch, funktioniert in der Zwischenzeit trotzdem (bei mir zumindest  ;) )

ZitatFunction oder Enable oder Alarm wird normalerweise immer klein geschrieben.
Ich wollte damit zeigen, dass es sich um die ZoneMinder-internen Bezeichnungen handelt (um nicht zB mit dem gängigen 'enabled' in FHEM verwechselt zu werden)
Es ist aber sicher besser, sie klein zu schreiben und statt 'enabled' (die Wurzel des ganzen) eine bessere Bezeichnung zu wählen.

ZitatIn der Dokumentation sollten...
Ja, die liebe Doku.

ZitatUnd ich weiß nicht, ob ich da jetzt zu pingelig bin
Keine Sorge, ich kann da ganz gut filtern.
Was ich für sinnvoll halte, setze ich gern um.

ZitatWie lange planst du noch in der Beta Phase zu bleiben, bevor das Module im SVN landet? Ein Update Kontrollfile wäre nicht schlecht, wenn es noch länger im Git verbleibt.
Wie in einem vorigen Post schon geschrieben, hab ich den SVN Zugriff schon. Ich plane, am Wochenende *alles* umzusetzen, was noch offen ist  ;D

Übrigens: Zwecks Streaming-URL, du kannst als Workaround den Teil, der aus ZM_PATH_ZMS kommen sollte auch an die pubStreamUrl dranhängen. Ist dann zwar redundanz zum Wert aus der ZM-config, aber zumindest solltest du eine gültige Streaming-URL kriegen.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 27 September 2018, 14:37:44
1)
Der Stream wird bei mir jetzt sauber angezeigt, warum Plötzlich müssten wir uns nochmal genauer anschauen. Manche URLs sind erst seit einem Alarm gesetzt, wenn ich das richtig sehe. Ich nutze statt dem Stream iFrames:
# 18 - Arbeitszimmer
define SecurityCAM_arbeitszimmer weblink iframe http://192.168.0.12/zm/cgi-bin/nph-zms?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=18&user=fhem&pass=fhem
attr SecurityCAM_arbeitszimmer htmlattr width="660" height="500"
attr SecurityCAM_arbeitszimmer room SecurityCAM


Bei deinem Stream wird jede Sekunde ein Request an den ZM Webserver geschickt, bei dem iFrame nicht.

2)
Mehr Daten oder funktionen bekommt man laut https://github.com/ZoneMinder/ZoneMinder/blob/master/scripts/zmtrigger.pl.in wohl leider nicht raus. Schade, zumal deutlich mehr verfügbar wäre. Jetzt bin ich in zwei gesplalten, mache ich mein MQTT Client weiter oder schreibe ich gar am zmtrigger herum... hmm...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 27 September 2018, 14:50:11
wird der NPH_ZMS Teil jetzt richtig aus ZM ausgelesen, oder hast du's bei pubStreamUrl angehängt?

Zitat von: afloria am 27 September 2018, 14:37:44
Mehr Daten oder funktionen bekommt man laut https://github.com/ZoneMinder/ZoneMinder/blob/master/scripts/zmtrigger.pl.in wohl leider nicht raus. Schade, zumal deutlich mehr verfügbar wäre. Jetzt bin ich in zwei gesplalten, mache ich mein MQTT Client weiter oder schreibe ich gar am zmtrigger herum... hmm...
ich glaube, das eigentlich richtige interface wäre SharedMem. (hab irgendwo gelesen, dass das einer API, die alles kann am nähesten kommt).
Aber dafür müsste ich mich in perl besser auskennen. keine ahnung, wie man das machen müsste, damit man die libs hat, ohne ZM auf der selben maschine installiert zu haben...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 27 September 2018, 16:47:53
Zitat von: delmar am 27 September 2018, 14:50:11
wird der NPH_ZMS Teil jetzt richtig aus ZM ausgelesen, oder hast du's bei pubStreamUrl angehängt?
ich glaube, das eigentlich richtige interface wäre SharedMem. (hab irgendwo gelesen, dass das einer API, die alles kann am nähesten kommt).
Aber dafür müsste ich mich in perl besser auskennen. keine ahnung, wie man das machen müsste, damit man die libs hat, ohne ZM auf der selben maschine installiert zu haben...

pubStreamUrl habe ich nicht gesetzt. Warum es jetzt plötzlich passt, kann ich mir nur so erklären, dass irgendwo erst Daten gesetzt werden, wenn ein Event o.ä. erfolgt ist. Muss ich mir nochmal inruhe anschauen.

SharedMem ist die Schnittstelle zu Zoneminder. Der zmTrigger bzw. mein MQTT Client ist dann somit eine Zwischenstelle um FHEM mit ZM zu verbinden. Beide arbeiten sehr ähnlich, und das geht nur auf der Maschine, auf der auch ZM läuft. Da die lib direkt auf den Speicher zugreift. Das hat den Vorteil, dass es sehr viel last vom System nimmt.

Der zmTrigger wurde seit einiger Zeit nicht mehr weiterentwickelt, ich tendiere aktuell dahin, dass ich den MQTT weiterentwickeln könnte, Steuerung ermöglichen und Timing Problem lösen. Dann hätte der mehr Features und würde auf moderner Technik basieren. Ich glaube, die Webschnittstelle ist dann sogar nur noch für den Zugriff auf die Streams notwendig.

Für dein Module würde sich in sofern nur ändern, dass statt auf Info vom zm Device warten, auf Info vom MQTT warten,

Was hälst du davon?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 28 September 2018, 07:54:02
Zitat von: afloria am 27 September 2018, 16:47:53
Der zmTrigger wurde seit einiger Zeit nicht mehr weiterentwickelt, ich tendiere aktuell dahin, dass ich den MQTT weiterentwickeln könnte, Steuerung ermöglichen und Timing Problem lösen. Dann hätte der mehr Features und würde auf moderner Technik basieren. Ich glaube, die Webschnittstelle ist dann sogar nur noch für den Zugriff auf die Streams notwendig.

Für dein Module würde sich in sofern nur ändern, dass statt auf Info vom zm Device warten, auf Info vom MQTT warten,

Was hälst du davon?
Da das Modul ja aus einem physischen Teil (70_ZoneMinder) und einem logischen Teil besteht (71_ZM_Monitor), sehe ich kein Problem darin, wenn du zB ein physisches ZoneMinder_MQTT Modul schreibst, und ebenfalls das ZM_Monitor Modul nutzt.

Grundsätzlich müsste man aus dem jetzigen ZoneMinder Modul schon zwei machen, weil die Connection auf TCP 6802 und die HTTP-API eigentlich schon zwei verschiedene physische Connections sind. Find ich aber übertrieben, weil für mich schon im Vordergrund steht, das so einfach und schmerzlos wie möglich installieren zu können.

Man könnte nun argumentieren, doch auch MQTT hier mit rein zu nehmen. Allerdings verwende ich selber MQTT nicht und es ist auch eine Komponente außerhalb von FHEM, die man aufsetzen muss. Deshalb bleib ich bei meinem Eingang erwähnten Vorschlag, einfach ein ZoneMinder_MQTT Modul zu bauen, das ZM_Monitor mit verwendet.
Dafür muss ich übers Wochenende noch etwas aufräumen, damit hier die Gewaltentrennung stimmt :-)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: rudolfkoenig am 28 September 2018, 08:57:59
ZitatAllerdings verwende ich selber MQTT nicht und es ist auch eine Komponente außerhalb von FHEM, die man aufsetzen muss.
Nicht zwingend, siehe https://forum.fhem.de/index.php/topic,90135.0.html
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 28 September 2018, 09:04:07
Zitat von: rudolfkoenig am 28 September 2018, 08:57:59
Nicht zwingend, siehe https://forum.fhem.de/index.php/topic,90135.0.html
Cool, danke für die Info.
Da werfe ich definitiv einen Blick drauf, das kommende Wochenende is aber schon verplant :-)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 28 September 2018, 15:15:34
Zitat von: afloria am 27 September 2018, 14:37:44
Bei deinem Stream wird jede Sekunde ein Request an den ZM Webserver geschickt, bei dem iFrame nicht.
Sorry, das konnte ich jetzt nicht reproduzieren. Chrome und FF machen einen Request und streamen dann.
Edge zeigt sowieso nur ein Bild anstatt eines Streams (nein, das überrascht uns nicht. aber können ja so tun, als ob)
Ist aber egal, da ich das sowieso rausgebe. Dann hast du den Stream nicht mehr in der Detailansicht.

Zitat von: afloria am 27 September 2018, 14:37:44
Mehr Daten oder funktionen bekommt man laut https://github.com/ZoneMinder/ZoneMinder/blob/master/scripts/zmtrigger.pl.in wohl leider nicht raus. Schade, zumal deutlich mehr verfügbar wäre. Jetzt bin ich in zwei gesplalten, mache ich mein MQTT Client weiter oder schreibe ich gar am zmtrigger herum... hmm...
Was würde dein MQTT-client anders machen, um an mehr Daten zu kommen? (ohne etwas an ZMTrigger zu ändern)
ZMTrigger erweitern und dann nach ZoneMinder einen Pull-Request machen wäre mMn die beste Lösung. Manuelle Änderungen werden ja mit jedem ZM-Update wieder überschrieben.
Und eins hab ich nach 10 Jahren nicht-sehr-smarter Bastlerei am SmartHome gelernt: koch nie dein eigenes Süppchen, sonst ersäufst du darin.

Zitat von: afloria
Lieber nur die EventID schreiben, und dann später funktionen bereitstellen
Tja, hier bin ich nun am Überlegen.
Eins ist sicher: wenn ich die Streaming-URL haben will, will ich sie mir nicht aus zig verschiedenen Readings oder Internals oder was auch immer zusammenbauen müssen. Ich will einen Ansatzpunkt haben: derzeit die Readings.
Man könnte die Readings nur für die einzelnen Details nehmen (event-id, authHash, ...) und die ganze URL zB per 'get liveStreamUrl' ausliefern.
Allerdings weiß ich jetzt nicht, ob das nicht - trotz technischer machbarkeit - dem grundsätzlichen Konzept der 'get' Funktionalität widerspricht?
Es wäre ja dazu gedacht, Werte von ZoneMinder zu holen. Nicht dazu, Kalkulationen durchzuführen, oder?

Zitat von: afloria
Manche URLs sind erst seit einem Alarm gesetzt, wenn ich das richtig sehe
Du hast recht, bisher werden eventIds und eventtimestamp, etc nur geschrieben, wenn ein event reinkommt. dh wenn fhem neu gestartet wird, sind diese Readings erstmal leer. Die Readings könnte man initial natürlich auch aus der fhem-api befüllen, bzw auch manuell ein 'get lastEventData' implementieren (hier würde es passen).
Grunsätzlich find ich das Setzen auf Basis von Events richtig, weil ich dann nicht regelmäßig die ZM-API pollen muss.

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 28 September 2018, 15:50:47
Zitat von: afloria am 26 September 2018, 19:48:18
Das Setzen von Modes funktioniert jetzt, ich hatte das Verbose Logging nur im Device, nicht in der für den Zoneminder Server gesetzt. Danach konnte ich sehen, dass der User fhem nicht genug Rechte hat und das korrigieren. Jetzt hat der Fhem User genau so viele Rechte, wie der admin User, ob das so super ist, ich weiß ja nicht...
Mich würde die konkrete Meldung interessieren, die du hier gesehen hast.
Ich hab jetzt einen API user angelegt, der nur für "Stream" und "Monitors" das Recht "View" hat.
Alles andere steht auf "None".
Und alles, was das Modul machen kann, macht es auch: Monitor devices anlegen und Streams darstellen. (Event Triggers laufen ja ohnehin nicht über die Web API)

Wenn du hier mehr Infos für mich hättest, wie ich das Reproduzieren kann, wäre ich dir sehr verbunden.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 29 September 2018, 01:06:02
Hi,

der MQTT Client lief direkt auf der ZM Maschine, als gesonderte Prozess, welcher mittels systemd gestartet wird. Die Datei ist gesondert, also keine ZM Dateien werden überschrieben, so habe ich keine Probleme mit dem Update.
Ich denke ich werde aber einfach eine verbesserte Version der zmtrigger entwickeln. Zu dem vorhandenen Ausgabeformat "bastel" ich ein zusätzliches hinzu. So gibt es keine Kompatiblilitätsprobleme und nach belieben kann das neue Datenmodell genutzt werden.
Wenn ich das fertig habe, würde ich dir dazu eine Info geben. Dauert aber auch genau wie bei dir jetzt etwas länger...

Ich habe das MQTT noch hier liegen, vielleicht wenn von seiten ZM dort Interesse ist, kann man das ja später auch noch einbauen. Würde ich aber eher davon abhängig machen, wie stabil der TCP Server läuft.

Ich habe die Details Seite nochmal aufgerufen, jetzt hatte ich keine Aufrufe im Sekundentackt mehr gesehen. Nach deiner ganz neuen Version jetzt, erscheint auch kein Bild mehr.

Zum Thema Änderungen werden beim Update überschrieben, kann ich dir Automation mit Chef oder Ansible empfehlen. Ich bau damit inzwischen fast meine gesamte EDV Umgebung auf, echt ein Traum!

Zum Thema Reading (Streaming-URL) könnte ich mir auch vorstellen, dass du in der Beispielkonfig einfach die passenden Parameter mit schreibst, um halt
entsprechende überflüssige Vars aus dem Log rauszuhalten.

Die Daten die später gefüllt worden waren, hatte nichts mit den Events zu tun. Das waren aus meiner Sicht Config bzw. StreamURL dinge. Aber bin mir da nicht mehr sicher, da ich es jetzt nicht mehr nachbilden konnte. Also einfach ignorieren. Alles gut so.

Bei dem Rechteproblem hatte ich probleme die Function über FHEM zu setzen. Dazu können wir am besten nochmal gesondert, wenn du Zeit hast, testen...

Mir ist aber noch ein Problem aufgefallen, wenn kein Event da ist, und sozusagen das erste Event erzeugt wird, passiert nix. Erst bei dem zweiten Event wird FHEM tätig.
Kann an dem zmtrigger liegen, oder FHEM, müssten wa auch mal gesondert schauen, wenn mehr Zeit ist.

Thema Autodiscovery: Kann man das auch ausschalten? Ich habe so ein paar Öffentliche Kameras da drin, die schalte ich machmal als Showeffekt ein, haben aber nix in FHEM zu suchen...

Thema IPCAM: Kannst du mal schauen ob es möglich ist, eine get camerapicture oder so ähnlich zu bauen? Damit kann mann ohne zusätzliches IPCAM Device dann ein Bild von der Kamera laden, das wird lokal gespeichert, damit mann es dann wiederum z.B. per Telegram geschickt bekommt.
define zoneminder_ipcam_18 IPCAM 192.168.0.12
attr zoneminder_ipcam_18 snapshots 1
attr zoneminder_ipcam_18 path /zm/cgi-bin/nph-zms?mode=single&monitor=18&user=fhem&pass=fhem
#http://192.168.0.12/zm/cgi-bin/nph-zms?mode=jpeg&scale=100&maxfps=30&buffer=1000&monitor=18
attr zoneminder_ipcam_18 storage /opt/fhem/data/IPCAM
attr zoneminder_ipcam_18 room SecurityCAM


Ansonsten bis jetzt echt Klasse Arbeit!

PS: Sorry, aber ich hasse diese Zitierenfunktion. Also nicht das Zitieren an sich, aber den grausamen Editor im Forum.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 29 September 2018, 11:21:21
Ich beschränke mich aufs nötigste bei der Antwort :-)

Zitat von: afloria am 29 September 2018, 01:06:02
Ich habe die Details Seite nochmal aufgerufen, jetzt hatte ich keine Aufrufe im Sekundentackt mehr gesehen. Nach deiner ganz neuen Version jetzt, erscheint auch kein Bild mehr.
Genau, muss man jetzt per Attribut einschalten.

Zitat von: afloria am 29 September 2018, 01:06:02
Zum Thema Reading (Streaming-URL) könnte ich mir auch vorstellen, dass du in der Beispielkonfig einfach die passenden Parameter mit schreibst, um halt
entsprechende überflüssige Vars aus dem Log rauszuhalten.
Mit Log meinst du das Event-Log? Oder das Log-file?
Weil, wenn du keine Events willst, musst du ja nur event-on-change-reading setzen.

Zitat von: afloria am 29 September 2018, 01:06:02
Bei dem Rechteproblem hatte ich probleme die Function über FHEM zu setzen. Dazu können wir am besten nochmal gesondert, wenn du Zeit hast, testen...
Du hast recht, da gibts ein Problem. Leider keines, das ich lösen könnte.
Die ZM-API verhält sich hier unterschiedlich zur ZM-UI (wo es sehr wohl mit Monitor-Edit Rechten funktioniert).
Man muss leider System-Edit Rechte haben :-(
Quelle: https://forums.zoneminder.com/viewtopic.php?f=36&t=27102 (https://forums.zoneminder.com/viewtopic.php?f=36&t=27102)

Zitat von: afloria am 29 September 2018, 01:06:02
Mir ist aber noch ein Problem aufgefallen, wenn kein Event da ist, und sozusagen das erste Event erzeugt wird, passiert nix. Erst bei dem zweiten Event wird FHEM tätig.
Kann an dem zmtrigger liegen, oder FHEM, müssten wa auch mal gesondert schauen, wenn mehr Zeit ist.
Stimmt, da läuft irgendwas noch nicht so rund. Liegt sicher nicht an ZM, das weiß ja garnix von fhem.
Ich glaube, da verschluckt das Modul noch irgendwo etwas...

Zitat von: afloria am 29 September 2018, 01:06:02
Thema Autodiscovery: Kann man das auch ausschalten? Ich habe so ein paar Öffentliche Kameras da drin, die schalte ich machmal als Showeffekt ein, haben aber nix in FHEM zu suchen...
Ja, ich werde per default kein Auto-Create mehr triggern.
Ist es wirklich ein Problem, wenn die Kamera in fhem gelistet ist, obwohl du sie nicht benötigst?
Meine erste Idee wäre, dass die Kamera zwar in fhem sichtbar ist, du dort aber setInactive machen kannst und die Kamera kriegt keine Events mehr, etc.
Und auch bei einem erneuten updateMonitors würde ich sie dann einfach ignorieren.
Und rein zwecks Sichtbarkeit gäbe es auch noch den 'hidden' room.

Zitat von: afloria am 29 September 2018, 01:06:02
Thema IPCAM: Kannst du mal schauen ob es möglich ist, eine get camerapicture oder so ähnlich zu bauen? Damit kann mann ohne zusätzliches IPCAM Device dann ein Bild von der Kamera laden, das wird lokal gespeichert, damit mann es dann wiederum z.B. per Telegram geschickt bekommt.
Die Frage kam auch von @Braakhekke schon :-)
Ein Grund, warum ich fhem so Klasse finde, ist, dass es Modular ist.
Ich verwende selber auf meinen ZM-Devices ebenfalls das IPCam Modul.
Wenn jemand an der Haustür klingelt, schießt IPcam ein Foto und Pushover schickts mir aufs Handy.
Meine Antwort von damals hier https://forum.fhem.de/index.php/topic,34570.msg837043.html#msg837043 (https://forum.fhem.de/index.php/topic,34570.msg837043.html#msg837043)

Zitat von: afloria am 29 September 2018, 01:06:02
Ansonsten bis jetzt echt Klasse Arbeit!
Danke.
Wenn ich dran denke, was ich ursprünglich einbauen wollte (Events von ZM nach FHEM), und was jetzt schon alles drin ist...
Liegt wohl daran, dass so viel gutes Feedback gekommen ist :-)
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 29 September 2018, 15:14:39
Logging in die Datenbank, also ja, mit event-on-change-reading.

Es wäre cool, könnte man auf die IPCAM Konfiguration verzichten. Du kannst ja aus dem ZM Module heraus darauf zugreifen.

Den Bug in ZM hatte ich in meinem MQTT Client schon gefixt, werde ich dann in zmtrigger nachziehen...

Ich habe einen Bug gefunden: Wenn ich im zm Device auf updateMonitors klicke kommt ein
Undefined subroutine &main::ZoneMinder_API_ReadMonitors called at ./FHEM/70_ZoneMinder.pm line 516.
und Fhem crashed, restarted.

Außerdem hatte ich vorhin wieder eine unauthorized Meldung, als ich die Monitor function ändern wollte. Nach dem crash ging es aber wieder:
018.09.29 15:09:08.572 4: method: changeMonitorFunction, monitorId:21, Function:Monitor
2018.09.29 15:09:09.359 1: PERL WARNING: Use of uninitialized value $enabled in concatenation (.) or string at ./FHEM/70_ZoneMinder.pm line 398.
2018.09.29 15:09:09.359 4: ZM_Monitor (zm) - ChangeMonitorState callback data: {"message":"Saved"}, enabled:
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 29 September 2018, 15:18:35
der aktuelle Stand auf GitHub ist nicht stabil, sorry.
werde in zukunft einen branch machen, aber bisher war niemand so schnell wie du :)
ich schreib hier rein wenns wieder ein stabiles update gibt
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 30 September 2018, 21:11:07
Zitat von: delmar am 29 September 2018, 15:18:35
der aktuelle Stand auf GitHub ist nicht stabil, sorry.
werde in zukunft einen branch machen, aber bisher war niemand so schnell wie du :)
ich schreib hier rein wenns wieder ein stabiles update gibt

Habe deine neue Version eingebunden:
2018.09.30 21:08:53.146 1: PERL WARNING: Use of uninitialized value $enabled in concatenation (.) or string at ./FHEM/70_ZoneMinder.pm line 453.



2018.09.30 21:09:21.140 2: ROOMMATE set rr_Florian home
2018.09.30 21:09:25.563 2: ZoneMinder (zm) - ChangeMonitorState callback err: read from http://192.168.0.12:80 timed out
2018.09.30 21:09:25.564 2: ZoneMinder (zm) - ChangeMonitorState callback err: read from http://192.168.0.12:80 timed out
2018.09.30 21:09:25.564 2: ZoneMinder (zm) - ChangeMonitorState callback err: read from http://192.168.0.12:80 timed out
2018.09.30 21:09:25.564 2: ZoneMinder (zm) - ChangeMonitorState callback err: read from http://192.168.0.12:80 timed out
2018.09.30 21:09:25.564 2: ZoneMinder (zm) - ChangeMonitorState callback err: read from http://192.168.0.12:80 timed out
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 30 September 2018, 23:06:03
So, neue Version auf GitHub. Sollte wieder stabil sein.

Änderungen:

Bekanntes Problem ist, dass nach dem Löschen eines ZM_Monitor devices diverse Fehlermeldungen auftauchen können, dass dieses nicht gefunden wurde.
Das muss ich erst prüfen, wo ich da noch nacharbeiten muss.
Nach einem Neustart von fhem sind diese Meldungen nämlich weg.
Wer Warnings im Log findet, darf sie behalten ;-)
Die ignoriere ich so lange, bis wir im SVN sind.

Ich würde die neue Version als grob Inkompatibel mit der vorigen bezeichnen.
Bitte alle ZoneMinder und ZM_Monitor devices löschen, bevor die neue Version ausprobiert wird.

Commandref ist leider immer noch nicht fertig.
Das Wiki muss ich auch noch auf den neuesten Stand bringen.
Deshalb noch kein SVN commit.
Wird sich wohl noch einige Tage hinziehen.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 04 Oktober 2018, 23:55:35
Hi,

läuft bei mir jetzt soweit stabil, außer das ich öfter, z.B. beim setzen der Functions timeouts habe. Bin noch auf der Suche, woran das liegt.

Außerdem wäre ein reconnectdelay nicht schlecht:
2018.10.04 23:51:16.166 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:17.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:18.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:19.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:20.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:20.673 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:21.000 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:21.697 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:22.000 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:23.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:24.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:25.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:25.441 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:25.502 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:25.503 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:26.000 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:27.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:27.852 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:27.873 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:27.875 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:28.000 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:28.029 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:28.052 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:28.053 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:29.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:29.880 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:29.899 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:29.901 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:30.000 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:30.926 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:30.928 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:31.000 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:31.123 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:31.124 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:32.001 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:32.872 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
2018.10.04 23:51:32.888 3: ZoneMinder (zm) - reconnect to ZoneMinder successful
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 05 Oktober 2018, 08:46:11
Danke Florian!

Das mit dem Reconnect ist mir auch aufgefallen.
Ich weiß auch nicht genau, wann und warum das reconnect dann aufhört, weil eigentlich sollte bei erfolg kein weiteres reconnect mehr stattfinden.

Komisch eigentlich, weil ich hier nur das default-verhalten per copy/paste implementiert habe.
Ich hoffe, dass ich am Wochenende wieder Zeit habe (inkl commandref und wiki)

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 05 Oktober 2018, 15:24:45
Hi,

ich habe noch ein Problem debugged. Unzwar bekomm ich nach einiger Zeit keine Änderungen in ZM mehr durchgeführt. z.B. Function. Ich habe auf meinem ZM Server im error.log vom Apache dann nur solche Fehlermeldungen gesehen:
[Fri Oct 05 15:07:40.816339 2018] [:error] [pid 4255] [client 192.168.0.34:45348] PHP Warning:  file_put_contents(/tmp/zmlogs/cake_err
or.log) [<a href='http://php.net/function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: No such file or d
irectory in /usr/share/zoneminder/www/api/lib/Cake/Log/Engine/FileLog.php on line 142
[Fri Oct 05 15:07:40.821309 2018] [:error] [pid 4255] [client 192.168.0.34:45348] PHP Warning:  file_put_contents(/var/log/zmerror.log
) [<a href='http://php.net/function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: Permission denied in /u
sr/share/zoneminder/www/api/lib/Cake/Log/Engine/FileLog.php on line 142


Ich habe daraufhin den fehlenden Ordner unter /tmp/ angelegt, und auf das /var/log 777 gesetzt. Die Fehlermeldung ist nun weg, und die Files können geschrieben werden. Ein Konfigurationsparameter in ZM habe ich vergeblich gesucht. Halb fertige Api ? WTF haben die ZM Entwickler da gemacht...

In beiden Dateien dann folgender Inhalt:
2018-10-05 15:16:36 Error: [UnauthorizedException] Not Authenticated
Request URL: /zm/api/monitors/18.json
Stack Trace:
#0 /usr/share/zoneminder/www/api/app/Controller/MonitorsController.php(21): AppController->beforeFilter()
#1 /usr/share/zoneminder/www/api/lib/Cake/Event/CakeEventManager.php(243): MonitorsController->beforeFilter(Object(CakeEvent))
#2 /usr/share/zoneminder/www/api/lib/Cake/Controller/Controller.php(677): CakeEventManager->dispatch(Object(CakeEvent))
#3 /usr/share/zoneminder/www/api/lib/Cake/Routing/Dispatcher.php(189): Controller->startupProcess()
#4 /usr/share/zoneminder/www/api/lib/Cake/Routing/Dispatcher.php(167): Dispatcher->_invoke(Object(MonitorsController), Object(CakeRequest))
#5 /usr/share/zoneminder/www/api/app/webroot/index.php(107): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#6 {main}


Es gibt also noch ein Auth Problem, nach einiger Zeit. Und es ist schwer zu finden, weil die ZM API an der Stelle "komisch" ist...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 05 Oktober 2018, 22:37:31
Ja, ich hab hier auch sehr komisches Verhalten.
Im ZM-Log (im webui) steht plötzlich "insufficient privileges", wenn ich ein event mit der FHEM-URL streamen will.
Die Live-Stream URL aus FHEM funktioniert aber.
Direkt in der ZoneMinder Web UI funktionierts aber...

Ich werd mir jetzt aber mal das reconnect problem ansehen.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 05 Oktober 2018, 23:06:48
reconnect verhalten sollte jetzt passen.
die X_Ready Methode muss einen positiven Wert zurückgeben, wenn der reconnect erfolgreich war.
Das hatte ich nicht gemacht.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 05 Oktober 2018, 23:27:29
So, und das seltsame Event Stream Verhalten hatte ich deswegen, weil mein API user keine Stream Rechte hatte.
Zumindest soweit funktioniert das Rechtesystem in ZM wie erwartet...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 06 Oktober 2018, 17:59:31
Zitat von: delmar am 05 Oktober 2018, 23:27:29
So, und das seltsame Event Stream Verhalten hatte ich deswegen, weil mein API user keine Stream Rechte hatte.
Zumindest soweit funktioniert das Rechtesystem in ZM wie erwartet...

Ich hatte gestern dein Update eingespielt, und heute konnten dann wieder keine Änderungen gesetzt werden: [UnauthorizedException] Not Authenticated
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 07 Oktober 2018, 10:13:33
Zitat von: Florian_GT am 06 Oktober 2018, 17:59:31
Ich hatte gestern dein Update eingespielt, und heute konnten dann wieder keine Änderungen gesetzt werden: [UnauthorizedException] Not Authenticated

Das war mit den älteren Versionen ja nicht so, oder?
Scheint, als hätte ich da etwas verschlimmbessert...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 07 Oktober 2018, 10:58:18
Zitat von: Florian_GT am 06 Oktober 2018, 17:59:31
Ich hatte gestern dein Update eingespielt, und heute konnten dann wieder keine Änderungen gesetzt werden: [UnauthorizedException] Not Authenticated
Ich hab jetzt versucht, das zu reproduzieren.
Meine FHEM Instanz läuft seit ca 4 Tagen. Function setzen mach ich zwar nicht regelmäßig, funktioniert aber auch nach 4 Tagen noch.

Es wird außerdem alle 60 Minuten der API-Login durchgeführt, damit der Cookie für die HTTP-Session nicht abläuft.
Kannst du mal schauen, wann das CPU-Load Reading im ZoneMinder device zum letzten Mal aktualisiert wurde?
Function und CPU-Load nutzen die selben Cookies.
Dh wenn CPU-Load holen funktioniert, sollte auch Function setzen funktionieren.

Hast du in den Internals vom ZoneMinder device verdächtige Werte für APILoginStatus oder einen Eintrag für APILoginError?

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 07 Oktober 2018, 18:55:04
SVN commit erfolgt.
Bitte in Zukunft hier https://forum.fhem.de/index.php/topic,91847.msg843494.html (https://forum.fhem.de/index.php/topic,91847.msg843494.html) weiterfragen.

Danke für eure Unterstützung!

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 07 Oktober 2018, 20:58:02
Zitat von: delmar am 07 Oktober 2018, 10:58:18
Ich hab jetzt versucht, das zu reproduzieren.
Meine FHEM Instanz läuft seit ca 4 Tagen. Function setzen mach ich zwar nicht regelmäßig, funktioniert aber auch nach 4 Tagen noch.

Es wird außerdem alle 60 Minuten der API-Login durchgeführt, damit der Cookie für die HTTP-Session nicht abläuft.
Kannst du mal schauen, wann das CPU-Load Reading im ZoneMinder device zum letzten Mal aktualisiert wurde?
Function und CPU-Load nutzen die selben Cookies.
Dh wenn CPU-Load holen funktioniert, sollte auch Function setzen funktionieren.

Hast du in den Internals vom ZoneMinder device verdächtige Werte für APILoginStatus oder einen Eintrag für APILoginError?

schöne Grüße
Martin

Konnte seit dem letzten restart kein Problem mehr erkennen!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: AlexGfX am 18 Dezember 2018, 13:32:11
Hallo Leute :)

ich versuche seit Tagen zum laufen zu bringen aber klappt nicht
list ausgabe:

Internals:
   APILoginError Invalid username or password.
   APILoginStatus 200
   DEF        192.168.1.120 fhem fhem
   DeviceName 192.168.1.120:6802
   FD         99
   NAME       zm
   NOTIFYDEV  global
   NR         261
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   READINGS:
     2018-12-18 13:29:05   state           opened
   helper:
     ZM_HOST    192.168.1.120
     ZM_PASSWORD fhem
     ZM_USERNAME fhem

und anderer versuch mit admin login:

   APILoginError Invalid username or password.
   APILoginStatus 200
   DEF        192.168.1.120 admin admin
   DeviceName 192.168.1.120:6802
   FD         97
   NAME       Zoneminder
   NOTIFYDEV  global
   NR         260
   PARTIAL   
   STATE      opened
   TYPE       ZoneMinder
   READINGS:
     2018-12-18 13:15:09   CPU_Load        error
     2018-12-18 13:29:05   state           opened
   helper:
     ZM_HOST    192.168.1.120
     ZM_PASSWORD admin
     ZM_USERNAME admin


habe schon mit Zoneminder einstellungen "gespielt" aber leider immer das selbe
jemand ein Tipp?

Grüße
Alex
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 18 Dezember 2018, 13:39:00
Servus Alex,

welche ZoneMinder Version hast du denn?
Ich rate mal: 1.32 aufwärts?

Noch was anderes: wir sind hier im Codeschnipsel Bereich unterwegs.
Es gibt für ZoneMinder auch einen Thread im Bereich für die offiziellen Module: https://forum.fhem.de/index.php/topic,91847.msg843494.html
Das ist jetzt aber nicht wirklich ein Problem, ist einfach nur Teil der Forums-Hygiene :-)

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Braakhekke am 18 Dezember 2018, 14:48:28
Hallo Alex,

was mir aufgefallen ist dass Du eine Portangabe machst. Ist dies bei Dir notwenig? Meine Definition sieht wie folgt aus.

defmod zm ZoneMinder 192.168.178.8 username passwort

Grüße,

Ben
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 18 Dezember 2018, 15:06:57
Zitat von: Braakhekke am 18 Dezember 2018, 14:48:28
was mir aufgefallen ist dass Du eine Portangabe machst. Ist dies bei Dir notwenig? Meine Definition sieht wie folgt aus.
Sehr scharfes Auge :-), aber ich denke, der Eindruck täuscht.

Der Port steht nur beim Internal 'DeviceName' dabei, das ist ok und wird vom Modul automatisch hinzugefügt.
In der Definition dürfte aber ohne den Port erfolgt sein, was sich im Internal 'DEF' zeigt.

Ich sehe zwei mögliche Ursachen:
1. Die ZoneMinder Version wird nicht unterstützt (derzeit leider nur 1.31 - bei 1.32 hat sich die API auth geändert und ich hab die Zeit noch nicht gefunden, auf diese Version zu aktualisieren)
2. Dem user für die API fehlen nötige Rechte. Der user muss auf "System" das "Edit" Recht haben (ja, eine Katastrophe) und auf Stream, Events, und Monitors das Recht "View".

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: AlexGfX am 18 Dezember 2018, 19:08:36
alles klar  :)
ich schau da mal rein


version ist 1.33.0 stable


grüße
Alex
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 18 Dezember 2018, 19:30:53
Zitat von: AlexGfX am 18 Dezember 2018, 19:08:36
alles klar  :)
ich schau da mal rein


version ist 1.33.0 stable


grüße
Alex

dann liegts sicher daran.
sorry, dass du da umsonst Zeit verbraten hast, im Wiki wäre der Versionshinweis gestanden...
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 17 Februar 2019, 16:26:46
Hallo,

ich habe gestern auf v1.32.3 geupdatet - insbesondere auch wegen dem Recording von H.264 und der Storageauswahl.

Hatte mich gefreut in Fhem nur die Kamera IDs zu ändern - jetzt habe ich erst den Wiki Hinweis auf die v.1.30.x gelesen.  :-[

Ganz freundlich gefragt: wann könnte man mit der Anpassung rechnen? Kann man da irgendwas unterstützen (ich bin nur Anwender..)?

In jedem Fall aber Danke für die bisherige Unterstützung und Anbindung von Zineminder an Fhem.

In meinem Fall habe ich die Bewegungsinformation/Events aus Zoneminder ausgewertet..

Danke!

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 Februar 2019, 16:33:13
Ich hab das mal aufgeschoben, bis die erste Anfrage kommt... ;)

Ich muss mal selber die 1.32 installieren, dann kann ich mir das ansehen.
Ein Release date kann ich nicht nennen, hoffe aber das ich es in wenigen Wochen schaffe.

Danke, dass du Bescheid gegeben hast

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 17 Februar 2019, 16:41:20
Hallo,

also state opened funktioniert.

Ich verwende die Kamera-Motion-Events in Kombination mit einem Bewegungsmelder. Aber so richtig will es noch nicht. Muss ich nochmal alles prüfen.

Die IDs der Kameras in Fhem stimmen aber!

Gruß
Christoph

v.1.32.x hat schon was mit dem Storage und dem H.264..
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 17 Februar 2019, 16:51:42
Zitat von: delmar am 17 Februar 2019, 16:33:13
Ich hab das mal aufgeschoben, bis die erste Anfrage kommt... ;)

Ich muss mal selber die 1.32 installieren, dann kann ich mir das ansehen.
Ein Release date kann ich nicht nennen, hoffe aber das ich es in wenigen Wochen schaffe.

Danke, dass du Bescheid gegeben hast
Da würde ich mich gerne dranhängen. Habe auch schon die 1.32 und bin gerne bereit zu testen usw. Ich bezeichne mich Mal als fortgeschrittener Anwender ;)

Gesendet von meinem ONEPLUS A6003 mit Tapatalk

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 17 Februar 2019, 18:07:13
Ok, jetzt sinds schon Zwei gegen Einen. ;-)

Ich probier mal, ein 1.32 nebenher aufzusetzen, ohne gleich mein Produktiv-System zu ersetzen (vor allem, wegen der noch fehlenden FHEM-Integration).
Sobald ich das habe, sollte es innerhalb eines Abends erledigt sein.

Grundsätzlich:
Das Modul deckt zwei Verbindungsarten ab:
Der Event-Port könnte auch unter 1.32 noch funktionieren, deshalb steht beim State "opened" (alleine darauf bezieht sich das nämlich).
Die API definitiv aber nicht, weil der Login-Vorgang komplett überarbeitet (und auch verbessert) wurde.

Ja, 1.32 hat so einige Vorteile, auch für mich. Sch'weiß Bescheid, Schätzelein.

Ich lass was hören, sobald ich mehr dazu sagen kann.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florie am 17 Februar 2019, 19:19:51
Cool, danke dir schonmal ;)

Gesendet von meinem ONEPLUS A6003 mit Tapatalk

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 18 Februar 2019, 08:53:40
Meine Kamera-Workflow ist folgender:

Ich lese die Stati von Bewegungsmeldern ein, swie den Motion-Alert/das Event von Zoneminder der jeweiligen Kamera = beide ergeben dann ein für mich wichtiges Ereignis - u. a. eine Nachricht per Telegram.

Ich habe gestern v1.32.3 aufgesetzt. Kameras sind mit Bewegungserkennung versehen und in Zoneminder ist dies auch auswertbar. Die Kamera IDs habe ich händisch geändert. Vielleicht muss ich die Monitore auch raus löschen und neu erkennen lassen...

Auf jeden Fall erhalte ich nurn von einer Kamera alle 10 Min eine Erkennung per Telegram...

Mal gucken.

Gruß
Christoph
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 18 Februar 2019, 09:05:52
Kurze administrative Anmerkung (ist mirngerade erst aufgefallen):

Bitte alle weiteren Fragen, die sich auf das offizielle Modul beziehen, hier https://forum.fhem.de/index.php/topic,91847.msg843494.html fortsetzen.
Dort geht's um das offizielle Modul, dieser Thread hier hat sich ja mit allen möglichen Möglichkeiten beschäftigt.
Wer später mal etwas sucht, wird es uns danken, wenn alles an einer Stelle zu finden ist

Danke!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: td am 13 März 2019, 14:23:36
Zitat von: delmar am 17 Februar 2019, 18:07:13
Ok, jetzt sinds schon Zwei gegen Einen. ;-)

Ich probier mal, ein 1.32 nebenher aufzusetzen, ohne gleich mein Produktiv-System zu ersetzen (vor allem, wegen der noch fehlenden FHEM-Integration).
Sobald ich das habe, sollte es innerhalb eines Abends erledigt sein.

Grundsätzlich:
Das Modul deckt zwei Verbindungsarten ab:

  • den ZM-Event-Port, der Events liefert und auch Events an ZM schicken kann.
  • die ZM-API
Der Event-Port könnte auch unter 1.32 noch funktionieren, deshalb steht beim State "opened" (alleine darauf bezieht sich das nämlich).
Die API definitiv aber nicht, weil der Login-Vorgang komplett überarbeitet (und auch verbessert) wurde.

Ja, 1.32 hat so einige Vorteile, auch für mich. Sch'weiß Bescheid, Schätzelein.

Ich lass was hören, sobald ich mehr dazu sagen kann.

schöne Grüße
Martin
Bin ich einer von den beiden? Falls nicht: 1.32 hier!
:-)
td
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 13 März 2019, 15:01:04
Mein Hauptproblem bei 1.32 ist, dass ich es parallel zu 1.30 laufen lassen muss, um sicherstellen zu können, dass das FHEM-Modul mit beiden Versionen funktioniert.
Ich habe kein zweites System, das ich verwenden kann und mein Server läuft noch auf Ubuntu 14, da ist das auch mit Docker noch nicht so einfach.

Ich hätte schon mal probiert, den Login für 1.32 "blind" anhand der API-Doku zu bauen, das hat aber nicht funktioniert.

Ein Vorschlag:
Falls mir jemand auf seinem 1.32er System einen User mit minimalen Rechen einrichten könnte, wo ich einfach nur den Login ausprobieren kann, wär mir sehr geholfen. Der User muss nicht mal Zugriff auf eine Kamera haben. Ich muss nur selber die Möglichkeit haben, einen Login-Request abzusetzen und den Response auszulesen.
Wenn diese Hürde mal genommen ist, wird alles weitere viel einfacher.

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: spel am 26 März 2019, 17:33:59
Hallo delmar,

ungern in meine produktiv-zoneminder. Aber ich hoffe zeitnah eine kiste in meiner dmz aufzusetzen!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 26 März 2019, 20:16:36
Zitat von: spel am 26 März 2019, 17:33:59
ungern in meine produktiv-zoneminder. Aber ich hoffe zeitnah eine kiste in meiner dmz aufzusetzen!
Hallo,
ja, klar. Das hatte ich auch garnicht erwartet :-)
Aber wenn zb jemand ohnehin zB einen Proxmox Server hat, sollte es ihm viel leichter fallen, sowas aufzusetzen, als mir.
Danke

schöne Grüße
Martin

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: MC.Pommes am 28 April 2019, 19:28:54
Ich habe zoneminder noch nicht produktiv im Docker laufen.
Ich kann dir nen User einrichten. Welche Rechte brauchst du?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Sky am 26 August 2019, 09:21:44
Hallo ,
brauche mal Eure Hilfe .
Zoneminder läuft auf meinem Pi ( nicht das Modul in Fhem ) schon seit Monaten stabil und fehlerfrei.
Es wird benutzt um Kameras mit RTSP über das IPCAM Modul in Fhem einzubinden .
Bisher habe ich dann bei einem Event ( Türklingel) ein Standbild über Telegram versendet.

Nun habe ich mir einen Conbee 2 zugelegt um Xiaomi Sensoren in Fhem zu nutzen .
Funktioniert auch .
Komischerweise bekomme ich nun , beim Auslösen meiner Türklingel ,noch den Benachrichtigungstext über Telegramm , aber kein Bild mehr .
Es werden auch keine Bilder mehr unter ./www/WebCamHaustuere abgelegt .
Nach langem Suchen habe ich schon einmal herausgefunden, das der Webserver von Zoneminder ( 192.168.x.x/zm) nicht mehr erreichbar ist .
Eine Kontrolle über SSH mit
systemctl status zoneminder.service
sagt mir das der Service läuft .

Könnt Ihr mir weiterhelfen?
Danke
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 04 September 2019, 15:11:13
Zitat von: delmar am 13 März 2019, 15:01:04
Ich hätte schon mal probiert, den Login für 1.32 "blind" anhand der API-Doku zu bauen, das hat aber nicht funktioniert.

@delmar: sorry, wenn ich mich hier einhänge... ich verwende zwar nicht dein ZM Modul (noch nicht... kommt noch, damals gabs das nich nicht ;) sondern HTTPMOD um den Zoneminder einzubinden, musste aber nach dem letzten update auch die login-prozedur anpassen, damits mit dem v2 API klappt.

Evlt. kannst Du meine Erfahrungen nutzen um deinen Login anzupassen, falls nicht, einfach das Posting überlesen :D

Damit es (wieder) funktioniert musste ich für den Login die neue URI verwenden (http://zm_host/zm/api/host/login.json) und als POST daten user=<username>&pass=<passwort> mit übergeben. Als Antwort erhälst du ein JSON Dokument aus dem du das "access_token" brauchst. Dieses hängst du bei allen weiteren requests/URI's als ?token=<access_token> parameter an. Damit hats bei mir dann wieder funktioniert...

So wie in der Doku beschrieben mit den Cookies die geliefert werden funktioneirts eben nicht... anscheinend...

Und Danke für das Modul, werds bei genügend Zeit dann mal integrieren und mein HTTPMOD umweg wegbauen...

LG STefan

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 04 September 2019, 15:26:37
Hi Stefan,

danke, jeder Input ist willkommen.
Ich hab vor einigen Monaten schon begonnen, an der 1.32 Unterstützung zu arbeiten.
Eine "Beta", die das unterstützt, findest du hier: https://forum.fhem.de/index.php/topic,91847.msg926386.html#msg926386

Das ist im Übrigen auch der Thread, indem dann über das "offizielle" Modul diskutiert wird.
Dieses Modul hat definitiv in diesem Thread seinen Anfang genommen :-)

Danke!

schöne grüße
martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: clumsy am 04 September 2019, 15:29:34
Zitat von: delmar am 04 September 2019, 15:26:37
Eine "Beta", die das unterstützt, findest du hier: https://forum.fhem.de/index.php/topic,91847.msg926386.html#msg926386

Ah, super, das hab ich übersehen... danke!

lg STefan
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 04 September 2019, 15:38:11
Zitat von: clumsy am 04 September 2019, 15:29:34
Ah, super, das hab ich übersehen... danke!
Hätte es jetzt auch fast nicht mehr gefunden :-|
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: SimonHipp am 07 Oktober 2020, 14:34:36
Zitat von: Braakhekke am 25 August 2018, 12:01:20
Hallo Delmar,

vielen Dank für Deine Arbeit. Bei mir bekommen ich folgender Fehlermeldung beim Reloaden von 70_ZoneMinder.pm

Can't locate Crypt/MySQL.pm in @INC (you may need to install the Crypt::MySQL module) (@INC contains: . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM ./FHEM/lib) at ./FHEM/70_ZoneMinder.pm line 5.
BEGIN failed--compilation aborted at ./FHEM/70_ZoneMinder.pm line 5.

Grüße,

Ben


2020.10.07 14:33:05.231 0: Can't locate Crypt/MySQL.pm in @INC (you may need to install the Crypt::MySQL module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM/lib) at ./FHEM/70_ZoneMinder.pm line 37, <$fh> line 2906.
BEGIN failed--compilation aborted at ./FHEM/70_ZoneMinder.pm line 37, <$fh> line 2906.


Leider habe ich trotz aller Updates und Installation des nötigen Moduls die selbe Fehlermeldung.
Was kann ich tun?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Florian_GT am 07 Oktober 2020, 17:14:37
Zitat von: SimonHipp am 07 Oktober 2020, 14:34:36

2020.10.07 14:33:05.231 0: Can't locate Crypt/MySQL.pm in @INC (you may need to install the Crypt::MySQL module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM/lib) at ./FHEM/70_ZoneMinder.pm line 37, <$fh> line 2906.
BEGIN failed--compilation aborted at ./FHEM/70_ZoneMinder.pm line 37, <$fh> line 2906.


Leider habe ich trotz aller Updates und Installation des nötigen Moduls die selbe Fehlermeldung.
Was kann ich tun?

Hi,

schau mal, ob es funktioniert, nachdem du das Debian/Ubuntu Package libcrypt-mysql-perl installiert hast.

Gruß Florian
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: SimonHipp am 09 Oktober 2020, 22:40:18
Zitat von: Florian_GT am 07 Oktober 2020, 17:14:37
Hi,

schau mal, ob es funktioniert, nachdem du das Debian/Ubuntu Package libcrypt-mysql-perl installiert hast.

Gruß Florian

Nein, leider nicht!!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: D€rr1ck am 09 November 2020, 12:36:31
Hi,
ich nutze Zoneminder 1.34.22, habe dort 2 Kameras eingebunden. Zoneminder ist in FHEM eingericht, die API Version 2.0 läuft.
Kameras wurden einwandfrei erkannt.

Jedoch ändern diese den Status bei einem Alarm nicht, der Status bleibt immer auf Idle.

Kann mir jemand bitte auf die Sprünge helfen?

Grüße
Holger
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: psycho160 am 12 November 2020, 12:37:34
Zitat von: D€rr1ck am 09 November 2020, 12:36:31
Hi,
ich nutze Zoneminder 1.34.22, habe dort 2 Kameras eingebunden. Zoneminder ist in FHEM eingericht, die API Version 2.0 läuft.
Kameras wurden einwandfrei erkannt.

Jedoch ändern diese den Status bei einem Alarm nicht, der Status bleibt immer auf Idle.

Kann mir jemand bitte auf die Sprünge helfen?

Grüße
Holger

Motion Detection und Zonen definiert im ZM?
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 02 März 2021, 19:44:12
Zitat von: D€rr1ck am 09 November 2020, 12:36:31
Hi,
ich nutze Zoneminder 1.34.22, habe dort 2 Kameras eingebunden. Zoneminder ist in FHEM eingericht, die API Version 2.0 läuft.
Kameras wurden einwandfrei erkannt.

Jedoch ändern diese den Status bei einem Alarm nicht, der Status bleibt immer auf Idle.

Kann mir jemand bitte auf die Sprünge helfen?

Grüße
Holger
Hallo,
sorry für die späte Antwort, gelegentlich werden keine Emails für die Lesezeichen verschickt.

Hast du OPT_TRIGGER gesetzt?
Und bei allen Änderungen bitte immer wieder ZoneMinder mal durchstarten - oft greifen die Einstellungen erst dann

schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 03 März 2021, 07:30:48
Zitat von: SimonHipp am 07 Oktober 2020, 14:34:36

2020.10.07 14:33:05.231 0: Can't locate Crypt/MySQL.pm in @INC (you may need to install the Crypt::MySQL module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 /usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base ./FHEM/lib) at ./FHEM/70_ZoneMinder.pm line 37, <$fh> line 2906.
BEGIN failed--compilation aborted at ./FHEM/70_ZoneMinder.pm line 37, <$fh> line 2906.


Leider habe ich trotz aller Updates und Installation des nötigen Moduls die selbe Fehlermeldung.
Was kann ich tun?

Sorry für die Umstände.
Wenn ich mich recht erinnere, wird die Lib nur für Zoneminder 1.30 verwendet.
Wenn du also eine höhere Version verwendest, kannst du versuchen, die Zeile #37 auszukommentieren und dann FHEM neu starten.
apiVersion muss natürlich auf post132 gestellt werden.

Ich werd außerdem versuchen, das zu reparieren. Diese Abhängigkeit sollte nur dann gecheckt werden, wenn auch wirklich 1.30 verwendet wird.

schöne grüße
Martin

Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 10 März 2021, 08:11:31
Hallo,
in https://forum.fhem.de/index.php/topic,91847.msg1138493.html#msg1138493 habe ich eine Version des Moduls hochgeladen, welche die Abhängigkeit zu Crypt::MySQL nur mehr für 1.30 hat.
Mit 1.32 aufwärts konnte ich es testen, aber nicht mit 1.30.
Wenn mir jemand mit 1.30 hierzu Feedback geben könnte, wäre ich sehr verbunden
Danke für eure Mithilfe
schöne Grüße
Martin
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: pula am 03 November 2022, 17:59:51
Hallo,

ich krame diesen thread noch mal vor, vielleicht kann mir jemand helfen :-)
(Ich hoffe, das wurde nicht schon irgendwo beantwortet und ich habs überlesen - falls doch, sorry).
zm und cameras tun grundsätzlich. jetzt hab ich aber das problem, daß sich hin und wieder eine der cams (monitore) aufhängt und keinen stream mehr an zm liefert, was ein wenig lästig ist.
daher habe ich diese kamera an ein relais gehängt und dieses in fhem engebunden.
jetzt wäre natürlich schön, wenn zm_monitor hier ein reading hätte und ich so innerhalb von fhem reagieren und die kamera neustarten könnte.
kennt das problem jemand?
Cheers,
Pula
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: delMar am 03 November 2022, 20:52:43
Wenn die Kamera auch nicht mehr auf Ping antwortet, wäre das was, was du über das PRESENCE Modul lösen könntest.

Wie oft stürzt denn die Kamera ab?
Wenn sie zB alle 3 Tage abstürzt, könntest du ja jede Nacht um 4 Uhr die Kamera neu starten. Präventiv sozusagen
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: pula am 03 November 2022, 20:55:57
Tja, das muß ich erst herausfinden, allerdings hatte ich daran auch schon gedacht.
Ist eigentlich keine china-cam, sondern eine lupus aus deutschland.
aber danke für die antwort!
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: Ma_Bo am 05 November 2022, 17:56:11
Also ich hatte auch das Problem einer immer mal wieder abgeschmierten Cam.

Ich habe dann mal die Spannung gemessen, die die Kamera bekommt und dabei festgestellt, das Sie 12V braucht und 11,8V ankamen.
Sollte eigentlich kein Problem sein, da das Netzteil Original war, aber ich habe eine neues Netzteil angeschlossen, welches dann auch 12,1V an der Kamera bringt und siehe da, alles in Ordnung, kein einziger Absturz mehr der Kamera.
Überwacht wird das ganze mit dem Modul PRESENCE über PING, sollte dann doch mal die Kamera ausfallen und nicht mehr auf den Ping antworten, wird diese über eine schaltbare Steckdose einfach für 5 Minuten vom Strom getrennt und dann wieder aktiviert.

Grüße Marcel
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: pula am 05 November 2022, 23:56:18
Danke für den Hinweis mit der Spannung. Ich hab das noch nicht gemessen, aber ich fahr die Kamera mit einem Schaltnetzteil mit genügend Saft direkt aus dem Schaltschrank.
Aber ich werde mir auf jeden Fall mal ein presence-device dafür anlegen. Schaumamoi.
Die Ausfälle sind ziemlich sporadisch. Falls die Cam dann tatsächlich nicht mehr pingpar ist, könnte das helfen.
Ich muss mir mal in zm anschaun, ob es da evtl direkt einen hook oder so gibt, wenn ein monitor "not connected" zeigt. Mir ist nämlich auch aufgefallen, daß das manchmal auftritt und ein restart von zm hilft.
Schräge Sache das.
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: dyna am 06 November 2022, 11:37:20
Moin pula,

ich frage zm mit einem HTTMOD ab.
defmod Flur_Kammera_Http HTTPMOD http://192.168.67.17/zm/api/monitors/2.json 100
attr Flur_Kammera_Http enableControlSet 1
attr Flur_Kammera_Http enableCookies 1
attr Flur_Kammera_Http enforceGoodReadingNames 1
attr Flur_Kammera_Http event-on-change-reading .*
attr Flur_Kammera_Http extractAllJSON 1
attr Flur_Kammera_Http group Kamera
attr Flur_Kammera_Http handleRedirects 1
attr Flur_Kammera_Http room Unten->Flur
attr Flur_Kammera_Http stateFormat monitor_Monitor_Status_Status


Das Reading monitor_Monitor_Status_Status enthält den Verbindungsstatus zwischen Kamera und zm.

Grüße
Jens
Titel: Antw:Frage: Einbindung zoneminder
Beitrag von: pula am 08 November 2022, 07:50:40
@dyna
vielen DANK! GENAU das habe ich gesucht!
cheers,
Pula
Titel: Aw: Frage: Einbindung zoneminder
Beitrag von: kamp am 23 April 2023, 19:17:23
Hallo, danke fürs Modul. Ich habe ZM seit längerem einwandfrei laufen und habe nun beschlossen, es in FHEM einzubinden, mit folgenden Zielen:


Ich habe nun das ZoneMinder Device angelegt, wobei sich hier schon die ersten Probleme auftun. Nach wenigen Minuten wurde mir die CPU-Last nicht mehr angezeigt: CPU_Load: error
Außerdem dürfte es ein Problem mit dem Trigger-Port geben (in ZM aktiviert): state: Trigger-Port: error, API: opened
Weiters sehe ich in den Kamera-Devices den Livestream nicht, da in den Kamera-Devices unter streamUrl trotz gesetzter publicAddress mit https und usePublicUrlForZmWeb 1 im ZM-Device der LAN-interne link mit http angezeigt wird, anstatt der öffentlichen Adresse. Ein updateMonitorConfig hat nichts gebracht.

Bevor ich nun mit meiner eigentlichen Umsetzung beginne, würde ich gerne diese 3 Probleme beheben, da ich sonst meine Ziele vermutlich nicht umsetzen kann... Hat jemand das schon gehabt und lösen können, oder eine Idee was ich tun könnte?
Ich verwende ZM v1.37.37
Titel: Aw: Frage: Einbindung zoneminder
Beitrag von: kamp am 23 April 2023, 19:24:54
Hallo, danke fürs Modul. Ich habe ZM seit längerem einwandfrei laufen und habe nun beschlossen, es in FHEM einzubinden, mit folgenden Zielen:


Ich habe nun das ZoneMinder Device angelegt, wobei sich hier schon die ersten Probleme auftun. Nach wenigen Minuten wurde mir die CPU-Last nicht mehr angezeigt: CPU_Load: error
Außerdem dürfte es ein Problem mit dem Trigger-Port geben (in ZM aktiviert): state: Trigger-Port: error, API: opened
Weiters sehe ich in den Kamera-Devices den Livestream nicht, da in den Kamera-Devices unter streamUrl trotz gesetzter publicAddress mit https und usePublicUrlForZmWeb 1 im ZM-Device der LAN-interne link mit http angezeigt wird, anstatt der öffentlichen Adresse. Ein updateMonitorConfig hat nichts gebracht.

Bevor ich nun mit meiner eigentlichen Umsetzung beginne, würde ich gerne diese 3 Probleme beheben, da ich sonst meine Ziele vermutlich nicht umsetzen kann... Hat jemand das schon gehabt und lösen können, oder eine Idee was ich tun könnte?
Ich verwende ZM v1.37.37

Weitere Fragen:
Mein ZM läuft direkt auf einer Subdomain, ohne Context. Der Link über die FHEM Seite fügt automatisch /zm/ ein. Ich kann aber kein leeres webConsoleContext setzen, nur /. Dann ist die URL aber so: https://publicdomain.at///index.php?...
Titel: Aw: Frage: Einbindung zoneminder
Beitrag von: kamp am 23 April 2023, 19:27:52
Hallo, danke fürs Modul. Ich habe ZM seit längerem einwandfrei laufen und habe nun beschlossen, es in FHEM einzubinden, mit folgenden Zielen:


Ich habe nun das ZoneMinder Device angelegt, wobei sich hier schon die ersten Probleme auftun. Nach wenigen Minuten wurde mir die CPU-Last nicht mehr angezeigt: CPU_Load: error
Außerdem dürfte es ein Problem mit dem Trigger-Port geben (in ZM aktiviert): state: Trigger-Port: error, API: opened
Weiters sehe ich in den Kamera-Devices den Livestream nicht, da in den Kamera-Devices unter streamUrl trotz gesetzter publicAddress mit https und usePublicUrlForZmWeb 1 im ZM-Device der LAN-interne link mit http angezeigt wird, anstatt der öffentlichen Adresse. Ein updateMonitorConfig hat nichts gebracht.

Bevor ich nun mit meiner eigentlichen Umsetzung beginne, würde ich gerne diese 3 Probleme beheben, da ich sonst meine Ziele vermutlich nicht umsetzen kann... Hat jemand das schon gehabt und lösen können, oder eine Idee was ich tun könnte?
Ich verwende ZM v1.37.37

Weitere Fragen:
Mein ZM läuft direkt auf einer Subdomain, ohne Context. Der Link über die FHEM Seite fügt automatisch /zm/ ein. Ich kann aber kein leeres webConsoleContext setzen, nur /. Dann ist die URL aber so: https://publicdomain.at///index.php?...
Um die obigen Probleme zu lösen, habe ich das ZM-Device und alle Monitor-Devices gelöscht und das ZM-Device neu angelegt, nun lassen sich aber mit autocreateMonitors keine neuen Monitor-Devices mehr erstellen? Jetzt sehe ich zumindest wieder die CPU-Last, aber Trigger-Port ist immer noch auf error.
Wenn ich wieder Monitor-Devices erstellen kann, kann ich die auch besser benennen, damit die Namen auch sprechend sind?
Titel: Aw: Frage: Einbindung zoneminder
Beitrag von: delMar am 28 April 2023, 14:13:20
Die letzte getestete Version mit ZoneMinder war die 1.36

Es kann sein dass das Modul nicht ohne Anpassungen mit 1.37 fehlerfrei funktioniert.

Ich selber habe kein ZoneMinder mehr am Laufen, kann da also leider kurzfristig nicht weiterhelfen.
Titel: Aw: Frage: Einbindung zoneminder
Beitrag von: psycho160 am 30 April 2023, 02:16:20
Bist du dir wirklich sicher, dass es 1.37 ist? die wurde noch gar nicht released....
Titel: Aw: Frage: Einbindung zoneminder
Beitrag von: kamp am 07 Mai 2023, 07:40:44
Die "Probleme" haben sich nach ein Paar Tagen von selbst behoben und jetzt läuft es recht stabil.

Fürs beantworten meiner weiteren Fragen muss man doch kein ZM am laufen haben, oder? Und ja, ich bin mir sicher, dass ich 1.37 verwende, denn lesen kann ich (noch) :)

Offen wäre noch:
Mein ZM läuft direkt auf einer Subdomain, ohne Context. Der Link über die FHEM Seite fügt automatisch /zm/ ein. Ich kann aber kein leeres webConsoleContext setzen, nur /. Dann ist die URL aber so: https://publicdomain.at///index.php?...
sowie
Kann man Monitoring-Devices in mit sprechenderen Namen umbenennen?