:: fischer-net.de

Wer ist Online

Aktuell sind 67 Gäste und keine Mitglieder online

Tagcloud

Der Winter naht und was bewegt Einen mehr als sich mal wieder etwas Gedanken über weitere Kostensenkungen zu machen. In den Artikeln Heizkosten sparen mit FS20 und Heiz- und Warmwasserkreis überwachen berichtete ich über mögliche Einsparungpotentiale sowie über einen Aufbau zur Auswertung der gemessenen Werte im Zusammenhang mittels 1-Wire Hardware. 

Angeregt durch einen Beitrag im FHEM-Wiki habe ich die dort beschriebene Idee aufgegriffen und daraus ein neues Modul für FHEM entwickelt.

 

Heating Control System

Das Modul HCS (Heating Control System) greift unmittelbar (so fern die Möglichkeit vorhanden ist) in die Steuerung einer bestehenden Zentralheizung ein. Dazu durchsucht das Modul HCS nach einem frei definierbarem Interval die FHEM-Installation auf vorhandene FHT80b (Funk-Heizungsregelung FS20) oder HM-CC-TC (Funk-Haussteuerungssystem HomeMatic) Thermostate und liest aus diesen die jeweils gesetzten Öffnungsgrade der verbundenen Heizungsventile FHT8V bzw. HM-CC-VD aus.

Anhand der gesammelten Informationen wird ausgewertet, ob bei einem oder mehreren Ventilantrieben ein Wärmebedarf vorhanden ist. Über frei definierbare Schwellenwerte kann konfiguriert werden welcher Öffnungsgrad als Wärmebedarf zu interpretieren ist. Dabei berücksichtigt das Modul HCS auch die so genannte Hysterese.

Update: Ich habe das Modul HCS inzwischen um weitere Funktionen ergänzt. Neben dem hier beschriebenen Modus zur Überwachung der Ventilstellungen, kann nun auch alternativ die Überwachung und Steuerung über angeforderte und gemessene Raumtemperaturen vorgenommen werden. Einige Einstellungen aus diesem Beispiel haben sich verändert. Siehe dazu den Artikel FHEM Modul HCS überarbeitet.

 

Hysterese

Der Duden beschreibt die Bedeutung von Hysterese wie folgt:

Das Zurückbleiben einer Wirkung hinter dem jeweiligen Stand der sie bedingenden veränderlichen Kraft.

Die Physik beschreibt das wie folgt:

Verzögerte Wirkungsänderung nach Änderung der Ursache.

Soweit alles klar?

Auf deutsch: Ist es draußen zu kalt, dann wird eine Heizung über eine Temperaturregelung eingeschaltet. Ist es draußen wieder warm, dann sorgt die Regelung dafür, das die Heizung wieder ausgeschaltet wird. Würde in der Heizungssteuerung nun die Ein- und Ausschalttemperatur identisch sein, also z.B. in beiden Fällen auf 21° Celsius stehen, wüßte der Temperaturregler nicht ob er die Heizungsanlage nun ein- oder ausschalten soll. Schlimmstenfalls würde es zu einem ständigem Wechsel zwischen An und Aus führen, was letztlich weder für die Regelung noch für die Heizung von Vorteil wäre.

Um möglichen Schäden vorzubeugen (ständiger Wechsel zwischen Ein und Aus verträgt auf Dauer keine Heizungsanlage bzw. -Regelung), bedarf es also einer unterschiedlichen Temperatur für das Einschalten als auch für das Ausschalten der Anlage. Und diese Differenz zwischen beiden Werten bezeichnet man als Hysterese.

Hier kommt nun das FHEM Modul HCS wieder ins Spiel.

 

Festlegen der Werte im Modul HCS

Bei der Definition eines Gerätes vom Typ HCS in FHEM erwartet dieses neben der Angabe eines zu schaltenen Gerätes (muß vorher angelegt werden!) noch die Angabe von drei weiteren Werten: einen Intervall zur Abfrage der Ventilantriebe in Minuten, den Öffnungsgrad des Ventilantriebs für Wärmebedarf sowie den Öffnungsgrad des Ventilantriebs wenn kein Wärmebedarf mehr anliegen soll (wir erinnern uns: Hysterese!).

