FHT80b
Der FHT80b ist ein programmierbarer Raumthermostat, der bis zu 8 Stellantriebe FHT8v steuern kann.
Features
Lokal programmierbare Tages- und Nachttemperatur, die pro Tag mit 4 Schaltpunkten programmiert werden kann. Zusätzliche Anbindung eines Tür/Fensterkontaktes FHT80TF zur Absenkung der Temperatur auf separat einstellbaren Wert bei offenem Fenster (windowopen-temp).
Readings
Parameter | Wertbeispiel | Erklärung |
---|---|---|
actuator | 0% | Position des Stellantriebes in % |
battery | ok | Ladezustand der Batterien |
mode | auto manual |
Funktionsmodus (auto, manuell oder urlaub/party) |
state | measured-temp: 20.9 | Ist-Temperatur in ° (C oder F in FHT80B wählbar) |
desired-temp | 21.0 | Solltemperatur in ° (C oder F in FHT80B wählbar) |
lowtemp | ok | Frostschutz? |
manu-temp | Solltemperatur bei Manuell-Modus | |
night-temp | Solltemperatur bei Absenkung | |
warnings | none | Vermutung: Batterie leer ... kann das jemand verifizieren? Es erscheint auch "Windows open". |
window | closed open |
Statusmeldungen vom FHT80-TF |
windowsensor | ok | ?? Kann ich nicht interpretieren, zeigt bei mir ok, obwohl ich keinen TF habe |
windowopentemp | ?? | Solltemperatur bei offenem Fenster |
year month |
Zeitangaben für interne Uhr | |
mon-from1 mon-from2 |
06:00 | Angabe von Schaltzeiten im Format HH:MM |
Hinweise zum Betrieb mit FHEM
Vor dem Einsatz muss der FHT80b mit der Zentrale (z.B. CUL) gepairt werden. Geschieht dies nicht, können nach einer Definition in FHEM zwar Daten des FHT80b empfangen werden (z. B. Raumtemperatur), es können jedoch keine Befehle gesendet werden. Zum pairen den FHT80b in Sonderfunktionen "cENT" auf "n/a" stellen, danach sofort einen Befehl (egal welchen) an die FHT80b senden. Wenn ca. zwei Minuten später Sonderfunktion cENT auf "ON" steht, war das Pairing erfolgreich.
Weitere Hinweise: FHT mit RFR CUL pairen
Ausserdem muss das FHT per Hand oder Autocreate angelegt werden. Die Adresse des HFT wird beim Anlegen mit Autocreate in Fhem hexadezimal angegeben, im Gerät jedoch dezimal. Dabei muss die Adresse paarweise umgerechnet werden. Beispiel: Fhem habe ein FHT mit der Adresse 162c angelegt. Dies entspricht dann
hex 16 = 22 dez hex 2c = 44 dez
dem FHT mit der am FHT eingestellten Adresse 2244. Genauso gut kann man aber auch eine am FHT eingestellt Adresse nach der selben paarweisen Methode in hex umrechnen und in Fhem das FHT dann per Hand anlegen.
Das FHT80b akzeptiert Befehle vom FHZ1X00 (oder CUL/CUN) nur alle 115+x Sekunden (x = 0.5*letztes Byte des FHT-Hauscodes (auch FHT-ID genannt), Beispiel: FHT-ID 1234, Sendeintervall = 115+0,5*4 = 117 Sekunden) Praktisch ergeben sich so ca. zwei Minuten. Wenn man also mit FHEM z.B. fünf desired-temp Wechsel sendet, so wird es selbst unter optimalen Bedingungen 9-10 Minuten dauern, bis der letzte ausgeführt wird.
Dies muss insbesondere beim Debuggen von Automationszenarien berücksichtigt werden. Nicht absetzbare Kommandos werden im einem Puffer der FHZ1x00/CUL/CUN gespeichert, obwohl sie im FHEM Log als abgesetzt erscheinen. Bei größeren Installationen kann auch der Puffer überlaufen (EOB Fehlermeldung im FHEM Log). Die Puffer sind unterschiedlich gross. Am kleinsten ist er bei den FHZ1x00 mit ca. 40 Byte, was für ca. acht FHT Befehle reicht. Am grössten ist er im CULv3 oder CUN mit 200 Bytes, das reicht für ca. 40 Befehle.
Bei zu kleinem Puffer bietet FHEM die Möglichkeit, einen Softpuffer (fhtsoftbuffer) zu konfigurieren (dieser wirkt jedoch nur bei FHZ1X00PC Zentralen). Insgesamt ist fhtsoftbuffer nur dann sinnvoll einsetzbar, wenn die Funklage an sich gut ist und der Puffer zügig abgearbeitet wird. Softbuffer sollte nicht eingesetzt werden, wenn die Übertragung der FHT Befehle gestört ist, da sich dann schnell sehr lange Befehlsketten im Puffer aufbauen können, deren Abarbeitung sehr viel Zeit in Anspruch nehmen kann. Dies kann dazu führen, dass Kommandos an FHTs erst Stunden später ausgeführt werden.
Um mehr Befehle an ein FHT80b senden zu können, können bis zu 8 Befehle zusammengefasst werden, diese belegen dann nur einen "Zeitslot"
Beispiel:
set heizung_wohn desired-temp 20.5 day-temp 19.0 night-temp 16.0
Die Kommunikation des FHT80b mit den Stellantrieben und dem Türkontakt erfolgt ebenso in Zeitabständen von ca. zwei Minuten. In den Pausen sind die Sender und Empfänger von FHT80b und FHT8v abgeschaltet, um Batteriestrom zu sparen.
Die Übermittlung der aktuellen Temperaturdaten an die Zentrale (FHZ, CUN) erfolgt alle 15 Minuten.
Die Kommunikation mit der Zentrale ist bidirektional, d.h. die Funkzentrale sendet auch Daten an die FHT80b zurück (insbesondere Acknowledge Meldungen etc). Dies führt dazu, dass im Zusammenhang mit der Sendzeitbegrenzung die Anzahl der maximal nutzbaren Geräte begrenzt ist. Theoretisch lassen sich bis zu 17, in der Praxis eher nur ca. 10 FHT80b sinnvoll mit einer Zentrale steuern.
Verschiedene Betriebsarten mit FHEM
Da das FHT80 selbst ein Heizprogramm speichern und daher eigentlich auch autark arbeiten kann, stellt sich die Frage, wie FHT80 am Besten in Fhem integriert werden sollte. Es gibt dazu drei wesentliche Szenarien:
- das FHT80 heizt nur über seine eigenen Heizprogramme, steht also im Automatik Modus. Diese werden jedoch nicht umständlich am FHT80 selber einprogramiert sondern über Fhem gesetzt. Auch alle gewünschten Änderungen werden über eine Anpassung der im FHT gespeicherten Programme und setzen von day-temp und night-temp realisiert. Vorteil: Volle Funktionalität auch ohne Fhem, daher ausfallsicher. Nachteil: Änderungen erzeugen hohe Funklast, da ganze Wochenprogramme übertragen werden müssen. Führt bei mehr als fünf bis sechs FHTs idR. zu EOB und LOVF Problemen. Ausserdem: Beschränkung auf die FHT80 typisch geringe Zahl von Schaltpunkten (vier pro Tag), mehrstufige Temperaturänderungen sind umständlich. Abhängigkeiten in Fhem (Anwesenheitskontrolle, Bedingungen wie Nutzungserkennung durch Bewegungssensoren etc.) sind schwerer umsetzbar.
- das FHT80 heizt über seine eigenen Heizprogramme, steht also im Automatik Modus. Zusätzlich sendet Fhem Z.B. desired-temp Meldungen und greift so in das Heizprofil ein. Vorteil: Grundfunktionalität auch ohne Fhem, daher ausfallsicher: Das Wochenprogramm des FHT80 wird als Grundprogramm und Fallback genutzt. Zusätzliche Heizpunkte oder höhere/niedrigere Temperaturen werden durch Fhem gesteuert. Geringere Funklast, sofern das Grundprogramm selten geändert wird. Beliebige Schaltpunkte, beliebige Temperaturänderungen leicht einstellbar. Nachteil: Komplex. Das Heizverhalten hängt sowohl vom lokalen Programm im FHT80 ab, als auch von Kommandos die Fhem sendet. Das macht die Steuerung unübersichtlich. Problematisch ist insbesondere, wenn lokale Schaltpunkte kurz vorher gesendete Fhem Kommandos negieren. Dies mach z.b. das Herunterfahren der Heizung bei ungeplanter Abwesenheit schwierig.
- das FHT80 wird in den manuellen Mode geschaltet und nur über Fhem mittels desired-temp Kommandos gesteuert. Vorteil: Da Fhem volle Kontrolle hat, einfache Umsetzung von Abhängigkeiten (Anwesenheitskontrolle, Bedingungen wie Nutzungserkennung durch Bewegungssensoren etc.). Beliebige Schaltpunkte, beliebige Temperaturänderungen leicht einstellbar. Unkomplex: Temperatur hängt nur vom letzt-gesendeten desired-temp Kommando ab. Nachteil: Bei Ausfall von Fhem wird das FHT80 quasi funktionslos und hält nur die letzte eingestellt Temperatur.
Da das FHT80 per Fhem-Befehl zwischen manuellem und automatischem Modus umgestellt werden kann, sind auch Mischformen speziell zwischen den letzten beiden Varianten einsetzbar. Dies wird z.b. im Code Snippet FHT80b Automatik setzen genutzt.
Log-Auszug
FHT80b sendet ca alle zwei Minuten Steuerbefehle an ggf. angeschlossene Ventilstellantriebe. Der einzustellende Wert liegt zwischen 0% und 100% und wird von FHT80b auf Basis der am Gerät eingestellten Solltemperatur und der vom Gerät gemessenen Ist-Temperatur berechnet:
FHT <device-name> actuator: 0%
Ausserdem sendet FHT80b ca 4 mal pro Stunde folgenden Statusbericht:
FHT <device-name> actuator: 0% FHT <device-name> measured-temp: 23.1 (Celsius) FHT <device-name> battery: ok FHT <device-name> lowtemp: ok FHT <device-name> window: closed FHT <device-name> windowsensor: ok FHT <device-name> warnings: none
Die dazu nötige bidirektionale Kommunikation kann mit FHEM mitprotokolliert werden ("set CUL raw X61" vorher nicht vergessen). Hier ein beispielhafter Mitschnitt:
2008-09-28 13:04:18 FHT wz actuator: 0% 2008-09-28 13:04:18 FHT wz actuator: 0% 2008-09-28 13:04:18 FHT wz start-xmit: 17 2008-09-28 13:04:18 FHT wz FHZ:start-xmit: 17 2008-09-28 13:04:19 FHT wz measured-low: 21.9 (Celsius) 2008-09-28 13:04:19 FHT wz FHZ:measured-low: 21.9 (Celsius) 2008-09-28 13:04:19 FHT wz measured-high: 0 2008-09-28 13:04:19 FHT wz FHZ:measured-high: 0 2008-09-28 13:04:19 FHT wz ack: 0 2008-09-28 13:04:20 FHT wz FHZ:ack: 0 2008-09-28 13:04:20 FHT wz warnings: none 2008-09-28 13:04:20 FHT wz FHZ:warnings: none 2008-09-28 13:04:20 FHT wz ack: 0 2008-09-28 13:04:20 FHT wz FHZ:ack: 0 2008-09-28 13:04:20 FHT wz end-xmit: 0 2008-09-28 13:04:20 FHT wz FHZ:end-xmit: 0
Jede Zeile steht für ein Telegramm (und nicht für 3, wie beim FS20).
FHZ:xxx Telegramme wurden von der FHZ (oder CUN/CUL) gesendet, die anderen vom FHT.
Fhem fasst measured-low und measured-high zu measured-temp zusammen, es werden also im normalen log (telnet: inform timer) zwei Zeilen weniger gemeldet.
17 ist der Hauscode der protokollierten FHZ. Wenn die FHZ nicht mit dem richtigen Hauscode antwortet, dann geht die Kommunikation nicht weiter.
Wenn das FHT nicht an der FHZ angemeldet ist (d.h., das FHT hat nicht den Hauscode des FHZ gespeichert), werden keine Temperaturdaten uebermittelt. Set Prog:Cent:N/A setzt den FHT Hauscode auf 100, dann sollte jede FHZ auf "start-xmit" antworten, und das FHT merkt den ersten. Noch besser ist es, dem FHT via fhem etwas zu senden, dann muss nicht auf die nächste Temperaturmeldung (bis zu 15 Minuten) gewartet werden.
Mehr dazu auch hier: FHT mit RFR CUL pairen
Falls die Gegenseite nicht wie erwartet antwortet, wird nach einem Timeout das Telegramm einmal wiederholt. Falls immer noch keine korrekte Antwort vorliegt, wird nach 115+x Sekunden der ganze Vorgang einmal wiederholt.
Durch diese recht umfangreiche Kommunikation entsteht im Zusammenhang mit der Sendezeitbeschränkung die maximale Anzahl nutzbarer Geräte von ca. einem Dutzend.
Bekannte Probleme
- Die Sendefrequenzen einiger FHT80b sind nicht besonders genau auf den eigentlichen Wert von 868,35 MHz justiert und streuen bei verschiedenen Geräten. Die FHZ 1x00PC Geräte sind gegenüber leichten Abweichungen der Frequenz durch eine etwas höhere Empfangsbandbreite eher unempfindlich. Die CUL oder CUNO halten die eingestellte Frequenz dagegen trennschärfer ein, sodass es zu Empfangsproblemen kommen kann. Können Signale eines FHT nicht empfangen werden, kann es sinnvoll sein, probeweise die Frequenz des CUL zu ändern (in 0,05 MHz Schritten), oder die Bandbreite aufzuweiten, z.b. auf 464b KHz.
- Der äußerlich gleich aussehende FHT8 ist nicht mit einer Zentrale/FHEM einsetzbar.
- In seltenen Fällen fehlerhafte Aktuator Meldungen, siehe Lime-Protection Bug
- FHTs hören in der Regel nach 5-10 Tagen auf, von sich aus Daten zur Zentrale zu senden, wenn sonst keine Kommunikation mit dem FHT stattfindet. Ein regelmässiges z.b. wöchentliches Stellen der Uhrzeit oder wöchentliches Abfragen der wichtigsten Parameter (report2 = 255) vorteilhaft zu eher "funklastarmen" Zeiten schafft Abhilfe; z.B.:
define fht_reportZimmer1 at *04:00:00 {if ($wday == 1) { fhem("set hzg_Zimmer1 report2 255") } }
- Die o.g. Situation bringt häufig auch die Actuator-Meldung "unknown_69" mit sich. Eine Beschreibung zur Behebung findet sich in diesem Forums-post .
- Der Betrieb von FHTs mit einen RFR CUL kann zu besonderen Problemen führen, siehe RFR CUL und FHT80
Links
- Anleitung hier oder hier als PDF
- Baugleich auch als Set (FHT80b, FHT80TF) von Medion (bei Aldi oder ebay): Lifetec MD12050
- Kommunikationsprobleme mit FHT
- Was ist der Hauscode?
Eine Reihe von Code Snippets zum Thema FHT80b: