OpenHAB als Heizungsregelung: Teil 1 – Hardware

OpenHAB ist in Java geschrieben, es läuft also auf jedem Rechner, der Java beherrscht. Außerdem ist es extrem kompatibel, es kommuniziert mit allen Hausautomations-Systemen, die man sich so vorstellen kann (ob Homematic, Waterkotte oder KNX).

Davon brauche ich bisher nicht so viel, denn ich will ja nicht mein Hausautomatisieren, sondern nur die Heizung.

Erstens muss ich an verschiedenen Stellen die Temperatur messen: Meine Temperatursensoren sprechen OneWire (oder 1Wire).

Dann muss ich den Brenner gelegentlich anschalten oder einen Mischer verstellen oder eine Pumpe aktivieren: Diese Kommandos sind von einfacher An-/Aus-Natur, sie können also über einfache Digitalanschlüsse des Computers (sogenannte GPIO-Pins = General Purpose Input Output Pins) jeweils ein Relais schalten.

OpenHAB-Screenshot

Die Außentemperatur brauche ich gar nicht messen, weil ich sie über das Internetabfrage. Und mit mir (und ganz selten den anderen Familienmitgliedern) unterhält sich OpenHAB über eine Webseite im Browser oder eine App (die es für Android und iOS gibt).

Heizzeiten-Kalender

Ganz neu und noch im Test: Die Zeitschaltuhr, die von Tag- auf Nachtbetrieb umschaltet, wird vom Kalender übernommen. Sprich, ich trage einfach in den Kalender meines Computers, Tablets oder Smartphones ein, wann die Umschaltung erfolgen soll. Da mein Kalender sowieso auf einen Server übertragen wird (bei mir steht der Server zu Haus, aber es kann auch ein Google-Server oder sonst ein CalDAV-fähiger Server sein), kann OpenHAB auf diesem Server die Schaltzeiten abfragen, auch wenn mein Computer aus ist.

Wie, Computer aus? Aber OpenHAB selbst muss doch immer laufen! Klar, aber für OpenHAB ist ein Laptop oder ein ausgewachsener Computer übertrieben, und viel zu verschwenderisch mit dem elektrischen Strom. Viele lassen OpenHAB auf einem kleinen Raspberry Pi laufen, andere nehmen einen von der Konkurrenz, z.B. Odroid, oder Beagleboard, oder Banana Pi, oder Gooseberry, oder Hackberry, oder Olinuxino, oder Cubieboard, oder … (siehe dazu in der englischen Wikipedia )
Ich habe mich (Anfang 2014) für Olinuxino entschieden, weil der Rechner seinerzeit nicht zu teuer war und auch die Hardware Open Source ist, und er über ganz viele digitale Anschlüsse verfügt.

Olinuxino Micro A20 im Gehäuse

Und jetzt wird es detailliert! Welche Hardware ist genau im Einsatz?

  • der Rechner: ein Olinuxino Micro A20, dazu ein 12V-Steckernetzteil mit Hohlstecker, eine 1GB-MicroSD-Karte und eine 2,5”-SATA-Festplatte

  • als Temperatursensoren sind OneWire (1Wire) Dallas 18B20 (Datenblatt ) im Einsatz
Dallas 18B20
  • ein DS 2482-100S OneWire-zu-I2C-Übersetzer (Datenblatt ), da der ARM-Prozessor des Rechners nicht wirklich OneWire spricht (den Chip gibt es leider nur als SMD-Bauteil mit winzigen Beinchen, also Brille zum Löten nötig…)

  • ein Relais-Board mit vier Relais
Mischer und Umwälzpumpe
Junkers Therme
  • die alte Heizung ist eine atmosphärisch arbeitende 24kW-Gastherme von Junkers (Baujahr 1998?)
  • ein elektrisch (230V) arbeitender Mischer Oventrop Regumat M3-180
  • eine moderne Umwälzpumpe Grundfos Alpha 2 25-40

Auf der Heizungsseite haben wir einen ca. 300 Liter fassenden Speicher, der von der Therme ab und zu aufgeheizt wird. Dadurch kann die Therme, die ich mit geringstmöglicher Leistung laufen lasse, ca. 1 Stunde am Stück laufen, dann ist der Speicher von 42°C auf 70°C aufgeheizt. Das ist gut für den Wirkungsgrad und auch für die Lebensdauer der Therme, die ja nicht ständig an- und ausgehen muss.

