Modul 98_monitoring zur Überwachung von Geräten

Begonnen von igami, 09 März 2017, 22:12:42

Vorheriges Thema - Nächstes Thema

Tommi ratlos

Hallo,

experimentiere gerade mit monitoring herum.


attr FensterMonitoring errorReturn {WindowHelper(1,"test")}
attr FensterMonitoring warningReturn {WindowHelper(1,"test1")}



sub WindowHelper($$) {
Log3(undef, 1, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
}


Beim FensterMonitoring werden die geöffneten Fenster hinzugefügt bzw. beim schließen entfernt.
WindowHelper wird aber anscheinend nicht ausgeführt.
Wenn ich WindowHelper über einen AT Job ausführe wird geloggt.

Mache ich einen Denkfehler?

Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.

ToM_ToM

ZitatMache ich einen Denkfehler?

Poste mal deine gesamte Definition.
Hast du darin ein warningWait oder errorWait definiert?

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

Tommi ratlos

Hallo,

Hier die Definition

defmod FensterMonitoring monitoring .*:(open|tilted) .*:closed
attr FensterMonitoring errorReturn {WindowHelper(1,"test")}
attr FensterMonitoring errorWait {AttrVal($name, "winOpenTimer", 60*5)}
attr FensterMonitoring room monitoring,Test,Unsorted
attr FensterMonitoring warningReturn {WindowHelper(0,"test1");;;;}


Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.

ToM_ToM

Durch dein errorWait verzögerst du die Ausführung dess errorReturn.
Aber warningReturn sollte eigentlich sofort greifen.

Was passiert wenn du das oben in der Commandline ausführst?
{WindowHelper(0,"test1")}

Passiert dann das was dahinter passieren soll?
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

Tommi ratlos

Hi,

ja, aus der Befehlszeile wird "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ins log geschrieben.

Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.

ToM_ToM

Hm... dann bin ich jetzt auch überfragt.

Vielleicht stören die vielen ;;;;;

Ansonsten kann igami vielleicht weiterhelfen.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

igami

Der return Code wird nur bei einem get ausgeführt, nicht automatisch, wenn ein Device auf eine Liste geschrieben wird.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Tommi ratlos

Morgähn,

wenn ich das jetzt richtig verstanden habe kann aus monitoring keine Aktion ausgelöst werden ( Mail Versand, Telegramm,....).
Es ist immer ein Notify oder DOIF nötig.

Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Tommi ratlos

Hallo,

hab es endlich zum laufen gebracht  ;D
Das Problem waren die Backslashs aus  "Raw definition"

blacklist: HM_RT_.*._WindowRec

errorReturn:
{return unless(@errors);
$_ = AttrVal($_, "alias", $_) foreach(@errors);
return("Das Fenster \"$errors[0]\" ist schon länger geöffnet.") if(int(@errors) == 1);
@errors = sort {lc($a) cmp lc($b)} @errors;
return(join("\n - ", "Die folgenden ".@errors." Fenster sind schon länger geöffnet:", @errors))
}


errorWait: {AttrVal($name, "winOpenTimer", 60*15)}

warningReturn:
{return unless(@warnings);
$_ = AttrVal($_, "alias", $_) foreach(@warnings);
return("Das Fenster \"$warnings[0]\" ist seit kurzem geöffnet.") if(int(@warnings) == 1);
@warnings = sort {lc($a) cmp lc($b)} @warnings;
return(join("\n - ", "Die folgenden ".@warnings." Fenster sind seit kurzem geöffnet:", @warnings))
}


Notify WindowOpenError:
FeFensterMonitoring:error.(add):..+ {
my $msg = (fhem("get TYPE=monitoring error"));
{ system "echo '$msg' | mail -s  'FHEM Fenster warnung' xxxxxx\@xxxx.xx" };
"set JabberClient msg xxxxx\@xxxxxx.xx".$msg;
}

Notify WindowOpenWarning:
FensterMonitoring:warning.(add):..+ {
my $msg = (fhem("get TYPE=monitoring error"));
{ system "echo '$msg' | mail -s  'FHEM Fenster warnung' xxxxxx\@xxxx.xx" };
"set JabberClient msg xxxxx\@xxxxxx.xx".$msg;
}


Gruß
Thomas
Pi 3 CUNX868 mit 433 Pigator.

automatisierer

Moin,
ZitatDefine

    define <name> <add-event> [<remove-event>]
    Die Syntax für <add-event> und <remove-event> ist die gleiche wie für das Suchmuster von notify (Gerätename oder Gerätename:Event).
    Ist nur ein <add-event> definiert wird beim auftreten das Gerät von beiden Listen gelöscht und die Timer für warning und error werden gestartet.
Fehler, oder soll das so in der Commandref? Da fehlt der Aufruf des Moduls im define.

also :
define <name> monitoring <add-event> [<remove-event>]

DarkT

Interesssantes Modul. Ich hänge mich hier mal rein, da ich mir das am Wochennede mal asnsehen möchte. Danke schon mal im Vorraus für deine Arbeit.

igami

Zitat von: automatisierer am 01 Dezember 2017, 10:22:09
Moin,Fehler, oder soll das so in der Commandref? Da fehlt der Aufruf des Moduls im define.

also :
define <name> monitoring <add-event> [<remove-event>]
Das ist ein Fehler. Werde ich bei Gelegenheit korrigieren, wenn ich auch nochmal die Beispiele anpasse.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

octek0815

#118
Hallo,

ich möchte die desired-temp meiner Homematic Thermostate überwachen und wenn ein Thermostat längere Zeit auf 12.0 Grad ist eine Meldung bekommen.
Ich scheitere aber an der Definition. Über einen RegEx Tester funktioniert die RexEx.
Wenn nun ein Thermostat auf 12.0 Grad gestellt wird, wird das auch vom Monitoring erkannt, aber nach dem das Thermostat wieder die normale Temperatur hat, wird das Gerät nicht wieder aus der Error-Liste gelöscht. Was mache ich falsch?

Hier die definition:


.*:desired-temp:.1?[2].[0]$ .*:desired-temp:.?[0-1|3-9].[0-9]$|.?22.[0-9]$


Grüße
Oliver

ToM_ToM

ZitatÜber einen RegEx Tester funktioniert die RexEx

Hey, dein zweiter Regex ist nicht so ganz korrekt wenn du tatsächlich immer auf "Nicht 12.0" Grad reagieren möchtest.
Probier mal folgenes:

([1-9][1|3-9]?|[2][1-9])\.[0-9]$

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8