fbmail zeitversetzt ausführen

Begonnen von Terabyte, 18 Mai 2013, 08:48:14

Vorheriges Thema - Nächstes Thema

Terabyte

Hallo

Ich würde gerne, wenn ein Türkontakt auslöst, dass zeitversetzt von fbmail eine Alarmmeldung gesendet wird, aber nur wenn innerhalb dieses "Countdowns" keine Person als anwesend registriert wird.(presence)

Diesen Befehl benutze ich zur Zeit.

define Alarmmeldung1 notify MAX_060f08:opened.* {if ( Value("ALARM") eq "on"){fb_mail ('xxxx@@gmail.com' (@@gmail.com'),'ALARM','Eingangstuer offen')}}

Das Problem hierbei ist, dass oft das Handy nicht schnell genug als "presence" erkannt wird und dann immer ein "falscher" Alarm ausgelöst wird.
Deshalb möchte ich, dass nachdem der Türkontakt geöffnet wurde, 1 Minute gewartet wird und wenn sich innerhalb von dieser Zeit niemand mit dem Smartphone auf presence meldet, das Mail geschickt wird.

Ist das möglich?

Danke

MisterEltako

define Alarmmeldung1 notify MAX_060f08:opened.* {\
      if ( Value("ALARM") eq "on"){\
         fhem("define Latenz at +00:05:00 {\
               if (Value('presence') eq 'true')  {\
                   fb_mail ('xxxx@@gmail.com','ALARM','Eingangstuer offen');;\
               }\
        }");;\
      }\
}


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

Terabyte

Hallo

Danke.
Aber leider bekomme ich da folgende Fehlermeldung im Log.

Alarmmeldung1 return value: Global symbol "@gmail" requires explicit package name at (eval 364392) line 1.

MisterEltako

define Alarmmeldung1 notify MAX_060f08:opened.* {\
      Log 3, 'Test läuft...';;\  
      if (Value("ALARM") ne "on") {Log 3, "kein Alarm eingeschaltet!";;\
      }else (Value("presence") eq "true") {\
           fhem("define Latenz at +00:02:00 {fb_mail('xxxx@gmail.com','ALARM','Eingangstuer offen')}");;\
           Log 3, "Latenzzeit wurde als at angelegt...";;\
      }\
}


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

Terabyte

Funktioniert leider auch nicht...

Alarmmeldung1 return value: syntax error at (eval 372753) line 1, near "else ("
syntax error at (eval 372753) line 1, near "} }"



Der "Befehl" Latenz ist für die Verzögerung zuständig?
Was bedeutet das Log3?

MisterEltako

Jetzt aber!!!

define Alarmmeldung1 notify MAX.* {\
      Log 3, 'Test läuft...';;\  
      if (Value("ALARM") ne "on") {Log 3, "kein Alarm eingeschaltet!";;\
      }else {if (Value("presence") eq "true"){\
           fhem("define Latenz at +00:02:00 {fb_mail('xxxx@gmail.com' ('xxxx@gmail.com'),'ALARM','Eingangstuer offen')}");;\
           Log 3, "Latenzzeit wurde als at angelegt...";;\
           }\
      }\
}

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

Terabyte

Jein :)

Zeit scheint korrekt zu laufen usw..
Er möchte auch eine Mail senden, bekomme aber folgende Fehlermeldung

2013.05.18 18:05:46 3: Test läuft...
2013.05.18 18:05:46 3: Latenzzeit wurde als at angelegt...
2013.05.18 18:05:56 3: Subroutine erhält folgende Parameter: xxxxMAXgmail.com, ALARM, Eingangstuer offen ...)
2013.05.18 18:05:59 3: Mail sent to xxxxMAXgmail.com

Es wird anscheinend aus dem "@" ein MAX gemacht...


Schreibe ich im Script bei der Mailadresse  xxxx@@gmail.com (@@gmail.com) (also mit 2 @), dann gibt es folgende Fehlermeldung

Alarmmeldung1 return value: Global symbol "@gmail" requires explicit package name at (eval 2539) line 1.

Ralph

Probiere mai FB_mail statt fb_mail
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

Terabyte

Hilft leider auch nix.

Es wird immer noch aus dem @ ein MAX gemacht.

MisterEltako

Wie wäre es damit? ;o)

define Alarmmeldung1 notify MAX_060f08:opened.* {\
fhem("set ALARM on");;\
fhem("set presence true");;\
Log 3, 'Test läuft...';;\
if (Value("ALARM") ne "on") {Log 3, "kein Alarm eingeschaltet!";;\
}else {if (Value("presence") eq "true"){\
my $Mail = 'xxxx@@gmail.com' (@@gmail.com');;\
fhem("define Latenz at +00:02:00 {fb_mail('$Mail','ALARM','Eingangstuer offen')}");;\
Log 3, "Latenzzeit wurde als at angelegt...";;\
}\
}\
}

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

Terabyte

Vielen Dank :)

Damit wird zumindest schonmal das Mail zeitversetzt gesendet
my $Mail = 'xxxx@@gmail.com' (@@gmail.com');;\

Was ich jetzt noch testen muss, ob kein Alarm ausgelöst wird wenn innerhalb der Latenz Zeit jemand present ist.

Ich habe aber noch Fragen.

Was bedeutet dieses: Log 3, 'Test läuft...';;\
Hat das eine Funktion außer Textausgabe im Log?

Puschel74

Hallo,

nein, es dient einzig nur damit um zu prüfen ob das notify überhaupt angesprungen wird.
Das sind recht feine Kniffe um zu sehen ob etwas überhaupt auslöst ;-)

Grüße

P.S.: Sorry MisterEltako das ich dir zumindest bei dieser Antwort vorgreife - für den Rest bist du besser drauf ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

MisterEltako

@Puschel
Das ist doch kein Wettbewerb wer zu erst antwortet, sondern eine prima Zusammenarbeit, die meistens zur Lösung des Problems führt. Man kann immer etwas dazu lernen ;o)

@Terabyte

Du musst für diesen Fall noch Nachfolgendes einfügen zum simulieren:

define Alarmmeldung1 notify MAX.* {\
fhem("set ALARM off");;\
fhem("set presence true");;\

Log 3, 'Test läuft...';;\
if (Value("ALARM") ne "on") {Log 3, "kein Alarm eingeschaltet!";;\
}else {if (Value("presence") eq "true"){\
my $Mail = 'xxxx@@gmail.com (@@gmail.com)';;\
fhem("define Latenz at +00:00:02 {fbmail('$Mail','ALARM','Eingangstuer offen')}");;\
Log 3, "Latenzzeit wurde als at angelegt...";;\
}\
}\
}


Das müsste zunächst funktionieren. Falls die Log's dich nerven kannst du sie ohne Funktionsverlust löschen. Ich finde es gut eine Kontrolle zu haben, was so abläuft im Hintergrund.

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

Terabyte

Hallo

Da bekomme ich leider folgdene Fehlermeldung

Alarmmeldung1 return value: Unknown command {\
fhem("set, try help
Unknown command fhem("set, try help
Unknown command Log, try help
Unknown command if, try help
Unknown command }else, try help
Unknown command fhem("define, try help
Unknown command Log, try help
Unknown command }\
, try help


Mit dem anderen Script funktioniert das Zeitversetzte senden vom Mail problemlos. Was aber leider nicht funktioniert. Das Mail wird auch gesendet wenn sich in der eingestellten Zeit jemand auf PRESENCE befindet.
Da soll eigentlich nichts geschickt werden

MisterEltako

define Alarmmeldung1 notify MAX_060f08:opened.* {\
 fhem("set ALARM on");;\
 fhem("set presence false");;\
 Log 3, 'Alarmmeldung wird geprüft...';;\
 if (Value("ALARM") ne "on") {Log 3, "kein Alarm eingeschaltet!";;\
 }else {\
 if (Value("presence") eq "true"){\
    my $Mail = 'xxxx@@gmail.com';;\
    fhem("define Latenz at +00:02:00 {fbmail('$Mail','ALARM','Eingangstuer offen')}");;\
    Log 3, "Latenzzeit wurde als at angelegt...";;\
    }\
 }\
}


Das
fhem("set ALARM on");;\
 fhem("set presence false");;\

dient nur zur Simulation der einzelnen Fensterkontakt und Presencezustände. Das musst du bei dir nach dem Testen natürlich löschen. Bei mir hat das in verschiedenen Kombinationen richtig funktioniert.

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