Ein Beispiel (Achtung: die Definition hat sich verändert! Siehe dazu den Artikel FHEM Modul HCS überarbeitet.):

define heatDemand HCS KG.hz.LC.SW1.01 10 40 35

Ein virtuelles Gerät namens "heatDemand" vom Typ "HCS" wird angelegt und soll das Gerät (den Funk-Schalter, z. B. HM-LC-Sw1-SM) "KG.hz.LC.SW1.01" schalten. Die Abfrage der Thermostate soll im Abstand von "10" Minuten erfolgen, Wärmebedarf liegt an, wenn ein oder mehrere Ventiantriebe größer / gleich "40" Prozent geöffnet sind, es liegt kein Wärmebedarf an, wenn ein zuvor anforderndes Ventil wieder unter "35" Prozent gesunken ist.

 

Das Modul HCS im Detail

Nimmt man die obigen Werte für das folgende Beispiel als gegeben, so verhält sich das virtuelle Gerät "heatDemand" wie folgt:

Alle 10 Minuten wird die FHEM Installation durchlaufen und vorhandene Geräte ausgewertet. Es können jederzeit neue zu berücksichtigende Geräte hinzugefügt werden ohne das die Konfiguration dieser Überwachung geändert werden muss. Ein Blick in das Logfile könnte das folgende (hier vereinfachte) Bild wiedergeben:

HCS heatDemand EG.bz.CC.TC.01: 0%
HCS heatDemand EG.ez.CC.TC.01: 8%
HCS heatDemand EG.kz.CC.TC.01: 12%
HCS heatDemand EG.sz.CC.TC.01: 0%
HCS heatDemand EG.wz.CC.TC.01: 42%
HCS heatDemand OG.bz.CC.TC.01: 0%
HCS heatDemand OG.ku.CC.TC.01: 0%
HCS heatDemand OG.kz.CC.TC.01: 0%
HCS heatDemand OG.sz.CC.TC.01: 0%
HCS heatDemand OG.wz.CC.TC.01: 38%
HCS heatDemand ignore_2ec5: 0% (ignored)
HCS heatDemand Found 11 Device(s): 10 FHT, 1 HM-CC-TC. demand: 1, idle: 9, ignored: 1, excluded: 0, overdrive: no

CUL_HM set KG.hz.LC.SW1.01 on

Es wurden insgesamt 11 Geräte gefunden. 10 Geräte sind vom Typ "FHT", 1 Gerät ist ein "HM-CC-TC".

Obwohl in diesem Beispiel 4 Ventilantriebe geöffnet sind, wird nur 1 Gerät (EG.wz.CC.TC.01) als "Wärmebedarf anforderndes Gerät" (demand) aufgeführt. An dieser Stelle greift nun der definierte Schwellenwert von 40%. 9 weitere Ventilantriebe werden als "idle", also kein "Wärmebedarf vorhanden" geführt. Der gefundene Ventilantrieb namens "ignore_2ec5" wird (wie der Name es schon verrät) ignoriert; d.h. dieses Gerät kann niemals einen Wärmebedarf anfordern und es gibt keine auszuschließenden (excluded) Ventilantriebe.

Anhand dieser Auswertung wird unmittelbar im Anschluß des obigen Durchlaufs das im "define" festgelegte Gerät (KG.hz.LC.SW1.01) geschaltet. Alle Werte, sowie die Information ob ein Ventilantrieb Wärmebedarf (immer in Hinblick auf die vorher definierten Schwellenwerte) anfordert, werden je gefundenem Thermostat (FHT / HM-CC-TC) gespeichert.

Nehmen wir nun an, dass nach weiteren 10 Minuten das Thermostat "EG.wz.CC.TC.01" auf 37% gefallen ist (bei den anderen Thermostaten wird in diesem Beispiel davon ausgegangen, das die Werte unverändert blieben). Obwohl der Schwellenwert zum Wärmebedarf von 40% nun unterschritten ist, würde folgende Auswertung dabei rauskommen:

HCS heatDemand Found 11 Device(s): 10 FHT, 1 HM-CC-TC. demand: 1, idle: 9, ignored: 1, excluded: 0, overdrive: no

CUL_HM set KG.hz.LC.SW1.01 on

