FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: ChrisW am 16 Januar 2013, 20:37:48

Titel: Fenster Vergessen Mail ( Timer )
Beitrag von: ChrisW am 16 Januar 2013, 20:37:48
Hallo,

hier mal ein Code für alle die es brauchen können.

Fenster Geräte ( Bei mir Max! Fensterkontakte )müssen den Namen XXXXX_Fenster haben.
Jedes der Fenster braucht ein Dummy für nen Status

also als 1. :

define XXXXX_Fenster_vergessen dummy


Sobald ein Fenster Gerät seinen Status in opened ändert wird ein Alarm erstellt der nach wie hier im Beispiel in 30 Minuten den Status "offen" dem vorher angelegten Dummy gibt.
Wenn das Fenster geschlossen wird wird dieser Alarm gelöscht !

define Fenster_Vergessen_Check notify .*._Fenster:.* { \
  if ("%" eq "opened") { \
      fhem ("define @_Alarm at +00:30:00 set @_vergessen offen") if (Value("@_Alarm") eq "");;\
  }\
  else {\
    fhem ("delete @_Alarm") if (Value("@_Alarm") ne "");;\
    fhem ("set @_vergessen geschlosssen") if (Value("@_vergessen") ne "geschlosssen");;\
  }\
}




Und nun noch die Prüfung zum E-Mail Verschicken erstellt. Wenn der der Status eines der Fenster_vergessen Dummys geändert wird gibs ne Mail.

define Fenster_Vergessen_Mail notify .*._Fenster_vergessen:.* {\
  if ("%" eq "offen") {\
fhem (system("wmail !!!!!ACHTUNG!!!!!_@!!!_zu_lange_%"));;\
  }\
}


Da ich selbst noch absoluter Anfänger bin, können Fehler drin sein aber so funktioniert es bei mir ;) Wenn jemand Verbesserungen hat her damit.
Titel: Aw: Fenster Vergessen Mail ( Timer )
Beitrag von: Puschel74 am 16 Januar 2013, 20:53:09
Hallo,

du kannst den regexp einkürzen auf .*._vergessen ;-)
Titel: Aw: Fenster Vergessen Mail ( Timer )
Beitrag von: Rohan am 17 Januar 2013, 08:13:53
Hi,

Zitat von: Puschel74 schrieb am Mi, 16 Januar 2013 20:53

du kannst den regexp einkürzen auf .*._vergessen ;-)


... aber nur, wenn man später nicht auch noch
- .*._Tuer_vergessen:.*
- .*._Garagentor_vergessen:.*
- ...

einbaut.

Abk. sind zwar machmal ganz reizvoll, aber ausgeschriebene Bezeichner erhöhen die Les- / Wartbarkeit, zumal für Gelegenheitsskripter.

Gruß
Thomas
Titel: Aw: Fenster Vergessen Mail ( Timer )
Beitrag von: alexmetz am 03 Februar 2013, 00:03:51
Ich hätte eine Idee zur Ergänzung:

Man könnte die Warnung nur dann mailen, wenn die Aussentempeatur niedriger ist als die gewünschte Raumtemperatur.
Oder die Warnzeit vom Temperaturunterschied abhängig machen...

VG
Alex
Titel: Aw: Fenster Vergessen Mail ( Timer )
Beitrag von: Puschel74 am 03 Februar 2013, 09:01:06
Hallo,

dann rein damit ins Programm und testen ;-)

Grüße
Titel: Aw: Fenster Vergessen Mail ( Timer )
Beitrag von: Matthis am 03 Februar 2013, 14:34:37
Funktioniert bei mir nun super.

Nur kann ich bei meinem FHT80TF-2 nicht % verwenden, sondern muss "Window" auslesen.

 my $window_state=ReadingsVal("@", "Window", "nA");;\
  if ($window_state eq "Open") { \
  ...


Gruß, Matthis