Temperaturabhängige Meldung per Email

Begonnen von JanWi, 05 Oktober 2013, 10:55:58

Vorheriges Thema - Nächstes Thema

JanWi

Hallo,

ich habe bei mir in 3 Zimmer eine Heizkörperregelung mittels FHT80B. Das Funktioniert auch wunderbar.Ich würde jedoch gerne wenn mein Aussenthermometer im Minusbereich ist und ein Fenster länger als 30 Minuten offen steht eine Meldung über Email und vielleicht auch als Warnung auf den Floorplan erhalten. So in der Art " Achtung Fenster X ist noch offen, bitte schliessen!!! " und das ganze müsste im Floorplan in großer Textausgabe rot blinken bis das Fenster geschlossen ist. Emailversand funktioniert bereits, ich lasse mir um 6:00 Uhr immer schon die Aussentemperatur zusenden.
Ich habe schon die Suchmaschine gefüttert aber so richtig noch nichts gefunden. Ist so etwas überhaupt umsetzbar ?

Grüße in die Runde
Jan

Ps.:Vielleicht wäre ja auch noch im Floorplan die Möglichkeit einen Knopf zu erstellen womit erstmal der Counter wieder auf 0 gesetzt wird , es kann ja mal vorkommen das ein Fenster doch mal länger offen bleiben muß.

rudolfkoenig

>  Ist so etwas überhaupt umsetzbar ?

Sicher doch, es haengt nur von der Menge der investierten Zeit ab :)

Ich wuerde es mit einem watchdog probieren, und in dem ausgefuehrten Code auf Minustemperatur pruefen.

fiedel

Hi Jan,

nimm das hier mal als Ausgangsbasis. Die Zeitkomponente kannst du per Watchdog reinbreingen.

Meine Lösung sieht so aus:

in die Config:


#############################################################################
########################### Fensterüberwachung ##############################
#############################################################################
# Beim ersten Wechsel von closed nach open wird ein Notify angelegt,
# das nach 3 Minuten nochmal prüft, ob die/das Fenster noch offen sind/ist.
# Wenn es in der Zwischenzeit geschlossen wird, wird das Notify gelöscht
# Wenn nicht, wird 10 Mal eine Erinnerung abgespielt.
# Wird das Fenster geschlossen, wird auch das Erinnerungs- Notify gelöscht
# !!!Autocreate abschalten, sonst wird bei zufälligem Autosave ein temp.
# !!!at oder notify fest gespeichert - oder sep. Perlscript verwenden!
# http://www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster


define Fenster_Status dummy
attr Fenster_Status devStateIcon Open:Fenster_Status.Open Closed:Fenster_Status.Closed
attr Fenster_Status fp_0_Hauptbildschirm 440,38,2,
attr Fenster_Status group Status
attr Fenster_Status room 0_Überblick


# FHTTK: Mail bei offenem Fenster; Fenster_Status setzen:

# um Mails zu erhalten, folgende Zeile über "Log 3..." einfügen:
# fb_mail('user@@gmx.de',$subject,$fhttk_status);;\

define Func_Fenster_Stat_N notify .*:Window.*(Open|Closed) { \
  my $window_state=ReadingsVal("@", "Window", "nA");;\
  my $deftype=$defs{@}{TYPE};;\
  return if ( $deftype ne "CUL_FHTTK" );;\
  if ( $defs{@}{PREVSTATE} ne $window_state ) { \
    my $fhttk_status=FHTTK_status;;\
    my $subject="FHEM: Fenster @ ".$window_state;; \
    Log 3, "@: Window ".$window_state;;\
  }\
}
attr Func_Fenster_Stat_N group Programm
attr Func_Fenster_Stat_N room 5_System



# Erinnerung Lüften beenden:
# wenn Fenster offen, starte Erinnerungsfunktion:
define Func_Fenst_Lueft_beend_N notify Fenster_Status:Open.* { \
\
my $T_aussen = (ReadingsVal("Sens_TF_Aussen", "temperature", "6.0"));;\
my $T_innen = (ReadingsVal("Sens_TF_Wohnz_UG", "temperature", "16.0"));;\
\
  if (($T_aussen <= 15.0) and OldValue("Fenster_Status") eq "Closed") {\
  fhem("define Lueft_beend_A at +00:03:00 trigger Func_Fenster_Pruef_zu_N");;\
  } \
}
attr Func_Fenst_Lueft_beend_N group Programm
attr Func_Fenst_Lueft_beend_N room 5_System

# wenn Fenster wieder zu, lösche Erinnerungsfunktion:
define Func_Fenster_zu_N notify Fenster_Status:Closed.* { \
  if (OldValue("Fenster_Status") =~ /Open/) { \
    if (($defs{Lueft_beend_A})) {\
      fhem("delete Lueft_beend_A");;\
    }\
  if (OldValue("Fenster_Status") =~ /Open/) { \
    if (($defs{Remind_Fenster_A})) {\
      fhem("delete Remind_Fenster_A");;\
    }\
   }\
  }\
}
attr Func_Fenster_zu_N group Programm
attr Func_Fenster_zu_N room 5_System

# wenn Fenster noch offen, führe Erinnerung aus
define Func_Fenster_Pruef_zu_N notify Func_Fenster_Pruef_zu_N { \
  if (Value("Fenster_Status") =~ /Open/) { \
    fhem("define Remind_Fenster_A at +*{9}00:02:00 set Dum_SM_D Qlueften_beenden");;\
    fhem("set Dum_SM_D Qlueften_beenden");;\
  }\
}
attr Func_Fenster_Pruef_zu_N group Programm
attr Func_Fenster_Pruef_zu_N room 5_System




in 99_MyUtils:



# FHTTK: Benachrichtigung bei offenem Fenster:

sub FHTTK_status {
  my @fhttks = devspec2array("TYPE=CUL_FHTTK");
  my @wopen = ();
  foreach(@fhttks) {
    my $fhttk_window = ReadingsVal($_, "Window", "nA");
    push (@wopen,$_) if ($fhttk_window eq "Open" );
  }
  if ( "Fenster_Status" ne "Open" ) {
    fhem("set Fenster_Status Open");
  }
  my $num_wopen = @wopen;
  my $resultstring='';
  if ( $num_wopen gt 0 ) {
    $resultstring="folgende Fenster sind noch offen:\n\n";
    foreach(@wopen) {
      $resultstring.="- ".$_."\n";
      Log 4, "FHTTK_status: ". $_. "noch offen";
    }
  } else {
    $resultstring="alle Fenster sind derzeit geschlossen.";
    fhem("set Fenster_Status Closed");
  }
  return $resultstring;
}






Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

gulsher045@gmail.com

Is such a thing feasible? Sure thing, it depends only on the amount of invested time off :) I would try it with a watchdog, and be led into the code check them for minus temperature.????

fiedel

ZitatI would try it with a watchdog, and be led into the code check them for minus temperature.????

That could be an easy way. ;o) My intention was to support a energy saving airing in the whole heating period. And to prevent that we forget to close open windows before we leave the house. But you are right. With the Watchdog it could be a little less code... ;o)
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423