Schema Heizung

Zum Heizen wird das Wasser in den Heizkörpern von der Grundfos-Pumpe immer im Kreis gepumpt, wobei es am Mischer vorbeikommt. Der Mischer kann jetzt, wenn das Wasser im Kreislauf zu kalt ist, ein bisschen Wasser aus dem Speicher dazumischen, so dass die Heizkörper in den Räumen schön warm werden.

Ich muss also die Temperatur im Wasserkreislauf messen, das mache ich zweimal, einmal vor dem Mischer, also da, wo das Wasser abgekühlt aus den Heizkörpern zurückkommt (das nennt man Rücklauf – und da muss ich nicht unbedingt messen), und einmal nach dem Mischer, wo es dann meist etwas wärmer ist, weil der Mischer ja heißes Speicherwasser dazugetan hat (das nennt man Vorlauf).

Ich muss die Temperatur irgendwo in den Zimmern messen, damit ich weiß, ob heißes Wasser in die Heizkörper fließen soll.

Und ich muss die Temperatur im Speicher messen, denn wenn der zu kalt ist, kann der Mischer sich kein heißes Wasser holen. Dann muss die Therme wieder anspringen und den Speicher aufheizen.

Soweit zur Theorie. Kommen wir nun zur Praxis.

Der Aufbau der Hardware gestaltet sich relativ einfach. Richtig löten musste ich nur einmal, nämlich um den SMD-Chip DS 2482-100S anzuschließen. Dafür habe ich mir eine spezielle kleine Platine bestellt, die genau dafür vorgesehen ist, nämlich um die winzigen Beinchen eines SMD-Bauteils nach außen zu leiten zu vernünftig handhabbaren Anschlüssen (SMD-Adapter-Platine).

An diese musste ich mit einem 3-adrigen Kabel die ganzen Temperatursensoren 18B20 anschließen, und zwar alle parallel: Alle 0V-Beinchen zusammenschließen und an den entsprechenden Anschluss an den DS 2482-100S, alle V+-Beinchen an die Spannungsversorgung, und alle data-Beinchen zusammenschließen und wieder an den DS 2482-100S. Dann will der Hersteller noch einen (sogenannten Pull-Up-) Widerstand von 4,7kOhm zwischen V+ und data haben. Fertig ist die OneWire-Seite!

Als Steckverbinder für die Temperatursensoren 18B20 benutze ich übrigens Servo-Steckerchen aus dem Modellbau (ich habe dafür die passende Crimp-Zange). Empfehlenswert finde ich auch Stereo-Miniklinken-Stecker (3,5mm Miniklinke Stereo), dafür gibt es sogar Parallelschaltungen fertig zu kaufen, nämlich um mit mehreren Leuten gleichzeitig an einem Gerät Kopfhörer zu hören.


Die I2C-Seite des DS 2482-100S schließe ich mit Brücken(Jumper-)kabeln an die dafür vorgesehenen Ports des Olinuxino-Boards: Pin 5 und Pin 7 des GPIO-2-Ports. Spannung kriege ich direkt daneben an Pin 3 (3,3V; an Pin 1 liegt immer 5V an) und Pin 2 (Masse, auch an Pin 4 vorhanden).

Ebensolche Brückenkabel nehme ich, um das Relaisboard mit dem Olinuxino zu verbinden. Ich wähle dafür an GPIO-1 die Pins 5, 7, 9 und 11. Das Relaisboard möchte 5V zur Versorgung, also Pin 1 für 5V und Pin 2 für Masse.

Relais-Box

Auf der anderen Seite des Relaisboards, also an den Relais-Klemmen, ist 230V notwendig und damit Vorsicht angesagt. Aus diesem Grund bringe ich das komplette Relaisboard auch in einem eigenen Gehäuse unter. Ein Relais dreht den Mischer in Richtung “öffnen”, ein zweites in Richtung “schließen”, ein weiteres Relais gibt der Therme das Signal, loszuheizen. Das vierte schließlich deaktiviert die Umwälzpumpe (falls die ganze Regelung ausfällt oder ausgeschaltet wird, bleibt so die Pumpe aktiv und ich kann somit immerhin noch “manuell” heizen).

Wenn man mal von der Heizungsinstallation absieht, ist die Hardware hiermit schon fertig!

Hier geht’s weiter mit der Software-Installation!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.