FHT80b Einstellungen: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Wikifiziert + kleinere Korrekturen)
Zeile 2: Zeile 2:


== FHT80b Programme auf Knopfdruck ändern ==
== FHT80b Programme auf Knopfdruck ändern ==
Update 26-05-2013: Anstelle der aufgeführten Routinen empfiehlt es sich mittlerweile, das neue [[Heizungskontrolle Einfach|Heating Control] Modul für [[:Kategorie:FHT Components|FHTs]] zu verwenden. Der hier dargestellte Code kann ggf. dazu dienen, die Grundeinstellungen für die Automatikfunktion der FHTs zu übertragen.
Update 26-05-2013: Anstelle der aufgeführten Routinen empfiehlt es sich mittlerweile, das neue [[Heizungskontrolle Einfach|Heizungskontrolle]] Modul für [[:Kategorie:FHT Components|FHTs]] zu verwenden. Der hier dargestellte Code kann ggf. dazu dienen, die Grundeinstellungen für die Automatikfunktion der FHTs zu übertragen.


Die Funktionen des Heating Control Moduls sind für die hier dargestellte Lösung wesentlich besser zu verwenden.
Die Funktionen des Heating Control Moduls sind für die hier dargestellte Lösung wesentlich besser zu verwenden.

Version vom 21. Oktober 2013, 20:48 Uhr

Um an einem FHT80b Einstellungen vonzunehmen, können die im folgenden aufgeführten Beispielanweisungen verwendet werden.

FHT80b Programme auf Knopfdruck ändern

Update 26-05-2013: Anstelle der aufgeführten Routinen empfiehlt es sich mittlerweile, das neue Heizungskontrolle Modul für FHTs zu verwenden. Der hier dargestellte Code kann ggf. dazu dienen, die Grundeinstellungen für die Automatikfunktion der FHTs zu übertragen.

Die Funktionen des Heating Control Moduls sind für die hier dargestellte Lösung wesentlich besser zu verwenden.

Um verschiedene Programme ("Gästezimmer heizen", "abwesend", "auch tagsüber heizen, da Urlaub" zu realisieren, bedarf es üblicherweise vieler Parametereinstellungen für die einzelnen Tage. Das lässt sich über ein paar Dummy FS20 Devices vereinfachen.

Vorgehen

Für die verschiedenen Modi werden FS20 Dummies angelegt. Diese Dummies können als Schalter über das Standard Fhem Frontend (PGM2) gesetzt werden. Über einen zusätzlichen FS20 Dummy --> _OK (OK, "_" vorgestellt, damit er in der Ansicht als unterster Schalter erscheint) werden dann die Daten übernommen und von FHEM auf die einzelnen FHTs nacheinander übertragen. Dadurch eignet sich diese Möglichkeit zur Einstellung besonders gut für die Kontrolle z. B. über ein Smartphone.

Wichtig für die Anfänger unter den Script Programmierern: innerhalb der Routine dürfen keine Leerzeilen vorhanden, sein, dies würde umgehend zu Fehlermeldungen führen.

Damit die fhem.cfg lesbar bleibt, integriert man diesen Teil idealerweise in eine separate Datei (z. B. 99_myFHTsettings.conf) und integriert diese Datei in der fhem.cfg dann über das Kommando: include ./FHEM/99_myFHTsettings.conf

Beispiel Code

define Gaeste FS20 1233 1233
attr Gaest room FHT_Settings
set Gaeste off
define Athome FS20 1232 1232
attr Athome room FHT_Settings
set Athome off
define Urlaub FS20 1231 1231
attr Urlaub room FHT_Settings
set Urlaub off
define _OK FS20 1311 1311
attr _OK room FHT_Settings
set _OK off
define checkprogram at +*00:02:00 {\
 if("$value{_OK}" eq "on"){\
   my $hm = sprintf("%%02d:%%02d", $hour, $min);;\
   my ($wz_dt, $wz_nt, $wz_ct, $wz_wdf1, $wz_wdt1, $wz_wdf2, $wz_wdt2, $wz_wef1, $wz_wet1, $wz_wef2, $wz_wet2);;\
   my ($ku_dt, $ku_nt, $ku_ct, $ku_wdf1, $ku_wdt1, $ku_wdf2, $ku_wdt2, $ku_wef1, $ku_wet1, $ku_wef2, $ku_wet2);;\
   my ($sz_dt, $sz_nt, $sz_ct, $sz_wdf1, $sz_wdt1, $sz_wdf2, $sz_wdt2, $sz_wef1, $sz_wet1, $sz_wef2, $sz_wet2);;\
   my ($kz_dt, $kz_nt, $kz_ct, $kz_wdf1, $kz_wdt1, $kz_wdf2, $kz_wdt2, $kz_wef1, $kz_wet1, $kz_wef2, $kz_wet2);;\
   my ($ba_dt, $ba_nt, $ba_ct, $ba_wdf1, $ba_wdt1, $ba_wdf2, $ba_wdt2, $ba_wef1, $ba_wet1, $ba_wef2, $ba_wet2);;\
   my ($so_dt, $so_nt, $so_ct, $so_wdf1, $so_wdt1, $so_wdf2, $so_wdt2, $so_wef1, $so_wet1, $so_wef2, $so_wet2);;\
   my ($bo_dt, $bo_nt, $bo_ct, $bo_wdf1, $bo_wdt1, $bo_wdf2, $bo_wdt2, $bo_wef1, $bo_wet1, $bo_wef2, $bo_wet2);;\
   my ($tempstr1, $tempstr2, $tempstr3, $tempstr4, $tempstr5, $tempstr6, $tempstr7, $tempstr8);;\
   if($value{Urlaub}" eq "off"){\
    $wz_dt = 21.0;; $wz_nt = 18.0;; $wz_ct = 18.0;;\
    $wz_wdf1= "06:00";; $wz_wdt1 = "08:30";; $wz_wdf2 = "16:00";; $wz_wdt2 = "23:00";;\
    $wz_wef1 = "06:30;; $wz_wet1 = "23:00";;\
    $ku_dt = 20.0;; $ku_nt = 17.0;; $ku_ct = 17.0;;\
    $ku_wdf1 = "06:00";; $ku_wdt1 = "07:30";; $ku_wdf2 = "17:00";; $ku_wdt2 = "20:30";;\
    $ku_wef1 = "06:30";; $ku_wet1 = "22:00";;\
    $sz_dt = 20.0;; $sz_nt = 18.0;; $sz_ct = 18.0;;\
    $sz_wdf1 = "06:00";; $sz_wdt1 = "08:00";; $sz_wdf2 = "18:30";; $sz_wdt2 = "21:00";;\
    $sz_wef1 = "06:30";; $sz_wet1 = "08:30";; $sz_wef2 = "19:30";; $sz_wet2 = "21:00";;\
    $kz_dt = 15.0;; $kz_nt = 13.0;; $kz_ct = 13.0;;\
    $kz_wdf1 = "07:00";; $kz_wdt1 = "07:05";; $kz_wdf2 = "07:06";; $kz_wdt2 = "07:10";;\
    $kz_wef1 = "07:00";; $kz_wet1 = "07:05";; $kz_wef2 = "07:06";;$kz_wet2 = "07:10";;\
    $ba_dt = 20.5;; $ba_nt = 18.0;; $ba_ct = 18.0;;\
    $ba_wdf1 = "06:00";; $ba_wdt1 = "07:30";; $ba_wdf2 = "18:00";; $ba_wdt2 = "19:30";;\
    $ba_wef1 = "06:30";; $ba_wet1 = "08:30";; $ba_wef2 = "19:30";; $ba_wet2 = "21:00";;\
    $so_dt = 15.0;; $so_nt = 13.0;; $so_ct = 13.0;;\
    $so_wdf1 = "08:00";; $so_wdt1 = "08:05";; $so_wdf2 = "08:06";; $so_wdt2 = "08:10";;\
    $so_wef1 = "08:00";; $so_wet1 = "08:05";; $so_wef2 = "08:06";; $so_wet2 = "08:10";;\
    $bo_dt = 15.0;; $bo_nt = 13.0;; $bo_ct = 13.0;;\
    $bo_wdf1 = "08:00";; $bo_wdt1 = "08:05";; $bo_wdf2 = "08:06";; $bo_wdt2 = "08:10";;\
    $bo_wef1 = "08:00";; $bo_wet1 = "08:05";; $bo_wef2 = "08:06";; $bo_wet2 = "08:10";;\
    if("$value{Gaeste}" eq "on"){\
     $so_dt = 20.5;; $so_nt = 18.0;; $so_ct = 18.0;;\
     $so_wdf1 = "06:30";; $so_wdt1 = "08:30";; $so_wdf2 = "20:30";; $so_wdt2 = "22:00";;\
     $so_wef1 = "06:30";; $so_wet1 = "08:30";; $so_wef2 = "21:00";; $so_wet2 = "22:30";;\
     $bo_dt = 20.5;; $bo_nt = 18.0;; $bo_ct = 18.0;;\
     $bo_wdf1 = "06:30";; $bo_wdt1 = "08:30";; $bo_wdf2 = "20:30";; $bo_wdt2 = "22:00";;\
     $bo_wef1 = "06:30";; $bo_wet1 = "08:30";;$bo_wef2 = "21:00";; $bo_wet2 = "22:30";;\
    }\
    if("$value{Athome}" eq "on"){\
     $wz_wdf1 = "06:30";; $wz_wdt1 = "23:00";; $ku_wdf1 = "06:30";; $ku_wdt1 = "22:00";;\
    }\
   }\
   if("$value{Urlaub}" eq "on"){\
    $wz_dt = 15.0;; $wz_nt = 13.0;; $wz_ct = 13.0;; $ku_dt = 15.0;; $ku_nt = 13.0;; $ku_ct = 13.0;;\
    $sz_dt = 15.0;; $sz_nt = 13.0;; $sz_ct = 13.0;; $kz_dt = 15.0;; $kz_nt = 13.0;; $kz_ct = 13.0;;\
    $ba_dt = 15.0;; $ba_nt = 15.0;; $ba_ct = 13.0;; $so_dt = 15.0;; $so_nt = 13.0;; $so_ct = 13.0;;\
    $bo_dt = 15.0;; $bo_nt = 13.0;; $bo_ct = 13.0;;\
   }\
   $tempstr1 = ReadingsVal("FHT_Kueche", "day-temp", $ku_dt);;\
   $tempstr2 = ReadingsVal("FHT_Kueche", "night-temp", $ku_nt);;\
   if($tempstr1 ne $ku_dt || $tempstr2 ne $ku_nt){\
    fhem ("set FHT_Kueche day-temp $ku_dt night-temp $ku_nt");;\
    fb_mail('deineemail@googlemail.com',"FHEM-Status: Aenderung FHT_Kueche DayTemp $tempstr1 -> $ku_dt, NightTemp $tempstr2 -> $ku_nt",'');;\ 
   }\   
   else{\
    fb_mail('deineemail@googlemail.com',"FHEM-Status: Keine Aenderung FHT_Kueche DayTemp $ku_dt, NightTemp $ku_nt",'');;\ 
   }\ 
  …… dieser Code fuer Day-Tem, Night-Temp wird sinngemaess fuer alle FHTs kopiert (FHT_Kueche, FHT_WohnZ, FHT_Bad, FHT_Kinderzimmer, FHT_Schlafzimmer, FHT_GaesteSchlafZ, FHT_GaesteBad)
  
   $tempstr1 = ReadingsVal("FHT_Kueche", "mon-from1", $ku_wdf1);;\
   $tempstr2 = ReadingsVal("FHT_Kueche", "mon-to1", $ku_wdt1);;\
   $tempstr3 = ReadingsVal("FHT_Kueche", "mon-from2", $ku_wdf2);;\
   $tempstr4 = ReadingsVal("FHT_Kueche", "mon-to2", $ku_wdt2);;\
   $tempstr5 = ReadingsVal("FHT_Kueche", "sun-from1", $ku_wef1);;\
   $tempstr6 = ReadingsVal("FHT_Kueche", "sun-to1", $ku_wet1);;\
   $tempstr7 = ReadingsVal("FHT_Kueche", "sun-from2", $ku_wef2);;\
   $tempstr8 = ReadingsVal("FHT_Kueche", "sun-to2", $ku_wet2);;\
   if($tempstr1 ne $ku_wdf1 || $tempstr2 ne $ku_wdt1 || $tempstr3 ne $ku_wdf2 || $tempstr4 ne $ku_wdt2){\
     fhem ("set FHT_Kueche mon-from1 $ku_wdf1 mon-to1 $ku_wdt1 mon-from2 $ku_wdf2 mon-to2 $ku_wdt2");;\
     fhem ("set FHT_Kueche tue-from1 $ku_wdf1 tue-to1 $ku_wdt1 tue-from2 $ku_wdf2 tue-to2 $ku_wdt2");;\
     fhem ("set FHT_Kueche wed-from1 $ku_wdf1 wed-to1 $ku_wdt1 wed-from2 $ku_wdf2 wed-to2 $ku_wdt2");;\
     fhem ("set FHT_Kueche thu-from1 $ku_wdf1 thu-to1 $ku_wdt1 thu-from2 $ku_wdf2 thu-to2 $ku_wdt2");;\
     fhem ("set FHT_Kueche fri-from1 $ku_wdf1 fri-to1 $ku_wdt1 fri-from2 $ku_wdf2 fri-to2 $ku_wdt2");;\
     fb_mail('deineemail@googlemail.com',"FHEM-Status: Aenderung FHT_Kueche Wochentag From1 $tempstr1 -> $ku_wdf1, To1 $tempstr2 -> $ku_wdt1, From2 $tempstr3 -> $ku_wdf2, To2 $tempstr4 -> $ku_wdt2",'');;\ 
   }\      
   else{\
    fb_mail('deineemail@googlemail.com',"FHEM-Status: Keine Aenderung FHT_Kueche Wochentag From1 $ku_wdf1, To1 $ku_wdt1, From2 $ku_wdf2, To2 $ku_wdt2",'');;\
   }\   
   if($tempstr5 ne $ku_wef1 || $tempstr6 ne $ku_wet1 || $tempstr7 ne $ku_wef2 || $tempstr8 ne $ku_wet2){\
     fhem ("set FHT_Kueche sat-from1 $ku_wef1 sat-to1 $ku_wet1 sat-from2 $ku_wef2 sat-to2 $ku_wet2");;\
     fhem ("set FHT_Kueche sun-from1 $ku_wef1 sun-to1 $ku_wet1 sun-from2 $ku_wef2 sut-to2 $ku_wet2");;\
     fb_mail('deineemail@googlemail.com',"FHEM-Status: Aenderung FHT_Kueche Wochenend From1 $tempstr5 -> $ku_wef1, To1 $tempstr6 -> $ku_wet1, From2 $tempstr7 -> $ku_wef2, To2 $tempstr8 -> $ku_wet2",'');;\ 
   }\   
   else{\
    fb_mail('deineemail@googlemail.com',"FHEM-Status: Keine Aenderung FHT_Kueche Wochenend From1 $ku_wef1, To1 $ku_wet1, From2 $ku_wef2, To2 $ku_wet2",'');;\
   }\   
 
  ….. dieser Code für from1 to1, from2, to2 wird sinngemaess fuer alle FHTs kopiert (FHT_Kueche, FHT_WohnZ, FHT_Bad, FHT_Kinderzimmer, FHT_Schlafzimmer, FHT_GaesteSchlafZ, FHT_GaesteBad)
  
   fhem("set _OK off");;\
 }\
}