Einleitung:
Diese kurze Anleitung ist für all jene, die wie ich, versuchen die Sensoren TX29-DTH-IT und die Aktoren FHT8V zu verheiraten und noch dazu eine zentrale Heizung steuern müssen.
MeinProblem bei der Recherche war, dass offenbar niemand dieses Problem hatte (vielleicht bin auch ein schlechter googler und fhem-wiki leser ;-) ).
Zu mir:
Ich wohne in einem alten kleinen Häuschen. Die Vermieter hatten, kurz vor meinem Einzug, beschlossen von Gas auf Erdwärme umzustellen (bin ein Gas Fan, hätte aber auch da die selbe Problemstellung gehabt).
Das Setup ist, dass normale Heizkörper und Bodenheizung gemischt sind.
Ursprünglich bin ich rein auf FHTs (http://www.elv.at/elv-fht80b-1-raum-heizungsregelung-pro-1x-fht80b-1xfht8v-1x-fht80tf-2.html) und TuxRadio v1 und v2 (http://busware.de/tiki-index.php?page=TuxRadio) gefahren.
Dazu das HCS (http://www.fischer-net.de/hausautomation/fhem/54-fhem-modul-hcs-ueberarbeitet.html) Modul.
Sehr praktisch, sehr einfach - quasi plug-n-play.
Nachdem ich dann einige troubles hatte mit den TuxRadio, oder besser: mit den SD-Karten und dazu kam (über diesen Sommer ((2015))), dass mir die meisten FHT80B eingegangen sind, habe ich mich nach einer "günstigeren" Lösung umgeschaut.
Zu den Infos unten setze ich voraus, dass man schon mit FHEM zu tun hatte. Auch davon, dass die Einbindung der Hardware Komponenten selbst recherchiert wird, weil ich selbst schnell gute Anleitungen gefunden habe. Ich selbst bin kein coder sondern ein "Wald-und-Wiesen-SysAdmin".
Ich gehe hier nur auf die Problematik ein wie man die Sachen in FHEM zusammenstöpselt.
----------------
Setup:
Heizung: Zentrale Erdwärme (Optima 10 via FS20 Schalter ein/aus geschaltet)
Fhem (auf debian 8 via repo - alter, leiser, PC)
Busware USB - Lite module - V2 (http://busware.de/tiki-index.php?page=CUL-V2): für FHT8V
JeeLink (v3c) (http://www.digitalsmarties.net/products/jeelink): für TX29-DTH-IT
Sensoren: TX29-DTH-IT
Aktoren: FHT8V (meine bisher verwendeten - gehen einwandfrei)
TX29-DTH-IT und FHT8V verheiraten: PID20
Heizungssteuerung: HCS (die eigentliche recherche Arbeit sie mit PID20 zum laufen zu bringen)
----------------------
1. FHT8Vs reinholen (pairen) konfigurieren (Anleitung: http://www.fhemwiki.de/wiki/FHT_8v_direkt_ansprechen)
define kr.buero.stellantrieb FHT8V 1234
attr kr.buero.stellantrieb IODev CUL_0
attr kr.buero.stellantrieb room kr.buero
define FileLog_kr.buero.stellantrieb FileLog ./log/kr.buero.stellantrieb-%Y.log kr.buero.stellantrieb
attr FileLog_kr.buero.stellantrieb logtype text
attr FileLog_kr.buero.stellantrieb room kr.buero
2. TX29-DTH-IT reinholen (Anleitung: http://www.meintechblog.de/2015/01/fhem-mit-jeelink-luftfeuchte-und-temperatur-zum-low-cost-tarif-messen/)
define kr.buero.temp LaCrosse 1C
attr kr.buero.temp IODev JeeLink_0
attr kr.buero.temp room kr.buero
define FileLog_kr.buero.temp FileLog ./log/kr.buero.temp-%Y.log kr.buero.temp
attr FileLog_kr.buero.temp logtype text
attr FileLog_kr.buero.temp room kr.buero
3. PID20 konfigurieren (Anleitung: http://www.fhemwiki.de/wiki/PID20_-_Der_PID-Regler)
define kr.buero.regler PID20 kr.buero.temp:temperature kr.buero.stellantrieb:valve
attr kr.buero.regler room kr.buero
attr kr.buero.regler pidActorInterval 300
attr kr.buero.regler pidActorTreshold 5
attr kr.buero.regler pidActorValueDecPlaces 0
attr kr.buero.regler pidFactor_I 0.2
attr kr.buero.regler pidFactor_P 50
attr kr.buero.regler event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0
attr kr.buero.regler event-min-interval actuation:1800,actuationCalc:1800,delta:1800,desired:1800,measured:1800,p_d:1800,p_i:1800,p_p:1800
attr kr.buero.regler group Heizungssteuerung
define FileLog_kr.buero.regler FileLog ./log/kr.buero.regler-%Y.log kr.buero.regler
attr FileLog_kr.buero.regler logtype text
attr FileLog_kr.buero.regler room kr.buero
define SVG_kr.buero.regler SVG FileLog_kr.buero.regler:PID:CURRENT
attr SVG_kr.buero.regler label "kr.buero.regler Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_kr.buero.regler room kr.buero
4. HCS tweaken
Hintergrund: Das HCS Modul ist für FHT, HomeMatic und MAX gedacht. Erkennt also die PID20 nicht.
In meiner konfiguration habe ich einfach FHT durch PID20 ersetzt (was natürlich ggf. FHTs in Zukunft ausschliesst. Müsste auch mit MAX gehen bzw. wenn jemand gewiefter ist, könnte man sicher den code um PID20 erweitern, ich bins nicht - ode rzu faul).
* Mit dem Editor des vertrauens editieren: /opt/fhem/FHEM/59_HCS.pm
mcedit /opt/fhem/FHEM/59_HCS.pm # Mit F4 kann man suchen und ersetzen
a.) ALLE "FHT" durch "PID20" ersetzen
b.) Zeile 478 / 480 (kann man auch mit F7 suchen - gibts nur einmal) "desired-temp" / "measured-temp" durch "desired" / "measured" ersetzen.
Vorher:
$devs{$d}{tempDesired} = ReadingsVal($d,"desired-temp","n/a") if($t =~ m/(FHT|CUL_HM)/);
$devs{$d}{tempDesired} = ReadingsVal($d,"desiredTemperature","n/a") if($t =~ m/(MAX)/);
$devs{$d}{tempMeasured} = ReadingsVal($d,"measured-temp","n/a") if($t =~ m/(FHT|CUL_HM)/);
$devs{$d}{tempMeasured} = ReadingsVal($d,"temperature","n/a") if($t =~ m/(MAX)/);
Nachher:
$devs{$d}{tempDesired} = ReadingsVal($d,"desired","n/a") if($t =~ m/(PID20|CUL_HM)/);
$devs{$d}{tempDesired} = ReadingsVal($d,"desiredTemperature","n/a") if($t =~ m/(MAX)/);
$devs{$d}{tempMeasured} = ReadingsVal($d,"measured","n/a") if($t =~ m/(PID20|CUL_HM)/);
$devs{$d}{tempMeasured} = ReadingsVal($d,"temperature","n/a") if($t =~ m/(MAX)/);
Die actuation (valve) Werte habe ich mir nicht angeschaut, da ich HCS nur über den "thermostat" mode betreibe. Sollte aber nach dem selben Prinzip gehen: Schauen wie der Wert in FHT (HomeMatic, MAX) ausschaut und durch den PID20 ersetzen.
5. HCS Einrichten (Anleitung: http://www.fischer-net.de/hausautomation/fhem/54-fhem-modul-hcs-ueberarbeitet.html)
# Optima 10 Schalter
####################
define Erdwaerme.schalter FS20 431b 00
attr Erdwaerme.schalter IODev CUL_0
attr Erdwaerme.schalter group Heizungssteuerung
attr Erdwaerme.schalter model fs20st
attr Erdwaerme.schalter room Erdwaerme.Kontrolle
# attr Erdwaerme.schalter alias Heizbetrieb
define FileLog_Erdwaerme.schalter FileLog ./log/Erdwaerme.schalter-%Y.log Erdwaerme.schalter
attr FileLog_Erdwaerme.schalter group Heizungssteuerung
attr FileLog_Erdwaerme.schalter logtype fs20:Plot,text
attr FileLog_Erdwaerme.schalter room Erdwaerme.Kontrolle
define SVG_Erdwaerme.schalter SVG FileLog_Erdwaerme.schalter:fs20:CURRENT
attr SVG_Erdwaerme.schalter room Systemraum
#
# Optima 10 dummy
#################
define Erdwaerme.Kontrolle.dum dummy
attr Erdwaerme.Kontrolle.dum alias Wärmebedarf Eco Modus
attr Erdwaerme.Kontrolle.dum group Heizungssteuerung
attr Erdwaerme.Kontrolle.dum room Erdwaerme.Kontrolle
attr Erdwaerme.Kontrolle.dum setList state:on,off
#
# Optima 10 notify
#################
define Erdwaerme.Kontrolle.not notify Erdwaerme.Kontrolle.dum set Erdwaerme.Kontrolle eco %EVENT
attr Erdwaerme.Kontrolle.not room Erdwaerme.Kontrolle
# Optima 10 Steuerung
#####################
define Erdwaerme.Kontrolle HCS Erdwaerme.schalter
attr Erdwaerme.Kontrolle alias Wärmebedarf
attr Erdwaerme.Kontrolle deviceCmdOff off
attr Erdwaerme.Kontrolle deviceCmdOn on
attr Erdwaerme.Kontrolle ecoTemperatureOff 25
attr Erdwaerme.Kontrolle ecoTemperatureOn 12
attr Erdwaerme.Kontrolle event-on-change-reading state,devicestate,eco,overdrive
attr Erdwaerme.Kontrolle group Heizungssteuerung
attr Erdwaerme.Kontrolle idleperiod 10
attr Erdwaerme.Kontrolle interval 1
attr Erdwaerme.Kontrolle mode thermostat
#attr Erdwaerme.Kontrolle mode valve
attr Erdwaerme.Kontrolle room Erdwaerme.Kontrolle
attr Erdwaerme.Kontrolle thermostatThresholdOff 0.5
attr Erdwaerme.Kontrolle thermostatThresholdOn 1
attr Erdwaerme.Kontrolle valveThresholdOff 40
attr Erdwaerme.Kontrolle valveThresholdOn 35
attr Erdwaerme.Kontrolle loglevel 4
--------------------------------------------------
Goodies:
------------
a.) Ein Raum, ein Thermostat, zwei Heizkriese
define eg.kueche.stellantrieb.nord FHT8V 1134
attr eg.kueche.stellantrieb.nord IODev CUL_0
attr eg.kueche.stellantrieb.nord room eg.kueche
define FileLog_eg.kueche.stellantrieb.nord FileLog ./log/eg.kueche.stellantrieb.nord-%Y.log eg.kueche.stellantrieb.nord
attr FileLog_eg.kueche.stellantrieb.nord logtype text
attr FileLog_eg.kueche.stellantrieb.nord room eg.kueche
define eg.kueche.stellantrieb.sued FHT8V 1034
attr eg.kueche.stellantrieb.sued IODev CUL_0
attr eg.kueche.stellantrieb.sued room eg.kueche
define FileLog_eg.kueche.stellantrieb.sued FileLog ./log/eg.kueche.stellantrieb.sued-%Y.log eg.kueche.stellantrieb.sued
attr FileLog_eg.kueche.stellantrieb.sued logtype text
attr FileLog_eg.kueche.stellantrieb.sued room eg.kueche
define eg.kueche.temp LaCrosse 0C
attr eg.kueche.temp IODev JeeLink_0
attr eg.kueche.temp room eg.kueche
define FileLog_eg.kueche.temp FileLog ./log/eg.kueche.temp-%Y.log eg.kueche.temp
attr FileLog_eg.kueche.temp logtype text
attr FileLog_eg.kueche.temp room eg.kueche
define eg.kueche.nord.regler PID20 eg.kueche.temp:temperature eg.kueche.stellantrieb.nord:valve
attr eg.kueche.nord.regler room eg.kueche
attr eg.kueche.nord.regler pidActorInterval 300
attr eg.kueche.nord.regler pidActorTreshold 5
attr eg.kueche.nord.regler pidActorValueDecPlaces 0
attr eg.kueche.nord.regler pidFactor_I 0.2
attr eg.kueche.nord.regler pidFactor_P 50
attr eg.kueche.nord.regler event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0
attr eg.kueche.nord.regler event-min-interval actuation:1800,actuationCalc:1800,delta:1800,desired:1800,measured:1800,p_d:1800,p_i:1800,p_p:1800
attr eg.kueche.nord.regler group Heizungssteuerung
define FileLog_eg.kueche.nord.regler FileLog ./log/eg.kueche.nord.regler-%Y.log eg.kueche.nord.regler
attr FileLog_eg.kueche.nord.regler logtype text
attr FileLog_eg.kueche.nord.regler room eg.kueche
define SVG_eg.kueche.nord.regler SVG FileLog_eg.kueche.nord.regler:PID:CURRENT
attr SVG_eg.kueche.nord.regler label "eg.kueche.nord.regler Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_eg.kueche.nord.regler room eg.kueche
define eg.kueche.sued.regler PID20 eg.kueche.temp:temperature eg.kueche.stellantrieb.sued:valve
attr eg.kueche.sued.regler room eg.kueche
attr eg.kueche.sued.regler pidActorInterval 300
attr eg.kueche.sued.regler pidActorTreshold 5
attr eg.kueche.sued.regler pidActorValueDecPlaces 0
attr eg.kueche.sued.regler pidFactor_I 0.2
attr eg.kueche.sued.regler pidFactor_P 50
attr eg.kueche.sued.regler event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0
attr eg.kueche.sued.regler event-min-interval actuation:1800,actuationCalc:1800,delta:1800,desired:1800,measured:1800,p_d:1800,p_i:1800,p_p:1800
attr eg.kueche.sued.regler group Heizungssteuerung
define FileLog_eg.kueche.sued.regler FileLog ./log/eg.kueche.sued.regler-%Y.log eg.kueche.sued.regler
attr FileLog_eg.kueche.sued.regler logtype text
attr FileLog_eg.kueche.sued.regler room eg.kueche
define SVG_eg.kueche.sued.regler SVG FileLog_eg.kueche.sued.regler:PID:CURRENT
attr SVG_eg.kueche.sued.regler label "eg.kueche.sued.regler Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_eg.kueche.sued.regler room eg.kueche
---
b.) Ein Raum, ein Thermostat, Heizkreise auf Wunsch der Bewohnerin manuell (ohne actor) gesteuert, soll aber trotzdem in HCS berücksichtigt werden
FHT8V 1534 existiert nicht
define dg.zimmer.stellantrieb FHT8V 1534
attr dg.zimmer.stellantrieb IODev CUL_0
attr dg.zimmer.stellantrieb room dg.zimmer
define FileLog_dg.zimmer.stellantrieb FileLog ./log/dg.zimmer.stellantrieb-%Y.log dg.zimmer.stellantrieb
attr FileLog_dg.zimmer.stellantrieb logtype text
attr FileLog_dg.zimmer.stellantrieb room dg.zimmer
define dg.zimmer.temp LaCrosse 06
attr dg.zimmer.temp IODev JeeLink_0
attr dg.zimmer.temp room dg.zimmer
define FileLog_dg.zimmer.temp FileLog ./log/dg.zimmer.temp-%Y.log dg.zimmer.temp
attr FileLog_dg.zimmer.temp logtype text
attr FileLog_dg.zimmer.temp room dg.zimmer
define dg.zimmer.regler PID20 dg.zimmer.temp:temperature dg.zimmer.stellantrieb:valve
attr dg.zimmer.regler room dg.zimmer
attr dg.zimmer.regler pidActorInterval 300
attr dg.zimmer.regler pidActorTreshold 5
attr dg.zimmer.regler pidActorValueDecPlaces 0
attr dg.zimmer.regler pidFactor_I 0.2
attr dg.zimmer.regler pidFactor_P 50
attr dg.zimmer.regler event-on-change-reading actuation:1,actuationCalc:0.5,delta:0.2,desired,measured:0.2,p_d:0.1,p_i:1.0,p_p:1.0
attr dg.zimmer.regler event-min-interval actuation:1800,actuationCalc:1800,delta:1800,desired:1800,measured:1800,p_d:1800,p_i:1800,p_p:1800
attr dg.zimmer.regler group Heizungssteuerung
define FileLog_dg.zimmer.regler FileLog ./log/dg.zimmer.regler-%Y.log dg.zimmer.regler
attr FileLog_dg.zimmer.regler logtype text
attr FileLog_dg.zimmer.regler room dg.zimmer
define SVG_dg.zimmer.regler SVG FileLog_dg.zimmer.regler:PID:CURRENT
attr SVG_dg.zimmer.regler label "dg.zimmer.regler Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_dg.zimmer.regler room dg.zimmer
-------------------------------------------------------------------
!!!
An dieser Stelle Dank an alle die sich die Mühe machen Ihre Erfahrungen zu teilen. Special thanks to haifischjunge!
Ich habe (und werde sicher in der Zukunft) davon profitieren, dass die vielen "FHEM-Bastler" nicht nur ihr eigenes Zeug auf die Reihe kriegen, sondern die Arbeit ins zusammenstellen und schreiben ihrer Erfahrungen stecken.
!!!
Hallo zusammen,
ich hatte dieselbe Notwendigkeit (außer, daß ich eine Gastherme steuern muß) und habe deswegen das Modul HCS um PID20 erweitert, ohne die anderen zu entfernen.
Ich würde gerne die Änderungen dem maintainer zur Verfügung stellen, wie mache ich das am besten?
Gruß, Bernd
Da mich ein paar PNs erreicht haben, stelle ich das erweiterte 59_HCS.pm hier mal ein.
Die Anpassungen sind einfach zu finden - nach PID20 suchen.
Gruß,
Bernd
Danke Bernd!
Hoffentlich wird es nicht durch die Updates wieder mit der alten Version überschrieben.
Ist jetzt auch eingecheckt, sollte also nicht mehr überschrieben werden.
Gruß, Bernd
Gesendet von meinem E5823 mit Tapatalk