Autor Thema: Fenster offen bei Abwesenheit = Mail  (Gelesen 10385 mal)

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Fenster offen bei Abwesenheit = Mail
« am: 15 Januar 2013, 12:09:28 »
Hallo,
ich möchte gerne von Fhem mir eine Mail schicken lassen wenn der Status von Chris / Tanja OFF ist. und eins der Fenster geöffnet ist.
Mail Versand für Windows ist wie im Wiki beschrieben eingerichtet und funktioniert auch.

Habe 4 Fenster Sensoren ( Max ) im Raum "Fenster":

Bad_Fenster closed
Kueche_Fenster closed
KZ_Fenster closed
SZ_Fenster closed


In der Mail solle jetzt etwas stehen das man weis was gemeint ist :
z.b: Abwesend: ***_Fenster Open


define Fenster_Anwesend notify Anwesenheit.*:.* {\
if ((Value("Anwesenheit_Chris") eq "on") || (Value("Anwesenheit_Tanja") eq "on")) {\
  if ([b]( HIER INHALT OB EINS DER FENSTE RIM RAUM FENSTER OFFEN IST )[/b]) {\
    (HIER MUSS NICHTS PASSIEREN)    
  }\
}\
if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off")) {\
    fhem ( system("wmail @:%") );;\ <<< Mail Funktion muss so angepasst werden das man auch weiss was mit der Mail gemeint ist
  }\
}


Kann mir jemand helfen den Code zu vervollständigen ?
Raspberry PI3 mit allem möglichen.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #1 am: 15 Januar 2013, 12:12:57 »
Hallo,

hier

if (Value("Batterie_Leer") eq "OK") {
fb_mail('xxxxx.yyyyyyy@@provider.de','FHEM Batteriewarnung','@ %');


kommt als Mail

OG_Badezimmer_Heizung battery: low

@ ist der Sensor welcher ausgelöst hat und
% warum er ausgelöst hat.

evtl. hilft dir das schonmal weiter.

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.

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #2 am: 15 Januar 2013, 12:20:36 »
hi, genau das mit dem @:% hab ich auch schon raus gefunden. Muss ich mal gucken ob ich da einfach noch was zuschreiben kann wie ABWESEND.

Weil wenn Frau ne Mail bekommt mit Bad_Fenster open ... sollte da schon noch stehen Abwesend: :P

Da für Später auch ne Prüfung gibt ob Fenster länger als 30 Minuten auf ist :P Aber das folgt nach der Abwesend Erkennung hehe
Raspberry PI3 mit allem möglichen.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #3 am: 15 Januar 2013, 12:33:20 »
Wieso?
Lass doch die Mail nur verschicken wenn ihr abwesend seid.
Zuhause kansnt du ja nach 30 Minuten ein Licht einschalten wenn das Fenster immer noch offen ist.

Ich hab bei uns jetzt sowas wie ne Akku-Erhaltungsladung "gecoded".

Hintergrund:
2 Ladestation (vorerst) mit FS20ST ausgerüstet.
Ladestation_Bar und
Ladestation_GZ

Jeden Samstag ab 21:15:00 werden die beiden Ladestationen auf
set Ladestation_Bar Laden und
set Ladestation_GZ Laden gesetzt.

Das notify triggert natürlich auf Laden und sieht so aus:

Ladestation.*:Laden.* {
  Log (3,"Aufruf durch @");
  fhem("define @_Aus at +06:00:00 set @ off") if (Value("@_Aus") eq "");
}


Weiters kann man die Ladestationen auch über FHEM laden lassen - logischerweise.
Dafür habe ich ein
attr webcmd Laden
verteilt.

Egal welche Ladestation ich nun ins Laden schicke wird automatisch das zugehörige *_Aus definiert und die auslösende
Ladestation nach 6 Stunden wieder abgeschaltet.
Der Teil mit dem Log kommt wieder raus ;-)

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.

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #4 am: 15 Januar 2013, 12:38:03 »
hmm klar will ich auch nur eine Mail wenn ich Abwesend bin.
Aber weiss nicht wie mir dein Code bei mir weiterhilft ?
Ich muss ja erstmal eine Möglichkeit finden meine Fenster zusammen zu legen.
Könnte ein Dummy machen aber da weiss ich dann nicht WELCHES Fenster gemeint ist.

Oder Ich müsste für jedes Fenster einzeln ein Code bauen was wohl der einfachere weg ist.
Somit fehlt mir also nur der Code wenn beide Anwesendheit OFF sind UND Zusätzlich das Fenster open ist dann Mail.
Raspberry PI3 mit allem möglichen.

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #5 am: 15 Januar 2013, 12:40:12 »
Oder geht es so einfach:


