Weiter geht es in Sachen Home-Automation. Ich habe im letzten Beitrag beschrieben, wie ich meine Intertechno IT-1500 mit dem CUL-Stick von Busware angesteuert habe. Dort wurde auch die grundlegende fhem.cfg erklärt. Damit nun die HomeMatic-Komponenten angesteuert werden können, brauchen wir aber ein paar Änderungen in der Konfiguration.
Da es wirklich nicht besonders schön wäre alle Geräte per Hand in die Konfiguration zu schreiben, nutzen wir das automatische Pairing. In diesem Modus werden alle gefunden Komponenten automatisch in die fhem.cfg aufgenommen. Da das aber eventuell in einer sehr unaufgeräumten Datei enden kann, sollte man sich vorher ein Backup der fhem.cfg anlegen.
define CUL1 CUL /dev/ttyACM0@38400 1234 attr CUL1 rfmode HomeMatic define autocreate autocreate attr autocreate autosave 1 attr autocreate filelog ./log/%NAME-%Y.log
Nach einem Neustart von FHEM muss man dann folgenden Befehl im Frontend eingeben.
set CUL1 hmPairForSec 600
Damit wird das Pairing gestartet. Dieser Wert darf auf keinen Fall in die Config eingetragen werden – damit kommt FHEM irgendwie nicht so klar und startet nicht mehr.
Ab diesem Moment hat man also 600 Sekunden zeit das Pairing aller Geräte durchzuführen. Also bin ich zu meinen beiden Thermostaten gelaufen und habe bei beiden die entsprechende Taste gedrückt um das Pairing zu starten. Nach wenigen Sekunden erschien „AC“ auf dem Display, was wohl etwas positives ist (wofür es genau steht, kann ich nicht sagen).
Danach wurden jede Menge Einträge in meiner fhem.cfg angelegt:
define CUL_HM_HM_CC_RT_DN_XXXX99 CUL_HM XXXX99 attr CUL_HM_HM_CC_RT_DN_XXXX99 .devInfo 00FFFF attr CUL_HM_HM_CC_RT_DN_XXXX99 .stc 59 attr CUL_HM_HM_CC_RT_DN_XXXX99 actCycle 000:10 attr CUL_HM_HM_CC_RT_DN_XXXX99 actStatus alive attr CUL_HM_HM_CC_RT_DN_XXXX99 autoReadReg 4_reqStatus attr CUL_HM_HM_CC_RT_DN_XXXX99 expert 2_full attr CUL_HM_HM_CC_RT_DN_XXXX99 firmware 1.1 attr CUL_HM_HM_CC_RT_DN_XXXX99 model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX99 peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX99 room CUL_HM attr CUL_HM_HM_CC_RT_DN_XXXX99 serialNr KEQ072XXXX attr CUL_HM_HM_CC_RT_DN_XXXX99 subType thermostat attr CUL_HM_HM_CC_RT_DN_XXXX99 webCmd getConfig:burstXmit define FileLog_CUL_HM_HM_CC_RT_DN_XXXX99 FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX99-%Y.log CUL_HM_HM_CC_RT_DN_XXXX99 attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99 logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99 room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX99_Weather CUL_HM XXXX9901 attr CUL_HM_HM_CC_RT_DN_XXXX99_Weather expert attr CUL_HM_HM_CC_RT_DN_XXXX99_Weather model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX99_Weather peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX99_Weather room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_Weather FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX99_Weather-%Y.log CUL_HM_HM_CC_RT_DN_XXXX99_Weather attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_Weather logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_Weather room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX99_Climate CUL_HM XXXX9902 attr CUL_HM_HM_CC_RT_DN_XXXX99_Climate expert attr CUL_HM_HM_CC_RT_DN_XXXX99_Climate model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX99_Climate peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX99_Climate room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_Climate FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX99_Climate-%Y.log CUL_HM_HM_CC_RT_DN_XXXX99_Climate attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_Climate logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_Climate room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec CUL_HM XXXX9903 attr CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec expert attr CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec room CUL_HM attr CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec stateFormat last:trigLast define FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_WindowRec room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr CUL_HM XXXX9904 attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr expert attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_ClimRT_tr room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam CUL_HM XXXX9905 attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam expert attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_ClimaTeam room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX99_remote CUL_HM XXXX9906 attr CUL_HM_HM_CC_RT_DN_XXXX99_remote expert attr CUL_HM_HM_CC_RT_DN_XXXX99_remote model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX99_remote peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX99_remote room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_remote FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX99_remote-%Y.log CUL_HM_HM_CC_RT_DN_XXXX99_remote attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_remote logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX99_remote room CUL_HM define ActionDetector CUL_HM 000000 attr ActionDetector actCycle 600 attr ActionDetector event-on-change-reading .* attr ActionDetector room CUL_HM define FileLog_ActionDetector FileLog ./log/ActionDetector-%Y.log ActionDetector attr FileLog_ActionDetector logtype text attr FileLog_ActionDetector room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX40 CUL_HM XXXX40 attr CUL_HM_HM_CC_RT_DN_XXXX40 .devInfo 00FFFF attr CUL_HM_HM_CC_RT_DN_XXXX40 .stc 59 attr CUL_HM_HM_CC_RT_DN_XXXX40 actCycle 000:10 attr CUL_HM_HM_CC_RT_DN_XXXX40 actStatus alive attr CUL_HM_HM_CC_RT_DN_XXXX40 firmware 1.1 attr CUL_HM_HM_CC_RT_DN_XXXX40 model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX40 room CUL_HM attr CUL_HM_HM_CC_RT_DN_XXXX40 serialNr KEQ072XXXX attr CUL_HM_HM_CC_RT_DN_XXXX40 subType thermostat define FileLog_CUL_HM_HM_CC_RT_DN_XXXX40 FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX40-%Y.log CUL_HM_HM_CC_RT_DN_XXXX40 attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40 logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40 room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX40_Weather CUL_HM XXXX4001 attr CUL_HM_HM_CC_RT_DN_XXXX40_Weather model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX40_Weather peerIDs attr CUL_HM_HM_CC_RT_DN_XXXX40_Weather room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_Weather FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX40_Weather-%Y.log CUL_HM_HM_CC_RT_DN_XXXX40_Weather attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_Weather logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_Weather room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX40_Climate CUL_HM XXXX4002 attr CUL_HM_HM_CC_RT_DN_XXXX40_Climate model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX40_Climate room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_Climate FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX40_Climate-%Y.log CUL_HM_HM_CC_RT_DN_XXXX40_Climate attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_Climate logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_Climate room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec CUL_HM XXXX4003 attr CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec-%Y.log CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_WindowRec room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr CUL_HM XXXX4004 attr CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr-%Y.log CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_ClimRT_tr room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam CUL_HM XXXX4005 attr CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam-%Y.log CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_ClimaTeam room CUL_HM define CUL_HM_HM_CC_RT_DN_XXXX40_remote CUL_HM XXXX4006 attr CUL_HM_HM_CC_RT_DN_XXXX40_remote model HM-CC-RT-DN attr CUL_HM_HM_CC_RT_DN_XXXX40_remote room CUL_HM define FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_remote FileLog ./log/CUL_HM_HM_CC_RT_DN_XXXX40_remote-%Y.log CUL_HM_HM_CC_RT_DN_XXXX40_remote attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_remote logtype text attr FileLog_CUL_HM_HM_CC_RT_DN_XXXX40_remote room CUL_HM
Nach dem Pairing sollte die diese Zeile in der Config wieder auskommentiert werden:
attr autocreate autosave 1
Das waren natürlich eine Menge Informationen und die Namen sind auch nicht besonders sprechend (ich habe die Geräte-IDs für diesen Beitrag aus Sicherheitsgründen durch XXXX ersetzt). Da ich bisher weder Fensterkontakte, Thermometer oder andere Geräte im Einsatz habe, konnte ich das Ganze gut kürzen:
define WZ_Fenster CUL_HM XXXX99 attr WZ_Fenster .devInfo 00FFFF attr WZ_Fenster .stc 59 attr WZ_Fenster actCycle 000:10 attr WZ_Fenster actStatus alive attr WZ_Fenster autoReadReg 4_reqStatus attr WZ_Fenster expert 2_full attr WZ_Fenster firmware 1.1 attr WZ_Fenster model HM-CC-RT-DN attr WZ_Fenster peerIDs attr WZ_Fenster room Wohnzimmer attr WZ_Fenster serialNr KEQ072XXXX attr WZ_Fenster subType thermostat attr WZ_Fenster webCmd getConfig:burstXmit define FileLog_WZ_Fenster FileLog ./log/WZ_Fenster-%Y.log WZ_Fenster attr FileLog_WZ_Fenster logtype text attr FileLog_WZ_Fenster room Wohnzimmer define WZ_Fenster_ClimRT_tr CUL_HM XXXX9904 attr WZ_Fenster_ClimRT_tr expert attr WZ_Fenster_ClimRT_tr model HM-CC-RT-DN attr WZ_Fenster_ClimRT_tr peerIDs attr WZ_Fenster_ClimRT_tr room Wohnzimmer define FileLog_WZ_Fenster_ClimRT_tr FileLog ./log/WZ_Fenster_ClimRT_tr-%Y.log WZ_Fenster_ClimRT_tr attr FileLog_WZ_Fenster_ClimRT_tr logtype text attr FileLog_WZ_Fenster_ClimRT_tr room Wohnzimmer define WZ_Klein CUL_HM XXXX40 attr WZ_Klein .devInfo 00FFFF attr WZ_Klein .stc 59 attr WZ_Klein actCycle 000:10 attr WZ_Klein actStatus alive attr WZ_Klein firmware 1.1 attr WZ_Klein model HM-CC-RT-DN attr WZ_Klein room Wohnzimmer attr WZ_Klein serialNr KEQ072XXXX attr WZ_Klein subType thermostat define FileLog_WZ_Klein FileLog ./log/WZ_Klein-%Y.log WZ_Klein attr FileLog_WZ_Klein logtype text attr FileLog_WZ_Klein room Wohnzimmer define WZ_Klein_ClimRT_tr CUL_HM XXXX4004 attr WZ_Klein_ClimRT_tr model HM-CC-RT-DN attr WZ_Klein_ClimRT_tr room Wohnzimmer define FileLog_WZ_Klein_ClimRT_tr FileLog ./log/WZ_Klein_ClimRT_tr-%Y.log WZ_Klein_ClimRT_tr attr FileLog_WZ_Klein_ClimRT_tr logtype text attr FileLog_WZ_Klein_ClimRT_tr room Wohnzimmer define ActionDetector CUL_HM 000000 attr ActionDetector actCycle 600 attr ActionDetector event-on-change-reading .* attr ActionDetector room Wohnzimmer define FileLog_ActionDetector FileLog ./log/ActionDetector-%Y.log ActionDetector attr FileLog_ActionDetector logtype text attr FileLog_ActionDetector room Wohnzimmer
Damit war die Konfiguration eigentlich auch schon abgeschlossen. Nun tauchen die Geräte in meinem entsprechenden Raum im FHEM auf und ich kann die Temperatur jederzeit manuell ändern.
Sehr cool ist die Funktion, dass man aus den „ClimRT_tr“-logs auch Charts erstellen kann. Diese kann man sich auch ganz bequem über die Oberfläche zusammenklicken. Hier mal ein Beispiel:
Sobald ein paar Log-Daten gesammelt wurden, sieht es im FHEM dann so aus:
In diesem Beispiel habe ich die folgenden drei Werte eingebunden:
- Ventil: Wie weit wurde das Heizungsventil vom Thermostat geöffnet (in Prozent)
- Temperatur: Die aktuelle Temperatur im Raum
- Zieltemperatur: Wie warm soll es sein?
Wie man sieht, schien heute über den Tag die Sonne – das heißt, dass die Heizung irgendwann garnicht gebraucht wurde um die Temperatur zu halten – im Gegenteil – es wurde sogar noch wärmer.
Momentan werden noch die Zeitpläne vom Thermostat genutzt – das geht natürlich auch per FHEM. Damit beschäftige ich mich aber erst im nächsten Beitrag. Als Freund von Statistiken werde ich mich sicher noch tiefer in das Thema begeben. Aber einfacher geht es wirklich nicht.
Viel Erfolg!