fbmail zeitversetzt ausführen

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

Vorheriges Thema - Nächstes Thema

MisterEltako

statt:

fhem("define WarteaufHandy notify Handy:present.* trigger MAX on");;\

bitte:

fhem("define WarteaufHandy notify Handy:present.* {\
     if (defined($defs{WarteaufHandy})){fhem('delete WarteaufHandy;;;;delete Latenz')};;\
}\

und:

Log 3, 'Alarmmeldung wird geprüft...';;\
 if (defined($defs{WarteaufHandy})){fhem('delete WarteaufHandy')};;\

zu:
Log 3, 'Alarmmeldung wird geprüft...';;\

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

Terabyte

Das ganze sieht nun so aus


define Alarmmeldung1 notify MAX {\
 Log 3, 'Alarmmeldung wird geprüft...';;\
 if (defined($defs{Latenz})){fhem('delete Latenz')};;\
 if (Value("ALARM1") ne "on") {\
   Log 3, "kein Alarm eingeschaltet!";;\
   fhem("set Email off");;\
   if (defined($defs{Latenz})){fhem('delete Latenz')};;\
 }else {\
   if ((Value("Handy") eq "absent") && (Value("Email"))){\
      my $Mail = 'xxxx@@gmail.com';;\
      if (defined($defs{Latenz})){fhem('delete Latenz')};;\
      fhem("define Latenz at +00:05:00 {fb_mail('$Mail','ALARM','Eingangstuer offen')}");;\
      fhem("define WarteaufHandy notify Handy:present.* {\
if (defined($defs{WarteaufHandy})){fhem('delete WarteaufHandy;;;;delete Latenz')};;\
}\
      fhem("set Email on");;\
      Log 3, "Latenzzeit wurde als at angelegt...";;\
   }else {Log 3, "Kein Alarm - Person anwesend!";;\
      if (defined($defs{Latenz})){fhem('delete Latenz')};;\
      fhem("set Email off");;\
   }\
 }\
}


Gibt aber leider folgende Meldung

2013.05.20 18:05:47 3: Alarmmeldung1 return value: Can't find string terminator '"' anywhere before EOF at (eval 74081) line 1.

MisterEltako

fhem("define WarteaufHandy notify Handy:present.* {\
 if (defined($defs{WarteaufHandy})){fhem('delete WarteaufHandy;;;;delete Latenz')}}");;\


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

Terabyte

Hallo

Danke schonmal.

Kann es aber erst am WE Testen.

abc2006

Ich mal wieder:


define Alarmmeldung1 notify MAX_060f08:opened.* {if ( Value("ALARM") eq "on"){set ALARM defined}
define ALARM watchdog {Value("presence") eq "true"} 00:02 {Value("presence") eq "false"} {fb_mail('xxxx@gmail.com','ALARM','Eingangstuer offen')}


willst du das mal ausprobieren?

ein bisschen weniger Code, aber ich bin noch nicht so erfahren, um beurteilen zu können, ob das funktioniert... ;-)

lg
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

MisterEltako

Bist du schon zum Testen gekommen?

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

Terabyte

Hallo

Werde ich heute im Laufe des Tages machen und dann berichten.

Terabyte

Zitat von: MisterEltako schrieb am Mo, 20 Mai 2013 18:20fhem("define WarteaufHandy notify Handy:present.* {\
 if (defined($defs{WarteaufHandy})){fhem('delete WarteaufHandy;;;;delete Latenz')}}");;\


MfG, MisterEltako.


Hallo

Auch hiermit gibt es leider eine Fehlermeldung im Log


2013.05.25 13:16:40 3: Alarmmeldung1 return value: syntax error at (eval 230049) line 1, near "}else"
syntax error at (eval 230049) line 1, near "}  }"
Unmatched right curly bracket at (eval 230049) line 1, at end of line

Terabyte

Zitat von: abc2006 schrieb am Do, 23 Mai 2013 13:43Ich mal wieder:


define Alarmmeldung1 notify MAX_060f08:opened.* {if ( Value("ALARM") eq "on"){set ALARM defined}
define ALARM watchdog {Value("presence") eq "true"} 00:02 {Value("presence") eq "false"} {fb_mail('xxxx@gmail.com','ALARM','Eingangstuer offen')}


willst du das mal ausprobieren?

ein bisschen weniger Code, aber ich bin noch nicht so erfahren, um beurteilen zu können, ob das funktioniert... ;-)

lg
stephan

Damit bekomm ich immer

Wrong timespec, must be HH:MM[:SS]

Auch wenn ich 00:02:00 mache, gibt es die selbe Fehlermeldung

MisterEltako

Ok, dasmit watchdog habe ich bisher selbst nicht eingebaut, macht hier aber Sinn. Das müsste dann aber entsprechend deinen Vorgaben so lauten:

#Watchdog der darauf wartet, dass das Handy 5 Minuten durchgängig nicht im WLAN ist. Dann eine Mail sendet wenn Tuer noch offen und
#Alarm-Dummy eingeschaltet und den Watchdog für die Rückkehr scharf schaltet

define wdog_weg watchdog Handy:absent 00:05 Handy:present {\
if ((Value("Max") eq "open") && (Value("ALARM") eq "on")) {\
use FritzBoxUtils;;fb_mail('mail@domain.de' ('mail@domain.de'),'ALARM','Eingangstuer ist offen');;\
fhem("setstate wdog_da defined")}}

#Watchdog der darauf wartet, dass das Handy 1 Minute durchgängig am Netz ist. Dann eine Mail sendet und den Watchdog für das
#Verlassen scharf schaltet

define wdog_da watchdog Handy:present 00:01 Handy:absent {\
use FritzBoxUtils;fb_mail('mail@domain.de' ('mail@domain.de'),'ALARM','Handy ist wieder in Reichweite');;\
fhem("setstate wdog_weg defined")}

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

AnonymousHolger

Klingt alles sehr gut .... bitte wenn es läuft in die Wiki stellen.

Sonst frage ich euch in X Monaten diesbezüglich das Gleiche noch mal ;-P

Danke

Gruss

Holger

Terabyte

Hallo

Es scheint so als würde dieses Script funktionieren wie gewollt. Werde es aber noch im Praxiseinsatz testen :)

define wdog_weg watchdog MAX:on 00:00:30 Handy:on {\
if ((Value("Handy") eq "off") && (Value("ALARM1") eq "on")) {\
fb_mail('xxxx@gmail.com' ('xxxx@gmail.com'),'ALARM','Eingangstuer ist offen');;\
fhem("setstate wdog_weg defined")}}


Danke MisterEltako für deine Mühe und Hilfe

Terabyte

So. Eine Kleinigkeit funktioniert leider noch nicht.

Und zwar wenn der Watchdog "unterbrochen" wird, also sich ein Handy anmeldet und dementsprechend kein Mail gesendet wird, dann bleibt der Watchdog auf triggered und funktioniert demnach nicht mehr.

Es fehlt also noch irgendwie das Kommando, dass er sich bei keinem Mail Versand auch wieder auf defined stellt

MisterEltako

Du hast ja auch den Teil des Codes zur Reaktivierung weggelassen

define wdog_weg watchdog MAX:on 00:00:30 Max:off {\
if ((Value("Handy") eq "off") && (Value("ALARM1") eq "on")) {\
fb_mail('xxxx@gmail.com' ('xxxx@gmail.com'),'ALARM','Eingangstuer ist offen');;\
fhem("setstate wdog_da defined")}}

#wartet bis Handy mindestens 1min in Reichweite ist....
define wdog_da watchdog Handy:on 00:01 Handy:off {\
fb_mail('xxxx@gmail.com' ('xxxx@gmail.com'),'ALARM','Handy-Besitzer ist wieder in Reichweite...');;\
fhem("setstate wdog_weg defined")}

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

Terabyte

Achsoo..

Lässt sich das zum Reaktivieren nicht irgendwie hier integrieren?

define ALARM_OFF at +*00:01:00 {if (( Value("Handy1") eq "present" || Value("Handy2") eq "present") && Value("ALARM") eq "on") { fhem("set ALARM off")}}

Ich hab auch schon folgendes versucht. Funktioniert aber leider nicht.

define ALARM_OFF at +*00:01:00 {if (( Value("Handy1") eq "present" || Value("Handy2") eq "present") && Value("ALARM") eq "on") { fhem("set ALARM off ;; setstate wdog_da defined")}}