Modul 98_monitoring zur Überwachung von Geräten

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

Vorheriges Thema - Nächstes Thema

kvo1

Hallo igami

grade per zufall gelesen,klingt gut und muss ich mal testen bei Gelegenheit !

danke für die Mühe

kvo1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

KernSani

Hi Igami,

falls du noch Feedback brauchst: Schönes Modul, macht soweit ich das bisher testen konnte, was es soll und erspart viele notifies, dummies, watchdogs und myUtils-Routinen. Eine Kleinigkeit ist mir noch aufgefallen: Wenn ich Geräte auf die blacklist setze, bleiben diese erstmal im errorAdd, warningAdd bzw. error und warning reading stehen... Ich nehme an, sie werden morgen verschwinden, aber schön wäre wenn man die gleich nach setzen des Attributes rauswerfen könnte... Frage hierzu auch noch: Akzeptiert die blacklist <devspecs>? Also: Kann ich bei einem global activity monitor z.B. "TYPE=DOIF" blacklisten? (Nicht, dass ein globaler activity Monitor aus meiner Sicht Sinn machen würde - aber mir ist gerade kein besseres Beispiel eingefallen ;-))

Danke,

Grüße,

Oli   
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

igami

Zitat von: KernSani am 26 März 2017, 23:59:07
Schönes Modul, macht soweit ich das bisher testen konnte, was es soll und erspart viele notifies, dummies, watchdogs und myUtils-Routinen.
Das freut mich, genau dafür war es ja auch gedacht :)

Zitat von: KernSani am 26 März 2017, 23:59:07
Eine Kleinigkeit ist mir noch aufgefallen: Wenn ich Geräte auf die blacklist setze, bleiben diese erstmal im errorAdd, warningAdd bzw. error und warning reading stehen... Ich nehme an, sie werden morgen verschwinden, aber schön wäre wenn man die gleich nach setzen des Attributes rauswerfen könnte... Frage hierzu auch noch: Akzeptiert die blacklist <devspecs>? Also: Kann ich bei einem global activity monitor z.B. "TYPE=DOIF" blacklisten?
bisher akzeptiert blacklist nur eine regex für den Gerätenamen, ich werde mir aber noch mal Gedanken dazu machen, dass man regex oder devspec angeben kann.
Auch dass, die Geräte dann sofort aus der Beobachtung rausgenommen werden sollte nicht so schwer umzusetzten sein

Zitat von: KernSani am 26 März 2017, 23:59:07
(Nicht, dass ein globaler activity Monitor aus meiner Sicht Sinn machen würde - aber mir ist gerade kein besseres Beispiel eingefallen ;-))
Das habe ich auch schon festgestellt, nachdem ich Benachrichtigungen bzgl. ReadingsGroups bekommen habe :D

Momentan wird hier renoviert, aber ich denke, dass ich die Änderungen im Lauf der Woche einchecken kann.
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

kvo1

So, ich habe mal das "Batterieüberwachung" - Beispiel aktiviert, werde dann berichten!

Danke nochmal für das Modul !

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

igami

Zitat von: igami am 27 März 2017, 06:30:56
Momentan wird hier renoviert, aber ich denke, dass ich die Änderungen im Lauf der Woche einchecken kann.
Ach, ist doch schon eingecheckt, man darf ja keinen Krach machen, wenn die anderen Frühstücken :D
Vielleicht baue ich auch noch ein whiteList attribut ein.

Zitat von: kvo1 am 27 März 2017, 08:27:18
So, ich habe mal das "Batterieüberwachung" - Beispiel aktiviert, werde dann berichten!
Hast du das per "Raw definition" gemacht? Falls ja, funktionert das gut?

Falls sich andere Werte als in den Beispielen angegeben als Sinnvoll erweisen bitte bescheid geben, so ausgiebig habe ich das selbst noch nicht getestet ;)
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

kvo1

ZitatHast du das per "Raw definition" gemacht? Falls ja, funktionert das gut?
hmmm, wie meinst Du das ?

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

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

hoods

Hallo igami,

ich experimentiere gerade mit deinem Modul allerdings komme ich mit dem blacklist Attribut nicht so ganz klar.

Egal ob ich (bsp. 1)
DOIF notify readingsGroup MQTT_DEVICE:FILTER=NAME=mqtt_speedtest
oder (bsp. 2)
TYPE=DOIF TYPE=notify etc.
auf die blacklist packe, es werden trotzdem DOIF's gelistet die sich seit mehr als 12 bzw. 24h nicht gemeldet haben.

Auch ist mir nicht ganz klar, wie einzelne Devices zusätzlich auf die blacklist zu nehmen sind wenn bereits einige Devices über devspec ausgeschlossen wurden (daher der Versuch mit dem Filter im ersten Beispiel).

Hast Du einen Tipp wie blacklist korrekt zu nutzen ist?

Danke Sven
Odroid C2, FHEM 5.8, HMUSB, Jeelink, Rademacher DuoFern Stick, Benning WR über HTTPMOD

igami

Zitat von: hoods am 06 April 2017, 16:40:59
ich experimentiere gerade mit deinem Modul allerdings komme ich mit dem blacklist Attribut nicht so ganz klar.

