Alarm wenn Sensor nicht mehr sendet

Begonnen von schlauby, 06 Oktober 2013, 22:02:13

Vorheriges Thema - Nächstes Thema

Klinki

Hi,

Ich versuche gerade das Modul zu installieren:
- Heruntergeladen

wget https://raw.githubusercontent.com/mhop/fhem-mirror/master/fhem/contrib/DeviceMonitor/98_DeviceMonitor.pm

- Device in fhem.cfg eingerichtet. Nach dem Neustart kann ich auch drauf zugreifen
- Dann den zu überwachenden Geräten das Attribut zugeordnet

attr FHT_2814 device_timeout 1


bekomme aber immer die Fehlermeldung

FHT_2814: unknown attribute device_timeout.


was mache ich denn da falsch??

VG & schönes Wochenende

claas

Hallo zusammen,

ich glaube ich bin zu blöd.
Ich habe das "Device" "myDevMon" eingerichtet.
Das hat ein Reading "Temperatur.Wohnzimmer" "dead"

Wie muss nun das notify aussehen?

myDevMon:Temperatur.Wohnzimmer:dead "/usr/local/sendemail/sendemail.sh" versendet kein Mail.

Wenn ich das Skript per Terminal aufrufe kommt ein Mail. Das Skript geht also.
Daher muss es wohl daran liegen, dass ich die notify-Syntax nicht kapiere.

Ich bin für jeden Hinweis dankbar.

Viele Grüsse

Claas

Klinki

#32
Hi Claas,

Blödheit ist immer relativ  ;)
Ich hatte/habe auch manchmal echte Probleme mit notify.
Aktuell nutze ich für den DeviceMonitor ein:

define monitor notify .*health_state:.*dead.* { { DebianMail('MEINE@@ADRESSE.DE','FHEM Geraet tot','@ %') ;; DebianMail('MEINEADRESSE@@api.pushover.net','Geraet tot','@ %') ;; } }


Es schickt mir eine "normale" und eine Pushover-Nachricht, wenn ein Gerät gestorben ist.
Radikal, einfach, nervig und für die erste Testphase genau das Richtige  8)

Dennis hatte auch noch ein paar Tipps. Les Dir mal:
https://groups.google.com/forum/#!topic/fhem-users/A4dgFwZdtOs durch.

viel erfolg

PS: Das DebianMail setze ich auf einem Raspi ein. Bei Dir heißt der Mailer möglicherweise anders. Je nach Plattform...

Klinki

die genannte Lösung wird problematisch, da mein nur einen Status-Update bekommt, wenn ein dead-Event eintritt. Zusätzlich zu dem Event, lasse ich mir jetzt täglich um 12:01 einen Überblick über alle toten Geräte schicken. Aber nur, wenn es auch Tote gibt.


## Alle Geraete Monitor
define monitor notify .*health_state:.*dead.* { { DebianMail('ICH@@MEINEDOMAIN.DE','FHEM Geraet tot','@ %') ;; DebianMail('ICH@@api.pushover.net','Geraet tot', fhem("get MyDeviceMonitor dead_text",1) ) ;; } }

define CheckDevices2 at *12:01:00 { if (fhem("get MyDeviceMonitor dead_count",1) > 0) { DebianMail('ICH@MEINEDOMAIN.DE','FHEM Geraet tot','@ %') ;; DebianMail('ICH@api.pushover.net','Geraet tot', fhem("get MyDeviceMonitor dead_text",1) ) ;; } }


Als Vorlage diente auch hier der Beitrag von Dennis.
Man beachte hier die unterschiedliche Anzahl der @-Zeichen

Viel Spaß!

claas

Hallo Klinki,

vielen Dank :-)

Wenn ich HEALTH_STATE anstatt health_state schreibe klappt's.

Sieht bei mir jetzt so aus


define WZtot notify .*HEALTH_STATE:.*dead.*  "/usr/local/sendemail/sendemail.sh"


FHEM läuft auf einer Synology NAS. Das Mail-Skript ist Perl.

Von-XS1-Nach-FHEM

Hallo ich habe das gleiche problem als "klinki"

:

ZitatAntw:Alarm wenn Sensor nicht mehr sendet
« Antwort #30 am: 06 Dezember 2014, 17:32:32 »
Zitat
Hi,

Ich versuche gerade das Modul zu installieren:
- Heruntergeladen
Code: [Auswählen]
wget https://raw.githubusercontent.com/mhop/fhem-mirror/master/fhem/contrib/DeviceMonitor/98_DeviceMonitor.pm
- Device in fhem.cfg eingerichtet. Nach dem Neustart kann ich auch drauf zugreifen
- Dann den zu überwachenden Geräten das Attribut zugeordnet
Code: [Auswählen]
attr FHT_2814 device_timeout 1

bekomme aber immer die Fehlermeldung
Code: [Auswählen]
FHT_2814: unknown attribute device_timeout.