Was ist nun passiert? Stichwort: Hysterese!

Erst wenn das Thermostat meldet, das der Ventilantrieb kleiner 35% geöffnet ist, würde der Schalter "KG.hz.LC.SW1.01" wieder ausgeschaltet werden.

 

Overdrive Mode 

Dem aufmerksamen Leser ist vielleicht ein Eintrag aufgefallen, der bisher unerwähnt blieb: 

HCS heatDemand Found 11 Device(s): 10 FHT, 1 HM-CC-TC. demand: 1, idle: 9, ignored: 1, excluded: 0, overdrive: no

"overdrive: no": Das Modul HCS unterstützt einen so genannten Overdrive, also Übersteuerungsmodus. Neben den Schwellenwerten für die Ventilstellungen kann darüber hinaus noch ein Temperaturfühler  (z. B. HM-WDS10-TH-O oder HM-WDS40-TH-I) angegeben werden, welcher wiederum eigene Schwellenwerte berücksichtigt. Dieser Temperaturfühler entspricht einem vorher zu definierenden Gerät in FHEM, der dann mittels Attribut dem virtuellem Gerät "heatDemand" samt weiterer benötigten Attribute hinzugefügt wird.

Beispiel (Achtung: die Definition hat sich verändert! Siehe dazu den Artikel FHEM Modul HCS überarbeitet.):

define heatDemand HCS KG.hz.LC.SW1.01 10 40 35
attr heatDemand sensor KG.sr.WDS.TH.01
attr heatDemand sensorReading temperature
attr heatDemand sensorThresholdOff 21
attr heatDemand sensorThresholdOn 15

Der Sensor "KG.sr.WDS.TH.01" speichert die gemessene Temperatur im "Reading" des Sensors  "temperature". Damit das Gerät "heatDemand" diesen Wert auslesen kann, benötigt es diese Information im Attribut "sensorReading". Wenn die gemessene Temperatur 21° Celsius (Attribut "sensorThresholdOff") erreicht, soll ausgeschaltet und beim Unterschreiten von 15° Celsius (Attribut "sensorThresholdOn") eingeschaltet werden. Diese Konfiguration "übersteuert" ("overdrive") also die vorab erklärte Vorgehensweise, nur über den Öffnungsgrad der Ventilstellungen zu schalten. 

Im Übrigen kann über die Attribute "deviceCmdOn" und "deviceCmdOff" auch jeweils das Kommando zum Ein- und Ausschalten für das zu schaltende Gerät hinterlegt werden (default: "on" und "off").

Genug der Theorie! Weiterführende Information zum Modul HCS ist der Dokumentation von FHEM zu entnehmen.

 

Praktischer Aufbau

Nachdem ich im Vorfeld die Funktionsweise des Moduls HCS ausreichend beschrieben habe, möchte ich dem interessierten Leser nicht vorenthalten, wie ich die Theorie in die Praxis umgesetzt habe. 

Der folgende Aufbau erfordert einen Eingriff in die Steuerung der Heizungsanlage. Unter anderem wird hier mit Netzspannung von 230 V gearbeitet. 

Ich weise hiermit ausdrücklich auf die damit verbundenen Gefahren (Stromschlag) hin und übernehme keinerlei Haftung bei evtl. auftretenden Schäden durch den Nachbau!

 

Vaillant atmoTEC classic 

Für die zentrale Heizungssteuerung setze ich ein "Gas-Wandheizgerät" vom Typ Vaillant atmoTEC classic VC 194/3-C in Verbindung mit einem externen Brauchwasserspeicher ein. Nach ausgiebigem Studium der Installations- und Wartungsanleitung wurde ich auf die Klemmen 3-4-5 aufmerksam.

Klemme 3-4-5Klemme 3-4-5Zitat aus der Anleitung:

Hinweise zum Anschluss externer Zubehöre und Reglergeräte

Wird ein Zubehör an die Klemmen 3-4-5 angeschlossen, muss eine vorhandene Brücke am jeweiligen Stecker entfernt werden. ..., externe Regelgeräte und Ähnliches müssen über potentialfreie Kontakte angeschlossen werden. Um Pumpenbetriebsart "weiterlaufende Pumpe" für VRC-MF-TEC bzw. Mehrkreis-Regler zu erreichen, muss die Pumpennachlaufzeit d.1 auf 15-20 Minuten eingestellt werden.

