Hallo zusammen, ich hab schon hin und her versucht und leider fehlt mir noch einiges an wissen.
Edit meint ich sollte noch schreiben was ich überhaupt will und was das Problem ist :-D
Das Problem ist, es passiert schlicht nix. Kein Logeintrag, keine Fehler. Was läuft falsch?
Ich möcht gern eine Mail versenden wenn ein Fenster geöffnet wird. Das wird später noch abhängig von presence sein.
In dieser Mail sollen alle offenen Fenster aufgelistet werden.
Schön wäre es wenn mir jemand noch diese Variablen erklären könnte. Z.b was ist das $_ oder my ($hash) = @_ ??
Folgendes habe ich mir zusammenkopiert, bzw. versucht die zwei zusammenzuführen.
Quellen:
http://forum.fhem.de/index.php?t=msg&goto=60040&rid=0http://www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_FensterErstmal habe ich ein neues attr in Global angelegt:
attr global userattr devStateIcon icon sortby webCmd alarm
Danach eine 99_myUtils.pm erstellt wo folgendes drin ist:
##############################################
# $Id: 99_myUtils.pm
package main;
use strict;
use warnings;
use POSIX;
sub
MyUtils_Initialize($$)
{
my ($hash) = @_;
}
sub handlewindow_alarm {
my @devicelist = devspec2array("alarm=yes");
my @wopen = ();
foreach(@devicelist) {
my $sens_window = ReadingsVal($_, "state", "??");
push (@wopen,$_) if ($sens_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, "handlewindow_alarm: ". $_. "noch offen";
Log 1, "ACHTUNG Alarm ausgelöst";
}
}
else {
$resultstring="alle Fenster sind derzeit geschlossen.";
}
return $resultstring;
}
1;
########################################################################
Folgendes steht in meiner fhem.cfg nur mit korrekter E-Mailadresse.
define SensorAlarm notify .*:(open) {\
my $status = ReadingsVal("@", "state", "nn");;\
my $deftype=$attr{@}{alarm};;\
return if ($deftype ne "alarm");;\
if ($defs{@}{PREVSTATE} ne $status) {\
my $HandleWindow_Alarm=handlewindow_alarm;;\
my $subject="FHEM: Fenster @ ".$status;;\
fb_mail('XXXXX@@asdfasasfemail.com',$subject,$HandleWindow_Alarm);;\
Log 3, "@: state ".$status;;\
Log 1, "@: state ".$status;;\
}\
}
Ich sag schonmal Danke an den jenigen der sich da Zeit für nimmt. ;)