Da ich leider die lösung nicht finde die gleiche Frage, was mache ich denn da falsch??

Noname

Hallo,

ich überwache auch meine Sensoren. Die Beispiele waren mir alle zu aufwendig.

Ich hab in 99_myUtiils.pm folgende Funktion erstellt:
Einfach reinkopieren:

# Device Timeoutueberwachung ################################################
sub myTimeout($$$$) {
my ($Tdevice, $Twarning, $Terror, $Tdummy) = @_;
my $Tdev1 =  (time - time_str2num(ReadingsTimestamp($Tdevice,"state",0))) / 60;
my $Tdev2 =  Value($Tdummy);

if ($Tdev1 < $Twarning && $Tdev2 ne "ok") {fhem "set ".$Tdummy." ok"};
if ($Tdev1 >= $Twarning && $Tdev1 < $Terror && $Tdev2 ne "timeout") {fhem "set ".$Tdummy." timeout"};
if ($Tdev1 >= $Terror && $Tdev2 ne "error") {fhem "set ".$Tdummy." error"};
}


In der fhem.cfg dann die zu überwachenden Sensoren eintragen.
Alle Sensoren werden alle 60 Sekunden überprüft ob diese noch senden.
Bei mir wird nach 16 Minuten der dementsprechende Dummy auf warning
gesetzt und nach 180 Minuten auf error. Im Floorplan blinkt die Meldung
bei warning orange und bei error rot. (hab dazu einfach gifs erstellt.)

So siehts bei mir aus:

#Timeoutueberwachung
define DevTimeout at +*00:01:00 {\
myTimeout("FS20_Meldung_UV", 16, 180, "FS20_Meldung_UV_Timeout");;\
myTimeout("FS20_Meldung_DP", 16, 180, "FS20_Meldung_DP_Timeout");;\
myTimeout("KS300_Wetter", 16, 180, "KS300_Timeout");;\
myTimeout("RE_Niv", 16, 180, "RE_Timeout");;\
myTimeout("Temp_Wohnen", 16, 180, "Temp_Wohnen_Timeout");;\
myTimeout("Temp_Buero", 16, 180, "Temp_Buero_Timeout");;\
myTimeout("Temp_Schlafen", 16, 180, "Temp_Schlafen_Timeout");;\
myTimeout("Temp_Dachboden", 16, 180, "Temp_Dachboden_Timeout");;\
myTimeout("Temp_Gefrierschrank", 16, 180, "Temp_Gefrierschrank_Timeout");;\
myTimeout("Temp_Keller", 16, 180, "Temp_Keller_Timeout");;\
myTimeout("Temp_Treppenhaus", 16, 180, "Temp_Treppenhaus_Timeout");;\
myTimeout("Temp_Trockenraum", 16, 180, "Temp_Trockenraum_Timeout");;\
myTimeout("Wasser_Waschraum", 65, 180, "Wasser_Waschraum_Timeout");;\
myTimeout("Wasser_Kueche", 65, 180, "Wasser_Kueche_Timeout");;\
}
attr DevTimeout room Alarm


Beispiel für ein HMS100TF, wichtig ist hier nur der Dummy --> Temp_Wohnen_Timeout :

# HMS100TF Wohnen ##############################################################
define Temp_Wohnen HMS f66d
attr Temp_Wohnen IODev CUL
attr Temp_Wohnen fp_01_Wohnen 314,494,4,,
attr Temp_Wohnen room Wohnen

define FileLog_Temp_Wohnen FileLog ./log/Temp_Wohnen_%Y.log Temp_Wohnen:T:.*
attr FileLog_Temp_Wohnen logtype HMS100TF:Plot,text
attr FileLog_Temp_Wohnen room Wohnen

define Plot_Temp_Wohnen SVG FileLog_Temp_Wohnen:HMS100TF:CURRENT
attr Plot_Temp_Wohnen fp_Plot_Wohnen 40,190,0,
attr Plot_Temp_Wohnen label "Wohnen  - Min $data{min1} (°C) - Max $data{max1} (°C) - Max $data{max2} (%)"
attr Plot_Temp_Wohnen room Wohnen

# Kommunikationsüberwachung HMS100T Wohnen
define Temp_Wohnen_Timeout dummy
attr Temp_Wohnen_Timeout fp_01_Wohnen 304,476,0,Wohnen,
attr Temp_Wohnen_Timeout room Wohnen

#Kommunikationsueberwachung
define Temp_Wohnen_Timeout_N notify Temp_Wohnen_Timeout {\
Alarm("Temp_Wohnen_Timeout", 'timeout', 0, 0, "", "");;\
Alarm("Temp_Wohnen_Timeout", 'error', 19, 1, "Alarme_State", "Alarm_History");;\
}
attr Temp_Wohnen_Timeout_N room Wohnen

