FHT80b Automatik setzen

Aus FHEMWiki
Version vom 10. Mai 2013, 22:44 Uhr von Generix (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Wer den FHT80b vermutlich schon über das Problem gestolpert, wie man die korrekt wieder hochregelt. Der Ansatz zur Drosselung war, beim Verlassen der Woh…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Wer den FHT80b vermutlich schon über das Problem gestolpert, wie man die korrekt wieder hochregelt.

Der Ansatz zur Drosselung war, beim Verlassen der Wohnung auf Knopfdruck alle FHTs in den manuellen Modus zu setzen, und dabei die "desired-temp" auf die jeweilige Nachttemperatur. So ist gewährleistet, dass die eingestellte Temperatur nicht durch die FHTs selbst wieder verstellt werden kann.

Bei der Rückkehr wird dann der Automatikbetrieb wieder eingeschaltet. Leider hat dies keinen Einflussauf die derzeit eingestellte desired-temp! Als erster Lösungsansatz wurde zusätzlich desired-temp = day-temp gesendet. Dies ist insoweit nett, dass es nach der Rückkehr auf jeden Fall warm wird. Der Nachteil ist aber, dass die tatsächliche Soll-Temperatur erst wieder beim nächsten im FHT gespeicherten Tagesprogramm-Wechsel gesetzt wird. Kommt man also spät nach Hause, wird die ganze Nacht voll durchgeheizt.

In der Folge entstand das folgende Modul (am besten in 99_MyUtils.pm einzufügen):

sub FHTnominal($) {
# Solltemperatur (auto) eines FHT zur aktuellen Uhrzeit ermitteln
 my($fht) = @_;
 my $jetzt = strftime("%R", localtime(time));
 my @wdays = qw(sun mon tue wed thu fri sat);
 my $tag = $wdays[strftime("%w", localtime(time))];
 my $f1 = ReadingsVal($fht,$tag . "-from1","00:00");
 my $f2 = ReadingsVal($fht,$tag . "-from2","00:00");
 my $t1 = ReadingsVal($fht,$tag . "-to1","24:00");
 my $t2 = ReadingsVal($fht,$tag . "-to2","24:00");
 if(($jetzt ge $f1 && $jetzt le $t1) || ($jetzt ge $f2 && $jetzt le $t2)) {
  fhem("set $fht mode auto desired-temp " . ReadingsVal($fht,"day-temp","21.0"))
 } else {
  fhem("set $fht mode auto desired-temp " . ReadingsVal($fht,"night-temp","17.0"))
 }
}

Der Aufruf der Routine erfolgt mittels FHTnominal("MeinFHT"). Wenn bisher noch nie mittels der "report"-Funktionen die aktuellen Tagesprogramme und Tag-/Nacht-Temperatursollwerte ausgelesen wurden, werden die fest hinterlegten Standardwerte genutzt. Diese sind bei Bedarf anzupassen. Die Vorgabewerte im obigem Beispiel entsprechen den Grundeinstellungen der FHTs bei Auslieferung:

  • Tagessoll=21°C
  • Nachtsoll=17°C
  • Tagesprogramm 1 und 2 jeweils von 0 bis 24:00 Uhr

Besser ist aber, wenn die Werte aus dem FHT stammen. ;-)

Was genau macht dieses Modul nun eigentlich? Zunächst wird die aktuelle Uhrzeit und der Wochentag ermittelt. Dann wird passend zum Tag das Tagesprogramm aus den von FHEM gespeicherten Readings gelesen (der FHT80b hat 4 Schaltpunkte pro Tag).

Je nachdem, ob dieser sich gerade im "Tag"- oder "Nacht"-Modus befindet, wird die passende Temperatur (ebenfalls aus den Readings ausgelesen) gesetzt und der Automatik-Modus aktiviert.

Der Vorteil dieser Methode ist, dass man keine separaten, "hart kodierten" Listen für seine FHTs führen muss, um die Einstellungen schnell setzen zu können. Alle nötigen Daten sind im FHT vorhanden und werden genutzt. Der Routine ist es also auch egal, wenn der eine FHT auf Tagbetrieb bei 22° und ein anderer auf Nacht bei 8° gesetzt werden muss - der Aufruf ist immer der selbe.