Egal ob ich (bsp. 1)
DOIF notify readingsGroup MQTT_DEVICE:FILTER=NAME=mqtt_speedtest
oder (bsp. 2)
TYPE=DOIF TYPE=notify etc.
auf die blacklist packe, es werden trotzdem DOIF's gelistet die sich seit mehr als 12 bzw. 24h nicht gemeldet haben.
hast du die aktuelle Version? Bitte mal mit "version monitoring" prüfen. Es sollte "98_monitoring.pm 13814 2017-03-27 06:52:13Z igami" sein.

Zitat von: hoods am 06 April 2017, 16:40:59
Auch ist mir nicht ganz klar, wie einzelne Devices zusätzlich auf die blacklist zu nehmen sind wenn bereits einige Devices über devspec ausgeschlossen wurden (daher der Versuch mit dem Filter im ersten Beispiel).

Hast Du einen Tipp wie blacklist korrekt zu nutzen ist?
nehmen wir an es sollen alle DOIF und das device globa ausgeschlossen werden, dann wäre das Attribut so zu befüllen:

TYPE=DOIF global


Ich habe es gerade eben bei mir noch mit dummy probiert und es wird soweit korrekt ausgewertet
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

hoods

Danke für die super schnelle Antwort.

Version -> 98_monitoring.pm 13814 2017-03-27 06:52:13Z igami

1. blacklist aktualisiert:
TYPE=DOIF TYPE=notify TYPE=readingsGroup global hmusb hm

2. set Activity_monitoring clear all

Fehlt noch was? Ich bin gespannt was mir Telegram nachher schickt. Ich melde mich, sobald ich Neuigkeiten habe.

Gruss Sven
Odroid C2, FHEM 5.8, HMUSB, Jeelink, Rademacher DuoFern Stick, Benning WR über HTTPMOD

igami

Zitat von: hoods am 06 April 2017, 17:37:15
2. set Activity_monitoring clear all
Das sollte unnötig sein. Wenn das blacklist Attribut gesetzt wird werden alle Einträge auf den Listen gelöscht die davon betroffen sind.
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

igami

Zitat von: igami am 27 März 2017, 08:55:36
Vielleicht baue ich auch noch ein whiteList attribut ein.
gesagt, getan :)
Ab morgen per update verfügbar
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

igami

Zitat von: igami am 06 April 2017, 17:44:55
Zitat von: hoods am 06 April 2017, 17:37:15
2. set Activity_monitoring clear all
Das sollte unnötig sein. Wenn das blacklist Attribut gesetzt wird werden alle Einträge auf den Listen gelöscht die davon betroffen sind.
Okay, habe grad festgestellt, dass ja die Device die noch wartend in dem Modul stehen nicht gelöscht werden, also ist es doch Sinnvoll
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

igami

mein monitoring sieht nun übrigens so aus:

defmod Activity_monitoring monitoring .*:.*
attr Activity_monitoring errorReturn {return unless(@errors);;\
$_ = AttrVal($_, "alias", $_) foreach(@errors);;\
return("Das Gerät \"$errors[0]\" hat sich seit mehr als 24 Stunden nicht mehr gemeldet.") if(int(@errors) == 1);;\
@errors = sort {lc($a) cmp lc($b)} @errors;;\
return(join("\n - ", "Die folgenden ".@errors." Geräten haben sich seit mehr als 24 Stunden nicht mehr gemeldet:", @errors))\
}
attr Activity_monitoring errorWait 60*60*24
attr Activity_monitoring icon it_television
attr Activity_monitoring warningReturn {return unless(@warnings);;\
$_ = AttrVal($_, "alias", $_) foreach(@warnings);;\
return("Das Gerät \"$warnings[0]\" hat sich seit mehr als 12 Stunden nicht mehr gemeldet.") if(int(@warnings) == 1);;\
@warnings = sort {lc($a) cmp lc($b)} @warnings;;\
return(join("\n - ", "Die folgenden ".@warnings." Geräten haben sich seit mehr als 12 Stunden nicht mehr gemeldet:", @warnings))\
}
attr Activity_monitoring warningWait 60*60*12
attr Activity_monitoring whitelist i:TYPE=AMAD:FILTER=i:BRIDGE!=1 \
i:TYPE=CUL_HM:FILTER=i:channel_01!=.+:FILTER=a:model!=(ActionDetector|CCU-FHEM) \
i:TYPE=HTTPMOD \
i:TYPE=HUEDevice:FILTER=i:type=.*light.*\
i:TYPE=Nmap\
i:TYPE=PRESENCE\
i:TYPE=PROPLANTA\
i:TYPE=SYSMON\
i:TYPE=TRX_WEATHER\
i:TYPE=Weather\
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

mumpitzstuff

Wenn ich mir jetzt eine Push Nachricht schicken lassen möchte, dann muss ich das im Attribut errorReturn (Perl Code) machen? Wird die dann nur einmalig verschickt wenn der Fehler neu in die Fehlerliste aufgenommen wird?

Was macht man mit errorFuncAdd? Kannst du das vielleicht kurz an einem Beispiel erklären?

Hintergrund: Ich würde das Ding gern einsetzen, um dein Batterie Beispiel zu nehmen, möchte mir aber nach 1 Woche im Warning Status (switch zu error) eine Push Nachricht schicken lassen. Weiterhin würde ich damit gern die Benachrichtigung für das Blumen giessen umsetzen. Das würde mir diverse Notify und Watchdog Anweisungen ersparen...