FHTTK: Benachrichtigung bei offenem Fenster: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Uli (Diskussion | Beiträge) (Beispiel-confi-Auszug umgestellt von @/% auf $NAME/$EVENT) |
||
Zeile 26: | Zeile 26: | ||
<nowiki>define n_Fenster notify .*:Window.*(Open|Closed) { \ | <nowiki>define n_Fenster notify .*:Window.*(Open|Closed) { \ | ||
my $window_state=ReadingsVal(" | my $window_state=ReadingsVal("$NAME", "Window", "nA");;\ | ||
my $deftype=$defs{ | my $deftype=$defs{$NAME}{TYPE};;\ | ||
return if ( $deftype ne "CUL_FHTTK" );;\ | return if ( $deftype ne "CUL_FHTTK" );;\ | ||
if ( $defs{ | if ( $defs{$NAME}{PREVSTATE} ne $window_state ) { \ | ||
my $fhttk_status=FHTTK_status;;\ | my $fhttk_status=FHTTK_status;;\ | ||
my $subject="FHEM: Fenster | my $subject="FHEM: Fenster $NAME ".$window_state;; \ | ||
fb_mail('xxx@@xxx.de',$subject,$fhttk_status);;\ | fb_mail('xxx@@xxx.de',$subject,$fhttk_status);;\ | ||
Log 3, " | Log 3, "$NAME: Window ".$window_state;;\ | ||
}\ | }\ | ||
}</nowiki> | }</nowiki> |
Version vom 15. November 2015, 18:29 Uhr
Wer wird nicht gerne per Mail benachrichtigt, wenn ein Fenster auf- oder zugemacht wird? Richtig komfortabel ist es, wenn man dann auch noch gleich eine Liste aller FHTTK-devices mitgeliefert bekommt, die den Status "Window: Open" haben:
in 99_marte.pm
sub FHTTK_status { my @fhttks = devspec2array("TYPE=CUL_FHTTK"); my @wopen = (); foreach(@fhttks) { my $fhttk_window = ReadingsVal($_, "Window", "nA"); push (@wopen,$_) if ($fhttk_window eq "Open" ); } my $num_wopen = @wopen; my $resultstring=''; if ( $num_wopen gt 0 ) { $resultstring="folgende Fenster sind noch offen:\n\n"; foreach(@wopen) { $resultstring.="- ".$_."\n"; Log 4, "FHTTK_status: ". $_. "noch offen"; } } else { $resultstring="alle Fenster sind derzeit geschlossen."; } return $resultstring; }
in die Config
define n_Fenster notify .*:Window.*(Open|Closed) { \ my $window_state=ReadingsVal("$NAME", "Window", "nA");;\ my $deftype=$defs{$NAME}{TYPE};;\ return if ( $deftype ne "CUL_FHTTK" );;\ if ( $defs{$NAME}{PREVSTATE} ne $window_state ) { \ my $fhttk_status=FHTTK_status;;\ my $subject="FHEM: Fenster $NAME ".$window_state;; \ fb_mail('xxx@@xxx.de',$subject,$fhttk_status);;\ Log 3, "$NAME: Window ".$window_state;;\ }\ }
Achtung: Hier wird fb_mail als Mailer benutzt (siehe auch E-Mail senden) - je nach *nix-Version muss u.U. der Pfad angepasst sowie die entsprechenden Codezeilen in die .pm-Datei übernommen werden.
Randbemerkung zum Config-Code: Ein "notify <sensor>:Open" alleine reicht nicht. Da der Sensor in alle 2 Minuten seinen Status sendet, muss zudem der vorherige Status abgefragt werden, um nur bei Statusänderungen zu reagieren.