notify-Email durch SYSMON-Dateisystem-%-Wert auslösen (raspbmc)

Begonnen von zYloriC, 06 Februar 2014, 08:43:24

Vorheriges Thema - Nächstes Thema

zYloriC

Hallo Community,
ich habe fhem auf meinem raspBmc laufen und hatte bereits 2 Mal das Problem, dass die SD-Karte voll war und der rPI nicht mehr in der Lage war zu booten (archivecmd wird auch noch ein Thema ;) ).

Ich habe in fhem das SYSMON-Modul inkl. Plots eingebunden.
Nun würde ich die SYSMON-Infos zum Dateisystem gern nutzen, um eine EMail an mich zu senden, wenn der Speicherplatz zu 80% voll ist. SendMail habe ich bereits und im Plot wird auch der %-Wert für das Dateisystem angezeigt. Ich weiß aber nicht, wie ich den %-Wert aus den SYSMON-Readings in ein notify bekomme, welches dann SendMail auslöst. Brauche ich fhem2Mail dazu?

Danke für einen Hinweis.
zYloriC

Infos zu SYSMON:
http://fhem.de/commandref_DE.html#SYSMON
http://forum.fhem.de/index.php/topic,17201.0.html

hexenmeister

Mit {my @a = split(/\s+/, ReadingsVal("sysmon","fs_root",""));; my $t = $a[6];; if ($t ge 80) {fb_mail ('xxx@@xx.de','HDD','Platte fast voll!');;} } sollte eine Mail versendet werden, aber nur, wenn die root-Partition mehr als zu 80% belegt ist. Entsprechende Definition für fs_root in SYSMON vorausgesetzt...
Jetzt muss das ganze noch in ein notify...

zYloriC

Hallo hexenmeister,
vielen Dank für deine Info. Ich kam unter der Woche nicht zu dem Thema, werde mich am WE aber wieder damit beschäftigen.
Ich verschicke die Mail aber mit sendMail. Das sollte doch auch klappen.
fb_mail ist ja meines Wissens eine rPI-Mail-Alternative, die auch hinzu-installiert bzw. konfiguriert werden muss.

Nochmal danke für die Hilfe, zYloriC

zYloriC

ich habe am Wochenende etwas Zeit gebraucht, um sendMail auf dem raspberry aus fhem heraus zum Laufen zu bekommen. (auf der rPi-Konsole hat es geklappt, in fhem ging es nicht)
Mittlerweile funktioniert der sendmail-Befehl per {system ...} in der fhem.cfg.

Ich habe den Code von Hexenmeister in einen "define .. at ..."-Code gepackt, da ich will, dass das Dateisystem 2-mal am Tag geprüft wird. Ist das sinnvoll und wie würde man das Ganze per notify lösen?

Eine Frage zum Code habe ich noch. Aktuell funktioniert das Auslesen der Readings für die if-Schleifen-Bedingung noch nicht. (es wird keine Mail versendet, auch nicht wenn der Schwellwert überschritten wird. Wenn ich die if-Bedingungen aus dem "define .. at ..." nehme, bekomme ich Mails in regelmäßigen Abständen) Daher ist meine Frage, wie ich die einzelnen Elemente aus Hexenmeisters Code in der fhem-Kommandozeile testen kann? Bei
ReadingsVal("sysmon","fs_root","") oder
split(/\s+/, ReadingsVal("sysmon","fs_root",""))
sagt fhem, dass es die Befehle ReadingsVal und split nicht kennt und ich es mal mit 'help' versuchen soll  ;)

Hat jemand einen Tipp`?

hexenmeister

Das ist Perl-Code, also muss in die {}!

Probire folgendes auf der Console:
{my @a = split(/\s+/, ReadingsVal("sysmon","fs_root",""));; my $t = $a[6];; if ($t ge 80) {"Platte fest volll!";;} else {"Noch genug Platz da!";;}}

Da kannst Du statt Meldungen, Dein Code für Mailversand einbauen. Ob Du das mit AT machst und 2 Mal amTag prüfst, oder den Zustand per NOTIFY  melden lässt, hängt von Deinem Wünschen ab. Bei Notify musst Du noch etwas dagegen unternehmen, dass Du ab 80% Füllstand ständig neue Mails bekommst. Da muss Du irgendwo das Datum des Versands abspeichern (Dummy oer so) und entsprechend prüfen, so dass nur einmal pro Tag (Stunde, etc.) ausgeführt wird.