:: fischer-net.de

Wer ist Online

Aktuell sind 20 Gäste und keine Mitglieder online

Tagcloud

FHEM

fhem

FHEM ist ein auf Perl basierender Server für die Hausautomation. FHEM unterstützt die Steuerung von Lampen, Heizungen und vielem mehr. Dabei unterstützt FHEM eventbasierende Aufzeichnungen wie z.B. Temperatur- und Luftfeuchtemessungen oder Energieverbrauch. Die Bedienung erfolgt über diverse Web-Frontends, telnet, TCP/IP oder über eine Command-Line.

FHEM unterstützt eine Vielzahl an Hardware: FS20, Homematic, KNX, HMS, 1-Wire, EnOcean, X10 und vieles mehr.

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.

Im Artikel FHEM update (release candidate) berichtete ich über die neue Update-Funktion in FHEM.

Nach anfänglichen kleineren "Unklarheiten" bzgl. der künftigen Ordnerstruktur einer FHEM Installation, wurde der neue Update-Befehl nun mit der am Sonntag, den 28.10.2012 veröffentlichten Version FHEM 5.3 freigegeben.

Im obigen Artikel hatte ich schon einen ersten Ausblick auf die neuen Funktionen gegeben, die auch so in die Final-Release eingeflossen sind. Daher verweise ich an dieser Stelle auf die offizielle Dokumentation innerhalb von FHEM.

Weiterlesen ...

Die freie Haussteuerungssoftware FHEM setze ich nun schon seit 2008 ein. In den vergangenen Jahren habe ich meine Hausautomation immer weiter ausgebaut und mittlerweile annähernd 100 Aktoren oder Sensoren im Einsatz. Ab und an trage ich mit eigenen Modulen oder Funktionen auch zur Entwicklung von FHEM bei.

Nun kam mir die Tage die Idee, dass ich FHEM doch irgendwie mit meinen IP-Kameras verbinden könnte. Ich wollte erreichen, das mir Zeit- oder Ereignisgesteuert ein "Schnappschuß" einer Kamera per eMail gesendet wird. Aus dieser Idee entstand das neue Modul IPCAM.

Weiterlesen ...

Im Artikel FHEM auf Synology Diskstation berichtete ich über noch fehlende Perl-Module für die volle FHEM Funktionalität auf der Synology DiskStation / RackStation. Es hat mehrere Wochen gedauert, bis ich Perl endlich mit allen notwendigen Modulen kompilieren konnte. 

Das Synology Paket (spk) für Perl enthält nun die Version 5.16.0, unter anderem auch mit SSL Unterstützung. So kann nun in FHEM SSL verwendet werden, Weather funktioniert und weitere Module sollten auch ohne Probleme laufen. Mit den von mir bereitgestellten Kernel-Treibern (cdc-acm, ftdi_sio, pl2303, usbserial) kann diverse Hardware wie z.B. CUL, FHZ1000, FHZ1300, 1-Wire Busmaster, TUL u.a. zum Einsatz kommen.

Weiterlesen ...

Powered by ...

 

 

reichelt elektronik – Elektronik und PC-Technik