Daraus entnahm ich, dass die Klemmen 3-4-5 genau dem entsprechen was ich für meine Steuerung benötige. Im Diagnosemodus des Gerätes kann zusätzlich der anliegende Zustand der Klemme 3-4 (die 5 wird hier nicht benötigt!) mittels Diagnosecode abgefragt werden:

d.8 Raumthermostat an Klemme 3-4

0 = geöffnet (kein Heizbetrieb)

1 = geschlossen (Heizbetrieb)

Darüber hinaus entnehme ich dem obigen Hinweis, das die interne Heizungspumpe ebenfalls damit gesteuert werden kann. Daraus schließe ich, das die Pumpe bei der Stellung 0 außer Betrieb ist. Dies würde demnach auch noch Einsparungen beim Stromverbrauch mit sich bringen. Allerdings habe ich diese noch nicht verifiziert!

 

HomeMatic Funk-Schaltaktor

HM-LC-Sw1-SMHM-LC-Sw1-SMAn diese Klemme habe ich einen HomeMatic Funk-Schaltaktor 1-fach vom Typ HM-LC-Sw1-SM angeschloßen. Dieser Schaltaktor ist für die Aufputzmontage ausgelegt und ist obendrein auch wassergeschützt (was für mich eigentlich nicht der ausschlaggebende Punkt war, sondern dass das Gehäuse auch weitgehend Staubdicht ist). Da das Gehäuse in sich geschloßen ist, ich aber mir die Möglichkeit offen halten wollte den Schalter auch vor Ort manuell zu schalten, bohrte ich kurzer Hand ein ca. 5-6 mm großes Loch in die transparente Kunststoffabdeckung. Somit kann ich den innenliegenden Taster auch mit einem länglichen Gegenstand schalten ohne vorher die verschraubte Abdeckung abnehmen zu müssen. Die Bohrung habe ich im Anschluß mit einen "Stopfen" zur Abdeckung von Bohrlöchern in Schränken wieder verschloßen. Möchte ich manuell schalten, kann dieser "Stopfen" leicht entnommen werden.

Über ein internes Relais läßt sich an diesem Funk-Schaltaktor ein Verbraucher (in meinem Fall ein "vorgetäuschtes" Raumthermostat) schalten.

Der Funk-Schaltaktor wird wie jedes andere HomeMatic Gerät mit FHEM gepaart und konfiguriert. Dieser Schalter entspricht bei mir dem "zu schaltendem Gerät" in dem obigen Beispiel des Moduls HCS. Wird über das Modul HCS Wärmebedarf angefordert, sendet das Modul an diesen Schaltaktor den "on" Befehl, welcher dafür sorgt, das Klemme 3-4 gebrückt ist, also Strom anliegt. Die Heizung wechselt in den Heizbetrieb. Liefert die Auswertung der Ventilstellungen durch das Modul, das kein Wärmebedarf vorhanden ist, sendet das Modul den "off" Befehl; die Heizung stellt den Heizbetrieb ein.

Für beide Schaltzustände benötigt man innerhalb der FHEM Konfiguration kein "notify device". Das übernimmt allein das Modul HCS.

 

HomeMatic Statusanzeige

StatusanzeigeStatusanzeigeMan(n) hat es gerne bunt! Also überlegte ich mir wie ich den Zustand der Heizung visualisieren konnte. Und da ich zur Zeit noch an einem anderen Modul für FHEM arbeite, das ebenfalls eine Statusanzeige benötigt, war die HomeMatic Statusanzeige genau wie für meine Anforderung geschaffen.

Auch hier muss die Statusanzeige wie jedes andere HomeMatic Gerät vorab mit FHEM gepaart und konfiguriert werden.

Damit nun der Zustand der Heizung mittels der LEDs angezeigt wird, bedarf es noch zweier notify Definitionen:

# LED 16
define EG.fl.OU.LED16.01.16.n1 notify KG.hz.LC.SW1.01:on set EG.fl.OU.LED16.01.16 led green
define EG.fl.OU.LED16.01.16.n2 notify KG.hz.LC.SW1.01:off set EG.fl.OU.LED16.01.16 led red

