Wenn die Außentemperatur über 16° steigt, wird die Heizung für eine Stunde ausgeschaltet. Sie geht erst wieder an, wenn eine Stunde lang die Temperaturschwelle unterschritten wurde.
Sommerbetrieb mit Übergangsjacke
Auf dieser Seite
Bevor es ans Eingemachte geht, ein kleiner Programmschnipsel, um den Sommerbetrieb der Heizungssteuerung in der HomeMatic zu steuern.
Benennung von Systemvariablen
Prinzipiell kann man Systemvariablen – so wie allen Objekten in der CCU – beliebige Namen geben, also z. B. auch Umlaute und Sonderzeichen verwenden. Ich empfehle jedoch, sich auf reguläre Buchstaben (a-z, A-Z) zu beschränken: Bei Umlauten und Sonderzeichen besteht die Gefahr, dass Systemvariablen in Scripten nicht überall gefunden werden.
In einem Land, das den Begriff „Übergangsjacke“ kennt, ist es eigentlich erstaunlich, dass Heizungsanlagen in der Regel nur zwischen „Sommer“ und „Winter“ unterscheiden – übersetzt zu „nicht heizen“ und „heizen“. Die Umschaltung erfolgt über die Außentemperatur – ist es zu warm, geht die Anlage in den „Sommerbetrieb“, erzeugt also nur noch Warmwasser.
Manche Geräte haben noch eine Trägheit eingebaut und schalten erst um, wenn der Zustand für einige Zeit stabil erreicht ist, aber im Großen und Ganzen war’s das.
Zum Glück kann man da mit einem Smarthome etwas mehr reißen.
Natürlich steht hinter meinem „Sommerbetrieb“ auch als erstes die Idee, dass bei ausreichender Außentemperatur die Heizung abgeschaltet wird. Ich definiere aber mehrere Schaltpunkte, die darüber bestimmen, wie lange die Heizung außer Betrieb bleibt.
über 16°
Wenn die Außentemperatur über 16° steigt, wird die Heizung für eine Stunde ausgeschaltet. Sie geht erst wieder an, wenn eine Stunde lang die Temperaturschwelle unterschritten wurde.
über 20°
Bei mehr als 20° Außentemperatur schaltet sich die Heizung für sechs Stunden aus. Das Haus hat sich dann tagsüber aufgeheizt, aber nachts könnte es noch etwas frisch werden – da soll dann gerne nochmal nachgeheizt werden.
über 24°
Wenn es mehr als 24° warm ist, dann ist auch das Haus ausreichend aufgewärmt, um mal einen Tag ohne Heizung auszukommen. In diesem Fall wird der Sommerbetrieb für 30 Stunden aktiviert.
Wird es am nächsten Tag wieder über 24°, dann springt sie gar nicht erst an. Das ist dann echter Sommerbetrieb.
Wenn nicht, ist sie in den Abendstunden wieder bereit zum Nachheizen. Das ist dann eher Hamburger Sommerbetrieb.
unter 12°
Kalt ist kalt: Unter 12° springt der Sommerbetrieb auf jeden Fall wieder raus.
Den Anfang macht wie immer eine Systemvariable, auf die ich dann später in anderen Programmen zurückgreifen kann.

Das ist ein ganz einfaches Ding. Minimal- und Maximalwerte müssen gar nicht angepasst werden – die Variable Heizung Sommerbetrieb wird per Software zwischen 0 und 30 gesetzt. Dabei bedeutet ein Wert größer als 0, dass die Anlage sich im Sommerbetrieb befindet.
Das erste WebUI-Programm regelt die Aktivierung des Sommerbetriebs anhand der Außentemperatur.

Wie man sieht, arbeite ich mich von oben nach unten durch meine Temperaturschwellen. Die höchste liegt bei 24°. Ist es wärmer, wird Heizung Sommerbetrieb auf 30 gesetzt.
Wichtig ist die Auslösung bei Aktualisierung. Gemäß der Logik von WebUI-Programmen wird damit das Programm jedes Mal gestartet, wenn der Außensensor einen Wert sendet, auch wenn dieser unverändert ist. Das ist notwendig, damit der Countdown erst startet, wenn die Temperatur wieder gesunken ist.
Aber Vorsicht: Bei HomeMatic IP liefern viele Sensoren fast keine zyklischen Statusmeldungen, wenn der Wert unverändert ist. Hier muss über die Geräteeinstellungen ausgewählt werden, dass ständig gesendet wird.