##############################################################################

Von-XS1-Nach-FHEM

Wow das hast du super gemacht, ich denke da werden Sich einige freuen wenn die das auch lesen.

Danke das du das mit uns geteilt hast@!

Ich verstehe noch nicht alles wie das schritt für schritt geht wenn ich eine Aktor überprüfen woll.

Aber werde das nochmal gut bestudieren und wenn ich nicht weiter komme dich nochmal Fragen hier im Beitrag.

Die .gif Dateien sind auch Super!

Danke Danke! :) :) :) :)


Von-XS1-Nach-FHEM

Also das Hat geklappt wirklich einte Tolle Sache! Habe jetzt auch ein 3D Floorplan und das Sieht einfach toll aus!

:) :) :) :) :) :) :) :)

Als nochmals herzlichen dank!

Noname

schön das es bei dir auch geklappt hat,
dann noch viel Spaß damit.


Von-XS1-Nach-FHEM

Nochmal eben eine Frage wegen denn Programm.

Im Log Datei sehe ich von jeder Sensor ab und an folgende Meldung:

Undefined subroutine &main::Alarm called at (eval 782) line 2

Was konnte das sein?

Noname

Hallo,
das Alarmmodul dient bei mir als Emailversand und Alarmarchivierung,
das Modul darfst du bei dir "nicht" aufrufen! (siehe unten ist durchgestrichen)


Beispiel für ein HMS100TF, wichtig ist hier nur der Dummy --> Temp_Wohnen_Timeout :

# HMS100TF Wohnen ##############################################################
define Temp_Wohnen HMS f66d
attr Temp_Wohnen IODev CUL
attr Temp_Wohnen fp_01_Wohnen 314,494,4,,
attr Temp_Wohnen room Wohnen

define FileLog_Temp_Wohnen FileLog ./log/Temp_Wohnen_%Y.log Temp_Wohnen:T:.*
attr FileLog_Temp_Wohnen logtype HMS100TF:Plot,text
attr FileLog_Temp_Wohnen room Wohnen

define Plot_Temp_Wohnen SVG FileLog_Temp_Wohnen:HMS100TF:CURRENT
attr Plot_Temp_Wohnen fp_Plot_Wohnen 40,190,0,
attr Plot_Temp_Wohnen label "Wohnen  - Min $data{min1} (°C) - Max $data{max1} (°C) - Max $data{max2} (%)"
attr Plot_Temp_Wohnen room Wohnen

# Kommunikationsüberwachung HMS100T Wohnen
define Temp_Wohnen_Timeout dummy
attr Temp_Wohnen_Timeout fp_01_Wohnen 304,476,0,Wohnen,
attr Temp_Wohnen_Timeout room Wohnen

#Kommunikationsueberwachung
define Temp_Wohnen_Timeout_N notify Temp_Wohnen_Timeout {\
Alarm("Temp_Wohnen_Timeout", 'timeout', 0, 0, "", "");;\
Alarm("Temp_Wohnen_Timeout", 'error', 19, 1, "Alarme_State", "Alarm_History");;\
}
attr Temp_Wohnen_Timeout_N room Wohnen

##############################################################################


Von-XS1-Nach-FHEM

OK danke habe die Code noch nicht so gut überprüft und verstanden aber jetzt sehe ich es@!

Und welche Code brauche ich noch dazu damit ich auch eine Email und ein Alarmarchivierung bekomme??


Noname

Hi Wouter-h,
der Code für die Alarmfunktionen funktioniert nur für die Fritzbox (7490)

flurin

#44
Hallo

Gute Idee mit der myTimeout Funktion!

Als Alternative hier eine Lösung mit DOIF:

define di_garden_door_alive DOIF ([garden_door] or [global:?INITIALIZED])\
({log_alive("garden_door")}, trigger garden_door failure)
attr di_garden_door_alive do resetwait
attr di_garden_door_alive group DOIF
attr di_garden_door_alive wait 180


Der Code:
{log_alive("garden_door")}

kann mit einem beliebigen Befehl ersetzt werden.

Der Graph (Plot) zu "garden_door" sieht dann so aus:

(http://forum.fhem.de/index.php?action=dlattach;topic=15173.0;attach=28028;image)

Die dazugehörige Plot-Datei:

# Created by FHEM/98_SVG.pm, 2015-02-21 16:58:54
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics ("open" 1, "closed" 0.2, failure -0.1)
set y2tics ("open" 1, "closed" 0.2, failure -0.1)
set grid y2tics
set ylabel ""
set y2label "Status"
set yrange [-0.2:1.2]
set y2range [-0.2:1.2]

#FileLog_garden_door 3:garden_door.*:0:$fld[2]=~"open"?1:$fld[2]=~"closed"?0.2:-0.1

plot "<IN>" using 1:2 axes x1y2 notitle ls l0 lw 1 with steps


Gruss
flurin