Abwesenheit und Anwesenheit

Begonnen von kristema, 12 Februar 2013, 20:14:19

Vorheriges Thema - Nächstes Thema

MisterEltako

Hi!

Die Logeinträge dienen nur zum Testen, ob alles funktioniert und tatsächlich der richtige Wert ausgegeben wird. Das kann man dann entfernen oder ändern, je nachdem was man will...



also aus:
my $Sonnenuntergang=join (":",@@Sonnenaufgang_absolut);;\
Log 3, "$Sonnenuntergang";;\
if ($Sonnenuntergang lt sprintf("%%02d:%%02d:%%02d",$hour,$min,$sec) && (Value("eg_FlurWandsenderAnAbwesend") eq "Abwesend"){Log 3,"fhem("set eg_WohnzimmerLichtDecke on")";;}\
}


wird z.B.:
my $Sonnenuntergang=join (":",@@Sonnenaufgang_absolut);;\
if (($Sonnenuntergang lt sprintf("%%02d:%%02d:%%02d",$hour,$min,$sec)) && (Value("eg_FlurWandsenderAnAbwesend") eq "Abwesend")){\
fhem("set eg_WohnzimmerLichtDecke on")";;\
}


MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

kristema

Hi nochmals!

Wo finde ich den die Log 3. in welchem Verzeichnis????
Gruß
Markus

MisterEltako

Log 3, "Text....";;

ist doch keine eigene Log-Datei.
Die 3 bedeutet das alle Infos in den " " (wenn in FHEM Loglevel 3 angegeben wurde) in das Haupt-Logfile geschrieben werden. Dort würde man jetzt den Eintag "Text..." mit Logfilezeit finden. Das kannst du doch über Fhem anschauen und musst nicht in ein Verzeichnis.

MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

kristema

Hallo Nochmals!

ich wollte nun eine mail bei Abwesenheit versenden und habe folgendes durchgeführt!!

Mail versenden geht grundsätzlich
getestet mit
{ SUB-Routinen-Name('EMailAdresse@Mail.Domain' ('EMailAdresse@Mail.Domain'),'Test','Test-Text');; }

Allerdings aus dem Notify nicht,mmh??!! Was mach ich nun falsch??!!


####################################################
fhem.cfg

define Abwesend_mail notify eg_FlurWandsenderAnAbwesend:on.*{\
FB_mail('xxxxxx@@xxx.xx' (@@xxx.xx'),'FHEM','Abwesend');;}


####################################################
99_Utils.pm

sub
FB_mail($$$)
{
  my ($rcpt, $subject, $text) = @_;
  my $tmpfile = "fhem_nachricht.txt";
  system("/bin/echo \'$text\' > \'$tmpfile\' ");
  system("/sbin/mailer send -i \"$tmpfile\" -s \"$subject\" -t \"$rcpt\"");
  system("rm \"$tmpfile\"");
  Log 3, "Mail sent to $rcpt";
}
########################################################
FritzBoxUtils.pl

sub
FB_mail($$$)
{
  my ($rcpt, $subject, $text) = @_;
  my $tmpfile = "fhem_nachricht.txt";
  system("/bin/echo \'$text\' > \'$tmpfile\' ");
  system("/sbin/mailer send -i \"$tmpfile\" -s \"$subject\" -t \"$rcpt\"");
  system("rm \"$tmpfile\"");
  Log 3, "Mail sent to $rcpt";
}

PS.: zu dem anderen Thema werde ich mal das testen.

define Abwesend_WoZiLa2_an notify eg_FlurWandsenderAnAbwesend:.* {\
my $now=sprintf("%%02d:%%02d",$hour,$min);;\
if (Value("eg_FlurWandsenderAnAbwesend") eq "Abwesend" && Value("eg_WohnzimmerLichtDecke") eq "aus" && sunset_abs(-1800) lt $now) {\
fhem("set eg_WohnzimmerLichtDecke on-till 23:00");;}\
elsif(Value("eg_FlurWandsenderAnAbwesend") eq "Abwesend" && Value("eg_WohnzimmerLichtDecke") eq "aus" && sunset_abs(-1800) gt $now){\
fhem('set eg_WohnzimmerLichtDecke on;;sleep 3;;set eg_WohnzimmerLichtDecke off;;define egWzLampe_an at *{sunset_abs(-1800)} set eg_WohnzimmerLichtDecke on-till 23:00');;}\
}


Gruß
markus

MisterEltako

ZitatMail versenden geht grundsätzlich
getestet mit
{ SUB-Routinen-Name('EMailAdresse@Mail.Domain' ('EMailAdresse@Mail.Domain'),'Test','Test-Text');; }

Allerdings aus dem Notify nicht,mmh??!! Was mach ich nun falsch??!!

Also auf den ersten Blick würde ich sagen: müsste auch im notify gehen...
Bist du dir sicher das "notify" auch auslöst???
Versuch doch Mal folgendes:

define Abwesend_mail notify eg_FlurWandsenderAnAbwesend:on.*{\
Log 3, "Es wird versucht eine Email zu senden...";;\

FB_mail('xxxxxx@@xxx.xx' (@@xxx.xx'),'FHEM','Abwesend');;}


99_Utils.pm
sub
FB_mail($$$){
my ($rcpt, $subject, $text) = @_;
Log 3, "Subroutine erhält folgende Parameter: $rcpt, $subject, $text ...)";

my $tmpfile = "fhem_nachricht.txt";
system("/bin/echo \'$text\' > \'$tmpfile\' ");
system("/sbin/mailer send -i \"$tmpfile\" -s \"$subject\" -t \"$rcpt\"");
system("rm \"$tmpfile\"");
Log 3, "Mail sent to $rcpt";
}


und schaue ins Logfile was dort dann steht....

MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

kristema

Hallo Nochmals

Also, die { SUB-Routinen-Name('EMailAdresse@Mail.Domain' ('EMailAdresse@Mail.Domain'),'Test','Test-Text');; }
bzw. in meinem Fall { FB_mail('x.xxxxx@web.de' ('x.xxxxx@web.de'),'Test','Test-Text');; }
Bringt im fhem-2013-02.log -->
2013.02.25 16:00:14 3: Subroutine erhält folgende Parameter: x.xxxxx@web.de (x.xxxxx@web.de), Test, Test-Text ...)
2013.02.25 16:00:16 3: Mail sent to x.xxxxx@web.de (x.xxxxx@web.de)

Allerdings dein Listing bringt mir gar kein Eintrag in der fhem-2013-02.log

Gruß
Markus

MisterEltako

Das bedeutet somit dein notify wird nicht aktiviert:

define Abwesend_mail notify eg_FlurWandsenderAnAbwesend:on.*{\...

somit wird der Event eg_FlurWandsenderAnAbwesend:on.* wird nicht ausgelöst.



Probier zum Test:

define Test dummy

define Abwesend_mail notify Test{\
Log 3, "Es wird versucht eine Email zu senden...";;\
FB_mail('xxxxxx@@xxx.xx' (@@xxx.xx'),'FHEM','Abwesend');;}
Dann in Kommandozeile: trigger Test

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

kristema

Hallo Nochmals nach langer Zeit!

Habe nun FHEM der als EM auf einem RPI laufen und Dermail versandt uns die Abwesendheitsimulation funktioniert soweit. allerdings habe ich noch ein kleines Problem mit dem FS20 S6A Wand sender.
dieser ist als einfache Kanalzahl aktiv 3 Kanäle allerdings gist es ein Problem, wenn man die Taster länger als 0,4sec . betätigt kommt kein "on" oder "off" sondern "dimup" oder "dimdown". ich möchte dies unterdrücken, so da auch ein "ON" oder "Off" kommt.

Gruß
Markus