HomeMatic HMInfo TempList/Weekplan: Unterschied zwischen den Versionen
Zeile 60: | Zeile 60: | ||
Der letzte Befehl speichert die ''referenceList'' jedes Gerät in der Datei <code>setup/myWeekplan.cfg</code>. Als ''Entity'' wird der Name des Thermostaten verwendet – das Attribut ''tempListTmpl'' wird nicht beachtet. Die Datei kann anschließend mit einem Text-Editor bearbeitet werden. Wochenpläne können zusammengefasst und verändert werden. | Der letzte Befehl speichert die ''referenceList'' jedes Gerät in der Datei <code>setup/myWeekplan.cfg</code>. Als ''Entity'' wird der Name des Thermostaten verwendet – das Attribut ''tempListTmpl'' wird nicht beachtet. Die Datei kann anschließend mit einem Text-Editor bearbeitet werden. Wochenpläne können zusammengefasst und verändert werden. | ||
''Achtung'': bei der Verwendung von [[ | ''Achtung'': bei der Verwendung von [[configdb]] wird die Datei nicht in das Dateisystem, sondern gleich in die configDB geschrieben. Mit Hilfe des Kommandos | ||
configdb filelist | configdb filelist |
Version vom 18. September 2019, 16:38 Uhr
HMinfo Weekplan | |
---|---|
Zweck / Funktion | |
Behandlung von Wochenprogrammen für Thermostate | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | Weekplan EN / Weekplan DE |
Support (Forum) | HomeMatic |
Modulname | 98_HMinfo.pm |
Ersteller | martinp876 (martinp876 / Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
HMInfo TempList ist eine Funktion des Moduls HMInfo, die es erlaubt Temperaturlisten (Wochenprogramme) von Thermostaten zu verwalten.
Einleitung
Homematic bietet eine Reihe von Heizkörperthermostaten, welche mit einem Wochenprogramm ausgestattet sind. Die Erstellung und Verwaltung dieser Wochenprogramme ist im Device zumindest umständlich, siehe dazu HomeMatic_Type_Thermostat#Templates
Begriffe
Wir müssen strikt 3 Wochenpläne unterscheiden:
- activeList Wochenplan im Device. Dieser, und nur dieser ist wirksam. Er kann nicht direkt in FHEM dargestellt werden. FHEM muss die Daten auslesen um sie verarbeiten zu können. Siehe hierzu kommandos und attribute des Device:getConfig und autoReadReg.
- referenceList Wochenplan in FHEM. Für jedes Device wird ein Wochenplan (bei einigen Devices können es sogar mehrere sein) dargestellt. Dies ist die aus dem Device gelesene activeList. Es liegt in der Verantwortung des User, die Liste aktuell zu halten.
- tempTemplates Vorlagen für Wochenpläne. Diese werden in externen Dateien erstellt. Man kann Devices eines der tempTemplates zuweisen um es zu prüfen oder einzuspielen.
Wochenprogramme
Datei
Zur Verwendung einer Temperaturliste als Wochenprogramm muss eine Datei erzeugt werden, mit folgendem Inhalt:
- Für jede Temperaturliste eine Namensliste in der Form
entities:<name1>,<name2>,...
- ein Name darf in einer Datei nicht doppelt vorkommen.
- der gleiche Name darf in unterschiedlichen Dateien verwendet werden.
- In jeder Temperaturliste eine Zeile pro Tag, beginnend mit
tempList<Wochtentag>> ....
- Es muss eine Zeile je Wochentag vorhanden sein
- In jeder Zeile nach dem Wochentagscode eine Liste von Zeit/Wert-Paaren, diese stellen das jeweilige Tagesprogramm dar, z.B. 08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0,
- Jedes Tagesprogramm beginnt um 00:00 Uhr.
- Das erste Paar 08:00 14.0 bedeutet also, dass von 00:00 bis 08:00 eine Temperatur von 14.0 eingestellt werden soll.
- Das zweite Paar 15:00 18.0 bedeutet also, dass von 08:00 bis 15:00 18.0 Grad einzustellen sind
- Es sind immer Paare einzutragen
- der Beginn um 00:00 ist nicht einzutragen
- der letzte Eintrag muss an jeden Tag 24:00 sein
- Uhrzeiten sind auf halbe Stunden beschränkt. Einträge 08:00 und 08:30 sind gültig. 08:20 ist ungültig.
Beispiel:
entities:tempTmpl1 R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 R_1_tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 17.0 R_2_tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0 R_3_tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0 R_4_tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0 R_5_tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0 R_6_tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0 entities:tempTWohnzimmer R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 17.0 R_1_tempListSun>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 R_2_tempListMon>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0 R_3_tempListTue>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 15.0 R_4_tempListWed>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0 R_5_tempListThu>07:00 14.0 16:00 18.0 21:00 19.0 24:00 14.0 R_6_tempListFri>07:00 14.0 13:00 16.0 16:00 18.0 21:00 19.0 24:00 14.0
Erstellen der ersten Template-Datei
Um nicht auf der grünen Wiese beginnen zu müssen, empfiehlt es sich den aktuellen Ist-Zustand (die referenceList) mit dem unten beschriebenen HMInfo-Befehl save
in eine Datei zu schreiben. Vorab sollten die HMInfo-Attribute configDir
und configTempFile
gesetzt sein.
attr <HMInfo> configDir setup attr <HMInfo> configTempFile myWeekplan.cfg set <HMInfo> tempList save
Der letzte Befehl speichert die referenceList jedes Gerät in der Datei setup/myWeekplan.cfg
. Als Entity wird der Name des Thermostaten verwendet – das Attribut tempListTmpl wird nicht beachtet. Die Datei kann anschließend mit einem Text-Editor bearbeitet werden. Wochenpläne können zusammengefasst und verändert werden.
Achtung: bei der Verwendung von configdb wird die Datei nicht in das Dateisystem, sondern gleich in die configDB geschrieben. Mit Hilfe des Kommandos
configdb filelist configdb fileexport myWeekplan.cfg
kann diese exportiert, bearbeitet und danach wieder in die configdb eingelesen werden.
Templates zuweisen
tempListTemplates werden immer in Files verwaltet. Man kann Templates in mehreren Files verwalten. Ferner gibt es unterschiedliche Methoden, ein File zu spezifizieren.
- attr tempListTmpl im Device: hier spezifiziert man das Template. Will man sich von templates entkoppeln sollte man tempListTmpl none unbedingt setzen.
- Wohnzimmer: das template Wohnzimmer wird im default File gesucht
- myWeekplan.cfg:Wohnzimmer: das template Wohnzimmer wird im File myWeekplan.cfg mit relativen Pfad von FHEM home gesucht
- ./setup/myWeekplan.cfg:Wohnzimmer: das template Wohnzimmer wird im File myWeekplan.cfg mit relativen Pfad ./setup gesucht
- /opt/fhem/myWeekplan.cfg:Wohnzimmer: das template Wohnzimmer wird im File myWeekplan.cfg mit absoluten Pfad /opt/fhem/ gesucht
- attr configTempFile in HMInfo: spezifiziert weekplan configurationsfiles. Es ist eine Liste Wochenplan Files welche genutzt werden. Ist das Attribut nicht gesetzt wird als default tempList.cfg genutzt.
- attr hm configTempFile myWeekPlan.cfg: FHEM kennt ein File mit Wochenplan. Dies ist auch das Default für alle tempListTmpl in denen kein File spezifiziert.
- attr hm configTempFile mySummerPlan.cfg,myWinterPlan.cfg,myPartyPlan.cfg: FHEM sind 3 Files bekannt. Der erste Eintrag mySummerPlan.cfg ist der Default für tempListTmpl .
- attr configDir in HMInfo: spezifiziert einen Pfad, der auch für configTemplFile genutzt wird. Es erleichtert Konfigurations-Dateien in einem separaten Verzeichnis anzulegen. attr hm configDir setup wäre ein sinnvoller Eintrag. Das Verzeichnis setup unter fhem sollte erstellt werden. Ist das Attribut nicht gesetzt ist fhemHome der default.
HMInfo Kommandos
Die HMInfo-Befehle, die Temperaturlisten verwalten, folgen dem Schema:
set <HMInfo> tempList <Befehl> [<Dateiname>]
Die verfügbaren Befehle sind:
save
- Speichert den aktuellen Zustand der Thermostate (referenceList) in der tempList-Datei ab. Zu beachten ist, dass die aktuell in FHEM vorhandenen Werte benutzt werden. Der Benutzer muss selbst sicher stellen, dass diese mit den Werten im Gerät übereinstimmen. Alle eventuell vorher in der Datei vorhandenen Werte werden überschrieben.
verify
- Vergleicht den Ist-Zustand (referenceList) mit dem Soll-Zustand (dem Wochenplan aus dem tempListTmpl-Attribut). Abweichungen werden angezeigt, aber nicht behoben. Diese Prüfung ist auch Teil von HMInfos
configCheck
. restore
- Stellt den Soll-Zustand wieder her. Funktioniert im Prinzip wie
verify
, jedoch werden alle Abweichungen vom Soll-Zustand korrigiert. Zu beachten ist die Verzögerung beim Schreiben (siehe HMInfo protoEvents, Device Status und Beschreibung des Device) und dass nach dem Schreiben die referenceList neu geladen werden muss. Es wird empfohlen,autoReadReg
auf Level 5 zu setzen. Ein Restore kann jederzeit ausgeführt werden. Sind alle Daten aktuell, wird keine Temperaturliste geschrieben; es erfolgt keinerlei Funkverkehr. status
- Gibt eine Übersicht über die genutzten Templates aus.
Das Web-Frontend verwendet den nahezu identischen Befehl tempListG
. Da dieser Befehl keine weiteren Argumente zulässt kann das Frontend ein Pulldown-Menü anzeigen. Das "G" steht für "Global" – da keine Filter unterstützt werden, wirken alle Befehle auf alle HomeMatic-Geräte.
Nutzungsbeispiele
Mehrere Heizkörper in einem Raum
Wenn sich in einem Raum mehrere Heizkörperthermostate befinden, sollten diese – wie in HM-CC-RT-DN beschrieben – gepeert werden. HomeMatic geht davon aus, dass alle HM-CC-RT-DNs den selben Wochenplan haben (gilt ggf. auch für einen zugehörigen HM-TC-IT-WM-W-EU).
Um dies zu erreichen definiert man einen Wochenplan für das Zimmer, beispielsweise Wohnzimmer.cfg
. Anschließend wird dieser Wochenplan allen Teammitgliedern zugewiesen:
attr <HM-CC-RT-DN#1>_Clima tempListTmpl Wohnzimmer attr <HM-CC-RT-DN#2>_Clima tempListTmpl Wohnzimmer attr <HM-CC-RT-DN#3>_Clima tempListTmpl Wohnzimmer attr <HM-TC-IT-WM-W-EU>_Climate tempListTmpl Wohnzimmer set hm tempListG restore
Mehrere Heizkörper mit gleichen Profil
Will man Wohnräume identisch behandeln im Hinblick auf den Wochenplan weisst man den Thermostaten identische Profile zu.
attr RTSusi_Clima tempListTmpl Kinderzimmer attr RTjonas_Clima tempListTmpl Kinderzimmer attr RTwohnzimmer_Clima tempListTmpl Kinderzimmer set hm tempListG restore
Wohnungsnutzung umschalten
Das Heizprofil kann man Zentral umstellen. Verlässt man die Wohnung zum Urlaub, der Sommer naht, man macht die üblich 3-Woche Party... . Alle Thermostate sollen umgestellt werden, zentral mit wenigen Kommandos, einfach zu prüfen. Sinnvoll ist es mehrere tempList.cfg Files anzulegen. Nehmen wir 4 Files an, Winter, Urlaub zu hause UrlaubIn, Urlaub nicht zu hause UrlaubOut sowie Sommer. Ferner hat man (der Einfachheit halber) 3 RTs: RTwohn, RTschlaf, RTkueche. Die RTs haben jeweils ihr attr tempListTmpl gesetzt entsprechend ihrem Namen. Man legt also die 4 Files an mit entities die man zusammenfassen kann (templisten muss man natürlich befüllen:
File Winter.cfg entity: RTwohn R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 ... entity: RTschlaf R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 ... entity: RTkueche R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 ...
File UrlaubIn.cfg entity: RTwohn,RTkueche R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 ... entity: RTschlaf R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 ...
File UrlaubOut.cfg entity: RTwohn,RTschlaf,RTkueche R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 ...
File Sommer.cfg entity: RTwohn,RTschlaf,RTkueche R_0_tempListSat>08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0 ...
In HMInfo sollte man nun verwalten:
attr RTwohn_Clima tempListTmpl RTwohn attr RTkueche_Clima tempListTmpl RTkueche attr RTschlaf_Clima tempListTmpl RTschlaf attr hm configTempFile Winter.cfg,Sommer.cfg,UrlaubIn.cfg,UrlaubOut.cfg
Winter.cfg ist nun default. Mit set hm tempListG verify kann man prüfen, dass es entsprechend genutzt ist. Nun will man in Urlaub fahren. Man schaltet das Default durch umstellen der Reihenfolge um und aktiviert es durch ein restore:
attr hm configTempFile UrlaubOut.cfg,Winter.cfg,Sommer.cfg,UrlaubIn.cfg set hm tempListG restore
UrlaubOut.cfg ist default. Alle notwendigen Änderungen werden in die RTs programmiert. Unberührt bleibt Opas Zimmer, der nicht das default file sondern ein dediziertes nutzt.
attr RTopa_Clima tempListTmpl Winter.cfg:RTopa
Das template RTopa muss also nur im File Winter.cfg vorhanden sein: