Fenster offen -> nach 10 min. Mail

Begonnen von Charles, 27 November 2013, 16:44:54

Vorheriges Thema - Nächstes Thema

Charles

Hallo,

ich hab aus dem Wiki den folgenden Code. Ich möchte eine Benachrichtigung, wenn das Fenster länger als 10 min offen steht:

#----------------- Mail Fenster offen 10 min ---------------------
define WarnungPerEMail notify SchlafKontakt.* {\
if(("%" !~ m/opened/) && (time > $main::NewMailtime)) {\
  {FB_Mail('xxx-1+nobody.strip@@api.prowlapp.com','Fenster offen!','@ %')};;\
  $main::NewMailtime = time + 600;;\
}\
}


dazu noch der Code für 99_myUtilis:
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
my $NewMailtime = time;
}


sub FB_mail {
  my $rcpt = $_[0];
  my $subject = $_[1];
  my $text = $_[2];
  system("/bin/echo \"$text\" > /var/tmp/fhem_nachricht.txt");
  system("/sbin/mailer send -i '/var/tmp/fhem_nachricht.txt' -s \"$subject\" -t \"$rcpt\"");
  system("rm /var/tmp/fhem_nachricht.txt");
}


Das funktioniert so nicht. Die Fehlermeldung lautet:
2013.11.27 16:14:46 3: WarnungPerEMail return value: Undefined subroutine &main::FB_Mail called at (eval 419) line 1.

Der Pushservice in der FB ist angeschaltet.

Wo könnte denn der Fehler liegen?

Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Ganneff

Zitat von: Charles am 27 November 2013, 16:44:54

    {FB_Mail('xxx-1+nobody.strip@@api.prowlapp.com','Fenster offen!','@ %')};;\
sub FB_mail {
[/code]

Das funktioniert so nicht. Die Fehlermeldung lautet:
2013.11.27 16:14:46 3: WarnungPerEMail return value: Undefined subroutine &main::FB_Mail called at (eval 419) line 1.

Wo könnte denn der Fehler liegen?


Ich hab mal absichtlich sehr selektiv zitiert.

Charles

Hallo,

hab jetzt nur mal {FB_Mail('xxx-1+nobody.strip@api.prowlapp.com','Pumpe 10 min an!','@ %')} direkt an fhem geschickt.
Dieser Fehler wird gemeldet:
Undefined subroutine &main::FB_Mail called at (eval 1763) line 1.

Ich danke für Hilfe.
Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Puschel74

Hallo,

und an dem von Ganneff zitierten Beitrag fällt dir nichts auf?

Ich sag nur - FHEM ist case-sensitiv.

ZitatUndefined subroutine &main::FB_Mail called at (eval 1763) line 1.
Dieser Fehler ist normal und auch logisch das der kommt egal wie du die Mail aus FHEM schicken willst   ;)

Grüsse
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.

Charles

Hallo Puschel74,

da fiel es mir wie Schuppen aus den Augen!
Hab ich ausgebessert, aber noch nicht getestet.
Brauch ich den die Funktion FB_mail in meinen 99_myUtlilis?
Ist doch eigentlich schon in FritzBoxUtils drin, oder?

Danke
Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Charles

Die Mail-Funktion funktioniert jetzt, allerdings kriege ich gleich beim Fensteröffnen eine Mail und nicht erst 10 min. später. Die Bedingung ist noch nicht oK. if(time() > $main::NewMailtime) {\
  {FB_mail('xxx+1-nobody@@api.prowlapp.com','Fenster offen!','@ %')};;\
  $main::NewMailtime = time() + 600;;\

Ich hab mal hinter time die Klammern gemacht. Brauchte die denn nicht in PERL?

Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Charles

Hallo,

ich hab jetzt selber eine Lösung gefunden So sieht sie aus:#----------------- Mail Fenster offen 10 min ---------------------
define fenster_offen notify SchlafKontakt:opened {\
fhem("define at_offen_10 at +00:10 trigger fenster_offen_10") \
}
define fenster_zu notify SchlafKontakt:closed {\
  fhem("delete($data{fenster_offen_10})") \
}
define fenster_offen_10 notify fenster_offen_10 {\
FB_mail('xxx+1-nobody@@api.prowlapp.com','Fenster offen!','@ %') \
}

Scheint zu funktionieren!

Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Charles

Hallo,

es gibt doch eine Fehlermeldung, anscheinend ist hier ein Fehler:
fhem("delete($data{fenster_offen_10})") \
Log:
2013.11.28 17:14:46 3: delete() : Unknown command delete(), try help.

Wie gehts denn richtig?

Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

gemx

Gibt es einen Grund warum du sowas per notify und vergleichsweise komplizierten nachfolge Funktionen baust?

Genau für so eine Aufgabe gibt es doch das Watchdog modul.
z.B.

define fenster_zu_lang_offen watchdog *.opened 00:10:00 *.closed {FB_mail('xxx+1-nobody@@api.prowlapp.com','Fenster offen!','@ %')}

Steht auch in der commandref.
Sollte doch genau das sein was du suchst oder?

OiledAmoeba

Ich habe es auch per watchdog gelöst. Ein notify brauchst du aber trotzdem noch. Beim Fenster_zu Event muss der den watchdog mit [watchdog Name .]  wieder zurücksetzen. Sonst löst der nur einmal aus und dann nie wieder...

Gesendet von meinem GT-I9100 mit Tapatalk

Gruß
Florian

Jail auf XigmaNAS (freeBSD); CCU2 mit CULv3, nanoCUL868 und JeeLink-Clone; div. FS20-Komponenten; andFHEM; div. hm- und hmip-Komponenten; div. IT+

Charles

Hallo,
auch noch Baustelle,

hab mein funktionierendes Skript gegen den Vorschlag ausgetauscht, den Code hab ich aus dem Fhem-Wiki
define fenster_offen watchdog SchlafKontakt:opened 00:10 SchlafKontakt:closed {\
FB_mail('xxx+1-nobody@@api.prowlapp.com','Schlafzimmerfenster steht noch offen!','@ %') \
}
attr fenster_offen regexp1WontReactivate 1


Wie gesagt, geht nicht, wobei ich die letzte Zeile überhaupt nicht verstehe.
Wäre auch hier erfreut über jemanden, der mir den Fehler zeigt

Danke
Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Puschel74

Hallo,

ZitatWie gesagt, geht nicht,

Geht nicht gibts nicht.
Fehlermeldung aus dem FHEM-LogFile?

Grüße
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.

ThorstenH

Ich habe noch ein

fhem("setstate watchdog_window_open_threestatesensor_wohnzimmer_fenster_mitte defined");

Um den watchdog sofort nach der Mail wieder zu aktivieren.



Charles

#13
Hallo Puschel74,

hab jetzt mal das Log durchforstet nach dem Ansprechen des watchdogs und hab gefunden, dass das Skript doch funktioniert:2013.12.08 2013.12.08 13:14:41 3: MaxScan_Shutter_Notify SchlafKontakt onoff: 1
2013.12.08 13:22:08 3: Watchdog fenster_offen triggered
2013.12.08 13:22:11 3: Mail sent to xxx+1-nobody@@api.prowlapp.com


Vielleicht ist die Mailadresse falsch (den Fehler finde ich!), also ein nicht fhem-Problem. Das hilft mir jetzt sehr viel weiter, weil ich weiß, daß das Skript oK ist!

Ist es denn so, dass die letzte Zeile den Watchdog wieder reaktiviert oder muss ich da noch was dazufügen wie von ThorstenH vorgeschlagen?

Danke Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Puschel74

Hallo,

da ich watchdog nicht verwende kan ich dir diesbezüglich nichts sagen ausser ...
Probieren geht über studieren  ;)

Aber schön das FHEM wohl was gemacht hat.

Grüße
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.