Aber Vorsicht: Das geht auf die Batterie.
Aufmerksamen Beobachtern wird aufgefallen sein, dass ich hier kein Gerät abfrage, sondern eine weitere Systemvariable Außentemperatur. In diese Variable lasse ich meinen Sensor seinen Wert schreiben. Falls er mal das Zeitliche segnet oder die Batterie leer ist (wegen der dauernden Statusmeldungen) und ich sie nicht sofort wechseln kann (weil das Mistding auf dem Dach ist und 30 Zentimeter Schnee liegen), kann ich einfach die Variable von einem anderen Sensor befüllen lassen und muss keines meiner Programme ändern, die die Außentemperatur verwenden.

Weiter geht es mit der zweiten Temperaturschwelle. Bei mehr als 20° wird die Systemvariable auf 6 gesetzt, also sechs Stunden – aber nur, wenn sie nicht aufgrund einer vorherigen Auslösung bereits höher ist.
Diese zusätzliche Bedingung ist wichtig, damit bei tieferen Nachttemperaturen nicht der 30-Stunden-Countdown des vorherigen Programmteils überschrieben wird und die Heizung im Hochsommer am Morgen anspringt, bevor es wieder mehr als 16 Grad sind.

Entsprechend wird Heizung Sommerbetrieb bei mehr als 16° auch nur auf 1 gesetzt, wenn sie keinen höheren Wert hat.
Der wichtigste Teil für alle Haushalte, in denen Frauen leben, ist der letzte:

Bei weniger als 12° wird der Sommerbetrieb auf jeden Fall beendet. Ob das Haus dann tatsächlich so kalt ist, dass die Thermostate einen Wärmebedarf übermitteln, steht auf einem anderen Blatt, aber theoretisch zumindest kann das Haus wieder heizen.
Nachdem Heizung Sommerbetrieb jetzt anhand der Außentemperatur auf irgendeinen Wert gesetzt wurde, muss sie da auch irgendwie wieder runter. Das erledigt ein zweites WebUI-Programm.

Das Programm wird gestartet, sobald die Systemvariable größer als 0 ist. Dann wartet es erstmal eine Stunde und zählt dann den Zähler um 1 herunter
Auch hier wieder bei Aktualisierung auslösen, damit das Programm sich per Autotrigger gleich wieder selbst startet – so lange, bis die Variable 0 ist. Dann ist wieder Winter.
Das Script ist übersichtlich:
gesamtes Script markieren / kopieren
object o_sommer = dom.GetObject ("$src$");
if (o_sommer) {
integer i_sommer = o_sommer.Value();
if (i_sommer > 0) {
o_sommer.State (i_sommer - 1);
}
}
Wir holen uns die Variable, die das Programm ausgelöst hat, dann schauen wir, ob sie größer als 0 ist, und wenn ja, zählen wir sie um 1 runter.
Das läuft per Autotrigger stündlich als Langzeit-Timer: Wenn Programm 1 die Variable auf 30 setzt, zählt Programm 2 sie 30 Stunden lang jede Stunde um 1 herunter.
Der einfachste Anwendungsfall ist natürlich die Identifizierung des Sommerbetriebs: Wenn Heizung Sommerbetrieb größer als 0 ist, bleibt der Brenner aus.
Ebenso kann man über die Variable auch die Heizkörperthermostate steuern und die Heizkörper abdrehen, damit sie gar nicht erst Wärme anfordern, wenn die Heizung eh nicht läuft.
In unserer Zweitwohnung hatten wir mit furchtbar defekten Heizkörperventilen zu kämpfen, die mehrmals im Jahr per Zange wieder gängig gemacht werden mussten. In einer Wohnung, die vom Spätsommer bis zum Winter leersteht, ist das natürlich nicht so hübsch, weil bei Beginn der Heizperiode zuverlässig die Heizkörper nicht warm wurden.
Ich habe die Ventile dann einfach aufdrehen lassen, wenn die Systemvariable größer als 1 war – das war dann der Supersommerbetrieb. In der letzten Stunde Restlaufzeit, also wenn die Variable auf 1 stand, wurden die Thermostate dann geschlossen, und bei 0 wurde die normale Einstellung gewählt, um wieder in den Heizbetrieb zu gehen.
Natürlich haben die Ventile sich weiter festgesetzt, aber wenigstens in offener Position, so dass wir zumindest vorheizen konnten, wenn wir hingefahren sind.