Die obigen Definitionen "belauschen" den Funk-Schaltaktor und je nach Zustand wird die LED an der Statusanzeige geschaltet: Grün, wenn die Heizung an ist, Rot wenn sie aus ist.

Et voilà - fertig ist die (erweiterte) Heizungssteuerung mit Statusanzeige.

Bewertung insgesamt (0)

0 von 5 Sternen
Kommentar hinzufügen
  • Gast - Sven

    Hallo Martin, <br />schönes Projekt, vielen Dank für die ausführliche Beschreibung! <br />Könntest Du bitte noch den Link der Homematic-Statusanzeige korrigieren, der zeigt momentan auf den Funk-Schaltaktor,<br />mich würde diese Anzeige sehr interessieren,<br />Viele Grüsse<br />Sven

  • Hallo Sven,<br /><br />vielen Dank für den Hinweis!<br /><br />Es war wohl dann doch etwas zu früh am Morgen für einen fehlerfreien Artikel (siehe Uhrzeit neben der Statusanzeige).<br /><br />Ist nun korrigiert.<br /><br />Gruß Martin

  • Gast - Christian Wagner

    Hallo,<br />schon lange beschäftige ich mich mit einer auf der Raumanforderung basierenden Heizungssteuerung, die eine Aussensteuerung überflüssig macht (die in meiner anlage auch gar nicht vorgesehen ist). HCS ist vier Fünftel des Weges, wenn ich das mal so sagen darf. Ich würde nämlich gerne auch noch die Ventilstellung bzw. den Unterschied der gemessenen und der gewünschten Temperatur zur Steuerung des Vorlaufes benutzen. Wenn Ventile auf 80 % und mehr gehen oder die Temperatur noch 3 Grad entfernt ist, würde ich den von einem Temperatur-Funkfühler gestaltete Brennersteuerung eben auf einen höheren Vorlauf switchen. Sobald die Ventile beginnen zu schliessen bzw. die Temp-Differenz kleiner wird, würde ich den Vorlauf wieder zurücknehmen - das wird dann ein Regelkreis. Was mir also konkret fehlt, ist das HCS mir jeweils auch die größte Ventilstellung/Temperaturdifferenz zurückmeldet, die ich mit der übergebenen aus dem vorherigen Lauf vergleichen muss. Was kann man da tun?

  • Gast - Thomas

    Hallo.<br />Da du die Therme mit 3-4 ein und ausschaltest hast du nicht das Problem das die Therme immer mit voller Leistung heizt.<br />Mit einem Vaillant Thermostat zb.: würde sie auch mit weniger Energie heizen wenn es nicht so kalt wäre.<br />Gruß Thomas

  • Gast - Henno

    @Thomas<br />Ich habe meine VCW 194/3 genauso angeschlossen.<br />Wieso sollte der Gasverbrauch unterschiedlich sein?<br />Von Werk ist der Kontakt ja überbrückt.<br /><br />Welche Heizung hast du? <br />Ist da wirklich ein unterschied zu merken ?<br />Was hast du bei d. 0 eingestellt ?

  • Gast - Henno

    Nach ausführlichen Tests heute konnte ich keinen unterschied zwischen dem vaillant raumthermostat An 7 8 9 und der Steuerung über 3 4 5 finden

  • Gast - Thomas

    Ich habe einen VRT-330 Thermostat der nicht einfach heizen oder nicht heizen schickt.<br />Wenn die Raumtemperatur zu niedrig <br />ist, hat der NTC einen hohen Widerstandswert und die an die Therme <br />gesendete Spannung an Pin 8 ist niedrig ( ab ca. 10 Volt). Die Therme <br />startet und heizt mit großer Leistung. Je wärmer dann der Raum wird, <br />desto mehr steigt die Spannung an und die Therme regelt die Leistung <br />runter.<br /><br />http://www.mikrocontroller.net/topic/126250#1668496

  • Gast - Henn

    Hi<br /><br />Das kann mein Vaillant VRT - PFS auch aber es macht keinen unterschied.<br /><br />Ich habe d.0 auf 8 eingestellt.<br />So taktet der Brenner nicht so oft.<br /><br />Bei beiden Schaltungen verbrauche ich ca 0,028 m³ pro Minute.<br /><br />Warmwasser (Durchlauferhitzer) mit Volllast komme ich auf 0,053 m³/min<br /><br />Aber selbst wenn ich d.0 auf 20 Stelle was der Max wert ist komme ich nur auf 0,04m³/min<br /><br />Dazu muss ich noch sagen das mir ein bekannter Heizungsbauer den Gasdruck ordentlich eingestellt hat.<br />Vorher Lief der Brenner eigentlich immer auf Vollast.<br /><br /><br />Vorher habe ich gespart indem es kühl war.<br />Jetzt ist es da wo, wann es grade nötig ist warm und ich brauche kaum mehr Gas als vorher.<br />Zwischen 80 und 120 m³ pro Monat was denke ich für ein Haus BJ 56 mit 85m² OK ist.

  • Gast - Josh

    Hallo,<br />super Projekt, läuft nun fast perfekt. Gibt es eigntlich die Möglichkeit das Gegenteil von idleperiod einzustellen, sozusagen eine Mindestlaufzeit für eine Pumpe/ Heizung, damit die nicht immer Taktet?<br /><br />Gruß<br />Jörg

  • Gast - Henno

    Ich mache das mit "set heizung on-for-timer xxx"<br /><br />So stelle ich auch sicher das wenn der Server mal abschmieren sollte, die Heizung nicht weiter läuft

  • Gast - Rammelt

    Ich benutze jetzt seit 2 Wochen das HCSl bin auch sehr zufrieden. Allerdings ist mir aufgefallen das Meine Heizung (Vaillant) kein Warmwasser Produziert wenn alle auf Temperatur sind & das Modul den Kontakt öffnet. Habe es jetzt erst einmal über den Overdrive gelöst. indem ich sage wenn die Temperatur im Kessel unter 50 Grad sinkt schalte ein (ThresholdOn 50). Ist zwar nicht schön aber es geht erst einmal. Um den Heizkreislauf zu unterbrechen habe ich ein zweites HCS laufen was etwas niedriger eingestellt ist um bei erreichen der eingestellten Temperaturen wie Kreislaufpumpe abzuschalten. Gibt es die Möglichkeit das noch anders zu lösen? <br />So das man sagen kann ich möchte das wenn zwischen bzw. 6-22uhr die Wassertemperatur unter 50 grad sinkt das Modul die Heizung trotzdem einschaltet. So wie einen zweiten Ausgang der die Pumpe steuert.

  • Gast - Rammelt

    zB. <br />Wenn Raumtemperatur/Ventilstellung erreicht dann schalte Ausgang 1 off<br />Wenn Ausgang 1 off und Warmwasser über den eingestellten wert dann Schalt Ausgang 2 off

  • Gast - Julius

    Moin,<br /><br />hast Du außer dem HM-LC-Sw1 noch ein weiteres regelgerät angeschlossen? Z.b. einen Außenfühler oder einen Wandthermostaten?<br />Wenn ja beeinflussen sich diese Schalter mit deinem FHEM irgendwie?<br /><br />Und hattest Du mit deiner Schaltung Probleme bei der jährlichen Wartung/Kontrolle vom Schornsteinfeger?

  • Gast - Henno

    Hi,<br /><br />nein ich habe außer dem Schalter nichts an meiner Heizung.<br />FHEM steuert alles alleine.<br /><br />Der Schornsteinfeger schaut ja nicht in die Heizung rein.<br />Ich muss nur immer ein zwei Heizkörper manuell aufdrehen damit er richtig messen kann.

  • Gast - Julius

    Moin,<br /><br />vielen Dank für deine Antwort.<br /><br />Eine Frage stellt sich mir noch, von wo beziehst Du die Versorgungsspannung für den HM-LC-Sw1-SM?

  • Gast - Henno

    Von den Anschlussklemmen der Heizung.<br />Die bekommt ja auch 230V <br />Da passt problemlos eine zweite Litze rein.<br /><br />So ist der komplette Schalter in der Heizung und der Schornsteinfeger kann ihn gar nicht sehen.

Powered by ...

 

 

reichelt elektronik – Elektronik und PC-Technik