if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off") &&  (Value("Bad_Fenster") eq "open" ){\
Raspberry PI3 mit allem möglichen.

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #6 am: 15 Januar 2013, 12:53:28 »
Hmm hab mal den Status Closed genommen für den Test erstmal aber bekomme fehler:


define Fenster_ABWESEND notify Anwesenheit.*:.* { \
if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off") && (Value("Bad_Fenster") eq "closed" )){\
} \
Log (3,"FENSTER AUF EMAIL GESCHCIKT");;\
else { \
Log (3,"FENSTER ZU ALLES OK KEINE MAIL");;\
}\
}


2013.01.15 12:52:42 3: Fenster_ABWESEND return value: syntax error at (eval 28) line 1, near "; else"
syntax error at (eval 28) line 1, near "} }"
Raspberry PI3 mit allem möglichen.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #7 am: 15 Januar 2013, 12:59:32 »
Kannst du machen, aber dann musst du für jedes Fenster die Abfrage programmieren.
Da deine Fenster aber
Bad_Fenster
Kueche_Fenster
KZ_Fenster
SZ_Fenster
heissen brauchst du ja nur nach
*_Fenster suchen bzw. triggern lassen.

Ich würd das so lösen:

Wenn Fenster auf nach x Minuten die Prüfung ob alle weg und dann die Mail raus.

define Fester_pruef notify *_Fenster:.* {
  if (% eq "open") {
  fhem ("define Alarm_@ at +00:30:00 trigger Anwesenheit @");
  }
  if (% eq "closed" {
  fhem ("delete Alarm_@)" if (Value("Alarm_@") ne "");
  }
}

ungestestet ;-)

Sollte aber den Vorteil haben das mit @ auf genau das Fenster geprüft werden kann.
Wenn 2 Fenster offen sind sollten 2 Alarm_@ angelegt werden die beim schliessen genauso auch wieder
gelöscht werden (sollten).
Mit etwas Glück kannst du das @ dann in Anwesenheit weiter auswerten und dann die Mail so stricken das im Text auch das
@ steht und du somit die Mail bekommen solltest welches Fenster noch offen ist.

Ist sicher noch ausbaufähig ;-)

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.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #8 am: 15 Januar 2013, 13:00:16 »
Du musst vor else noch eine } setzen.
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.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #9 am: 15 Januar 2013, 13:01:32 »

define Fenster_ABWESEND notify Anwesenheit.*:.* { \
if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off") && (Value("Bad_Fenster") eq "closed" )){\
Log (3,"FENSTER AUF EMAIL GESCHCIKT");;\
}\
else { \
Log (3,"FENSTER ZU ALLES OK KEINE MAIL");;\
}\
}


So müsste es gehen.
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.

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #10 am: 15 Januar 2013, 13:08:13 »

system("wmail ABWESEND:@:%")


Bekomme nun ne Mail aber da steht nicht das Fenster drin:

ABWESEND:Anwesenheit_Tanja:off
Raspberry PI3 mit allem möglichen.

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #11 am: 15 Januar 2013, 13:09:58 »
Derzeitige Lösung Ich Schreib nen manuellen Text einfach rein :P Mache ja eh jedes Fenster einzeln *G*

Also Problem Gelöst.

Nun wäre das selbe 1:1 nur ohne Abwesenheit sondern mit nem Timer
Also Fenster XX Minuten Auf = mail dafür mach ich zur Übersicht mal etwas neues auf ;)
Raspberry PI3 mit allem möglichen.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #12 am: 15 Januar 2013, 13:12:16 »
Logisch,

dann hast du Anwesenheit ausgelöst indem die Ping-Prüfung der Meinung war das Handy Tanja off ist ;-)

In diesem Fall wird die Prüfung ja nur angesprungen wenn einer von euch beiden off ist und das hast du dann in
@ und % stehen.
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.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9838
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #13 am: 15 Januar 2013, 13:13:26 »
Und wenn du das notify von mir mal versucht ;-)
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.

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Aw: Fenster offen bei Abwesenheit = Mail
« Antwort #14 am: 15 Januar 2013, 13:17:10 »
Stimmt das werd ich zur Optimierung danach mal versuchen ;D

Hier der fertige Code falls es jemand auch gebrauchen kann:

define Fenster_ABWESEND notify Anwesenheit.*:.* { \
if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off") && (Value("Bad_Fenster") eq "opened" )){\
Log (3,"Abwesend Badezimmer AUF EMAIL GESCHCIKT");;\
fhem (system("wmail ABWESEND_aber_BADEZIMMER_FENSTER_noch_OFFEN"));;\
}\
else { \
}\
}



Wegen E-mail Betreff und Leerzeichen muss ich noch schauen.
Raspberry PI3 mit allem möglichen.