HomeMatic HMInfo TempList/Weekplan: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
(→‎HMInfo Kommandos: Abschnitt überarbeitet.)
Zeile 70: Zeile 70:


=== HMInfo Kommandos ===
=== HMInfo Kommandos ===
* set hm '''tempList''' und '''tempListG''': Die Kommandos sind quasi identisch. Die Duplizierung ist dem FHEM Webfrontend geschuldet. Damit man ein pull-down bekommen kann sind weitere Parameter verboten. '''G''' steht für global und zeigt ein pull-down. Ohne G kann man die üblichen Filter aus HMInfo nutzen.
* '''tempList save''':Speichert die ''referenceList'' in das tempList file anhängend.
* '''tempList verify''':vergleicht die ''referenceList'' mit dem im attribut tempListTmpl definierten Wochenplan. Abweichungen werden angezeigt aber nicht behoben. Diese Prüfung ist auch Teil von HMInfo ''configCheck''.
* '''tempList restore''':wie ''verify', jedoch werden alle Unterschiede in das Device geschrieben. Zu beachten ist hierbei die Verzögerung beim Schreiben (siehe HMInfo protoEvents, Device Status und Beschreibung des Device). Ferner ist zu beachten, dass nach dem Schreiben die ''referenceList'' erneuert werden muss um sinnvoll weiter arbeiten zu können. Siehe '''autoReadReg''' welcher auf Level 5 empfohlen wird. Ein restore kann jederzeit ausgeführt werden. Sind alle Daten aktuell wird '''keine''' Temperaturliste geschrieben. Es erfolgt keinerlei Funkverkehr.
* '''tempList status''':gibt eine Übersicht über genutzte Templates.


Die HMInfo-Befehle, die Temperaturlisten verwalten, folgen dem Schema:


  set <HMInfo> tempList <Befehl>
Die verfügbaren Befehle sind:
; <code>save</code>
: Speichert den aktuellen Zustand der Thermostate (''referenceList'') in der ''tempList''-Datei ab.
; <code>verify</code>
: 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 <code>configCheck</code>.
; <code>restore</code>
: Stellt den Soll-Zustand wieder her. Funktioniert im Prinzip wie <code>verify</code>, jedoch werden alle Abweichungen vom Soll-Zustand korrigiert. Zu beachten ist die Verzögerung beim Schreiben (siehe [[HomeMatic HMInfo#protoEvents|HMInfo protoEvents]], Device Status und Beschreibung des Device) und dass nach dem Schreiben die ''referenceList'' neu geladen werden muss. Wir empfehlen <code>autoReadReg</code> auf Level&nbsp;5 zu setzen. Ein Restore kann jederzeit ausgeführt werden. Sind alle Daten aktuell wird ''keine'' Temperaturliste geschrieben; es erfolgt keinerlei Funkverkehr.
; <code>status</code>
: Gibt eine Übersicht über die genutzten Templates aus.
Das Web-Frontend verwendet den nahezu identischen Befehl <code>tempListG</code>. 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==
==Nutzungsbeispiele==

Version vom 4. Februar 2016, 21:41 Uhr

Todo: Dieser Artikel überschneidet sich inhaltlich mit HomeMatic Type Thermostat#Templates.


HMinfo Weekplan
Zweck / Funktion
Behandlung von Wochenplänen 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 das es erlaubt Temperaturlisten (Wochenpläne) von Thermostaten zu Verwalten.

Einleitung

Homematic bietet eine Reihe von Heizkörperthermostaten welche mit einem Wochenplan eigenständig einen Automatikmode unterstützen. Die Erstellung und Verwaltung dieser Pläne ist im Device zumindest umständlich. Wochenpläne werden in den Devices gespeichert und können über FHEM abgefragt werden.

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 autoReagReg.
  • 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 Files erstellt. Man kann Devices eines der tempTemplates zuweisen um es zu prüfen oder einzuspielen.

Wochenplan Files

Mögliche Files

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 tempaltes 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.

Der File Inhalt - Syntax

 entities:HK1,HK2
 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 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
 entities:HK3
 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 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
  • entities: ist der Name des Wochenplans. Eine Liste kann mehrere Namen haben, welche mit Komma separiert werden.
    • ein Name darf in einem File nicht doppelt vorkommen.
    • der gleiche Name darf in unterschiedlichen File genutzt werden.
  • R_0_tempListSat>: sind die Einträge je Wochentag. Es muss ein Eintrag je Wochentag vorhanden sein.
  • 08:00 14.0 15:00 18.0 21:30 19.0 24:00 14.0: gemäß homematic syntax fängt der Plan immer um 00:00Uhr an. Das erste Paar 08:00 14.0 bedeuted, dass von 00:00 bis 08:00 eine Temperatur von 14.0 eingestellt werden soll. 15:00 18.0 bedeuted das 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 24:00 an jeden Tag sein
    • Uhrzeiten sind auf halbe Stunden beschränkt. Einträge 08:00 und 08:30 sind gültig. 08:20 ist ungültig.

Erstellen des ersten Files

Hat man HMInfo eingerichtet kann man alle referenceList in das File schreiben und dann mit der Bearbeitung beginnen. Vorab sollte man nach Wunsch folgendes einstellen:

attr hm configDir setup
attr hm configTempFile myWeekplan.cfg
set hm tempListG save
  • set hm tempListG save: es wird für jedes Device die referenceList in das File angehängt. Entity ist der Name des Thermostats. Das Attribut tempListTmpl ist hierbei nicht relevant.

Das File kann nun mit einem Editor bearbeitet werden. Wochenpläne können zusammengefasst und verändert werden.

HMInfo Kommandos

Die HMInfo-Befehle, die Temperaturlisten verwalten, folgen dem Schema:

 set <HMInfo> tempList <Befehl>

Die verfügbaren Befehle sind:

save
Speichert den aktuellen Zustand der Thermostate (referenceList) in der tempList-Datei ab.
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. Wir empfehlen 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: