Heizungssteuerung mit openHAB und Z-Wave

Das könnte dich auch interessieren …

19 Antworten

  1. Frank Rein sagt:

    Vielen Dank für die sehr ausführliche Erklärung und die Codebeispiele. Ich würde gerne in einem Punkt davon abweichen, weiß aber nicht ob und wie das machbar ist. Die Grundregel für die Heizungssteuerung soll lauten: egal ob per Automatik oder von Hand am Thermostaten geregelt, es soll die letzte Einstellung wirksam sein. Ausnahme ist die Regel über die Fensterkontakte. Solange einer offen ist, soll die Heizung aus sein und auch manuell nicht überschreibbar sein. Beispiel: um 9 Uhr geht die Heizung per Z-Wave auf 18 Grad, um 15 Uhr auf 22 Grad und um 20 Uhr auf 16 Grad. Um 10 Uhr fällt mir ein, dass ich es wärmer brauche und stelle am Thermostaten auf 20 Grad. Dies soll im Prinzip bis 15 Uhr so bleiben. Um 11:30 Uhr wird ein Fenster geöffnet und die Heizung soll ausgehen. Um 12:15 Uhr wird das Fenster geschlossen und nun sollen die 20 Grad von der manuellen Regelung von 10 Uhr wieder greifen. Um 15 Uhr soll dann die Automatik 22 Grad einstellen.
    Das Einstellen des letzten automatischen Wertes vor Fensteröffnung hatte ich mit meiner früheren Steuerung z-way, die ich jetzt durch openHAB ersetze, hinbekommen. Aber die manuelle Übersteuerung hat nie geklappt, weil die Danfoss Thermostate (ebenso der Euratronic) nach kurzer Zeit wieder den letzten vom Controller gesendeten Wert annehmen. Ich sollte noch erwähnen, dass die manuelle Übersteuerung nicht per Handy, Tablet oder dergleichen geschehen soll, sondern direkt am Thermostaten.
    Vielen Dank vorab und viele Grüße

  2. Hallo Frank,

    In meiner Beispielregel „heat_off_time_window_liv“ wird genau dein Wunsch mit den Fenstern umgesetzt, dafür kommt die Funktion „historicState“ zum Einsatz.
    Dein Wunsch nach Übersteuern geht meines Wissens nicht, da dein Z-Wave Thermostat „Befehlsempfänger“ ist, und die Via Z-Wave einen Set-Point gesetzt bekommt, immer und immer wieder. Du kannst ja mal testen, ob du den Set-Point auslesen kannst, bevor er neu gesetzt wird, bei jedem Aufwachzyklus.
    Alternativ zu einer digitalen Eingabe via Web- oder Handyinterface, kann auch das Raumthermostat von Danfoss zum Einsatz genommen werden, dann geht es auch.

  3. Frank Rein sagt:

    Hallo Nico,
    vielen Dank für die Antwort. Ic hatte schon befürchtet, dass das gegenseitige Überschreiben von Automatischen und manuellen Werten nicht klappt, weil es in z-way auch nicht lief.
    Andererseits habe ich gestern den ersten Danfoss Heizkörperthermostaten zumindest mal grundsätzlich eingebunden und als TEXT Element auf einer sitemap verfügbar gemacht. Und siehe da: ich kann den Wert auf der UI der sitemap einstellen, dann manuell am Thermostaten überschreiben, danach wieder über z-wave setzen usw. Der jeweils letzte Wert bleibt, unabhängig davon ob manuell oder über die sitemap eingestellt, beliebig lange erhalten *grübel …

  4. Frank Rein sagt:

    Ich melde mich hier nochmal zu Wort. Unter z-way hatte ich den Verdacht, den ich aber aus Zeitmangel nie näher untersuchen konnte, dass erst die Regel im Zusammenhang mit den Fensterschaltern das gegenseitige Überschreiben zunichte machte. Die Regel war im Prinzip genauso aufgebaut wie deine: wenn Fenster auf, dann Heizung aus, wenn Fenster zu, dann schreibe den gespeicherten Wert in den Thermostaten. Die Dokumentation legte nahe, dass eine solche Regel nur aufgerufen wird, wenn sich der Zustand des Bedingungselemntes, also des Fensterschalters, ändert. Somit nur immer genau einmal beim Wechsel auf->zu bzw. zu->auf. Ich vermute aber, dass so eine Regel immer wieder, zB beim wakeup des Thermostaten aufgerufen wird, was dann ein manuelles überschreiben tatsächlich zunichte machen würde. Wie ist das in OH2? Reagiert die Regel nur bei Zustandsänderung, was ich für richtig erachten würde, oder läuft dort irgendein Zeittrigger, der für ständige Aktivität sorgt?

  5. Hallo Frank,

    um beim Beispiel der Fenster zu bleiben, jede Regel wird mit einem Namen definiert und dann wann sie greifen soll:


    rule "heat_off_time_window_liv"
    when
    Item contact_sensor_WZ_window changed
    then

    Hier greift die Regel immer, wenn sich der Zustand des Fensterkontaktes ändert. Du kannst da aber alles definieren, was dir weiter hilft.

  6. Frank Rein sagt:

    Hallo Nico,
    Danke. Das habe ich soweit verstanden. Ich verstehe dann aber bicht, wsrum du meintest m, dass der Thermostat „immer und immer wieder“ einen setpoint bekommt. Was löst das aus? Deine Regel zieht doch nur bei Zustandsänderung und dann kommen vielleicht noch irgendwelche zeitpunktgesteuerten Befehle. In den Phasen dazwischen sollte der Controller doch still sein und ich kann dann manuell am Thermostaten tun, was immer ich will, oder?

  7. Hallo Frank,

    da habe ich mich wohl etwas falsch ausgedrückt. Ich meinte, dass ich nicht geprüft habe, ob der SetPoint Command bei jedem „Aufwachen“ abgerufen wird. Die Regeln selber und alle anderen Steuerbefehle laufen selbstverständlich nur, wenn sie sollen.

  8. Frank Rein sagt:

    Hallo Nico,
    Danke für deine Informationen! So dachte ich mir das.
    Da es mit dem gegenseitigen Überschreiben bei mir unter OH2 klappt, was unter z-way nicht ging, müssen bei Letzterem die Regeln wohl anders als dokumentiert ticken. Naja egal, ich bin ja nun von z-way weg.
    Viele Grüße
    Frank

  9. Jens sagt:

    Wenn man nun in den Fensterkontakt einen Temperatursensor einbaut oder einen andere Temperatursensor in Opnehab besitzt.
    Wäre es dann möglich den Thermostaten die Temperatur zu senden als aktuelle Raumtemperatur?
    Dann bräuchte man ja nicht unterschiedliche Zeiten und Temperaturen, da die Thermostate die tatsächliche Raumtemperatur von globalen Sensor bekämen?
    Wenn aj wie ginge eine solche Regel und würden die Thermostate dann auch automatisch regeln?

  10. admin sagt:

    Hallo Jens,

    Die meisten Thermostate haben ein Temperatursensor eingebaut und „wissen“ wie warm es ist. Diese Messung haut bei den auf Danfoss basierenden Thermostaten meist hin, es sei denn ein Sofa steht davor. Sinn einer Heizungssteuerung ist es doch die Temperatur und damit den Energiebedarf zu senken, wenn sie nicht benötigt wird. Wenn du die Temperatur halten möchtest, stellst du einmal ein und dann macht das Thermostat alles weitere.
    Welches Szenario möchtest du denn realisieren?

    Gruß
    Nico

  11. Jens sagt:

    Ich habe wie du 2 Thermostate. Du schreibst ja selber das du die unterschiedlich Konfigurieren musst für eine perfekte Raumtemperatur.
    Daher wäre meine Idee ein zentrales Thermometer, dass die aktuelle reale Temperatur an die Thermostate sendet und diese dann durchaus alleine dafür sorgen ob weiter geheizt oder abgedreht werden soll. Dadurch kann auch eine Heizung hinter einem Sofa stehen da die Temperatur ja zentral gemessen wird und somit der Hitzestau nicht „ausgewertet“ wird

  12. Davide sagt:

    Hallo Nico,

    Danke für die sehr interessanten Posts. Ich habe 3 Fragen an Dich:

    Wie Jens, möchte ich auch den Temperatursensor des Thermostats umgehen, un einen anderen Sensor nutzen, zum Beispiel den „Danfoss RS Z-Wave room thermostat“, oder ein Netamo Personal weather, oder auch einen EnOcean Temperaturfühler. Ist das einfach zu realisieren?

    Warum hast Du Dich für z-wave und Danfoss, und nicht für Max! oder Max!CUL entschieden? Was macht Danfoss besser als eq-3 deiner Meinung nach (ich muss mich bald entscheiden, welche Sensoren ich einbauen möchte)?

    Verstehe ich richtig, dass Devolo 15€ mehr haben will, für eine Klasse die ich selber in openhab schnell implementieren kann? Oder kann ich den Temperaturwert des Danfossgerät wirklich nicht abrufen?

    Vielen Dank im Voraus!
    Davide

  13. Hallo Davide,

    Ich habe mich für Z-Wave entschieden, weil es ein Herstellerübergreifender Standard ist. Etwas genauer habe ich es in meinem Artikel „Warum eigentlich Z-Wave?“ beschrieben. Die MAX! Heizungslösung von eq-3 ist bestimmt nicht schlecht, aber eben mit Bindung an genau einen Hersteller. In meinem Z-Wave Netz kümmere ich mich nicht nur um Heizung und Licht, sondern nahe zu alles was steuerbar ist und ein Zustand zurück gibt.

    Und ja du hast Recht, Devolo verlangt aktuell 10€ mehr, mit dem einzigen Unterschied, dass man die Temperatur des eingebauten IR-Thermometer abfragen kann und ein anderer Name darauf gedruckt ist. Das Thermostat von Popp ist in gleicher Weise ein Danfoss LC-13 mit angepasster Firmware und kostet zur Zeit 4€ weniger als das Danfoss Original. Bisher kenne ich keine Möglichkeit, wie man der Danfoss Originalfirmware die IST-Temperatur entlocken kann, eine Anfrage nach „command=sensor_multilevel,sensor_type=1“ liefert keine Werte zurück.

    OK jetzt zur spannendsten Frage … Temperaturregelung im Thermostat vs. Raumtemperatur.
    Hier gibt es erstmal kein richtig und falsch, eher eine Abwägung von Aufwand und Nutzen. Das Danfoss LC-13 ist ein in sich geschlossener Regelkreislauf, dem man von Außen nur noch den SOLL-Wert gibt, alles weitere macht die Firmware mit dem eingebauten IR-Thermometer. Das IR-Thermometer erfässt die IST-Temperatur ca. 1m vor der Heizung, was recht zuverlässig funktioniert. Ich habe bei mir im Wohnzimmer ein kleinen und ein großen (doppelt so groß) Heizkörper, wobei der Große natürlich mehr Wärme abstrahlt und damit die Luft vor sich schneller erwärmt, als es bei dem Kleinen der Fall ist. Daher musste ich die Zieltemperatur für den Großen etwas erhöhen, weil er sonst eher abschaltet, als der Kleine, und somit der Raum nicht so schnell und gleichmäßig warm wird.
    Wenn man jetzt ein Raumthermostat einsetzt, wie zum Beispiel das von Danfoss/Devolo, dann muss ich ein weiteres Gerät kaufen, welches auch noch teurer ist als die Thermostate selbst. Die Steuerung und den Regelkreislauf übernimmt dabei dann das Raumthermostat, wobei ich mir nicht vorstellen kann, dass unterschiedlich große Heizkörper ausgeglichen werden. Ob und wie ich dabei den SOLL-Wert via Z-Wave setzen und ändern kann, weis ich leider nicht, da ich noch kein Sponsor gefunden haben, der mir so ein Raumthermostat zur Verfügung stellt.
    Nimmt man nur ein Temperaturfühler, dann muss man sich um den Regelkreislauf in Form eines Scriptes selber kümmern, was evtl nicht ganz so leicht von der Hand geht, wenn man auch Energieeffizient heizen möchte.

    Gruß
    Nico

  14. André sagt:

    Hallo,

    Danke für die tolle Vorlage.

    Ich glaube jedoch zwei Kleinigkeiten gefunden zu haben.
    In der Regel „heat_off_time_window_liv“ ist in Zeile 22 am Ende eine Klammer zu viel.

    Dann hätte ich noch die Frage, wie man die zeitgesteuerten Regel später wiederholen kann. Also wenn die Heizung „Time cron „0 0 16 ? * MON-FRI *“ angehen soll, jedoch das Fenster noch auf ist, passiert ja nichts. Wenn man dann zum Beispiel um 16:05 Uhr das Fenster zu macht, nimmt er ja die Temperatur vom Zeitpunkt als das Fenster geöffnet wurde.

  15. Thomas sagt:

    Hallo,
    tolles Tutorial, hat mir sehr geholfen Ideen für mein eigenes Smart Home zu kreieren.
    Eine Frage hätte ich.
    Wenn du das Fenster länger wie dein Timer öffnest „fährt“ die Heizung herunter.
    Schließt du das Fenster wieder nach z.b. 15 Minuten müßte die Heizung ja wieder automatisch „anspringen“.

    Gruß,
    Thomas

  16. Jan sagt:

    Hallo,
    kannst du einmal bitte noch ausführen, was man machen muss, damit man historicState nutzen kann?
    das wäre super hilfreich. Danke

  1. 5. Januar 2017

    […] Heizungssteuerung mit OpenHAB und Z-Wave […]

  2. 5. Januar 2017

    […] nächsten Artikel wird es wahrscheinlich um Heizungssteuerung […]

  3. 14. Januar 2017

    […] wie OpenHAB mit CalDAV Binding konfiguriert wird und ein Verwendungsbeispiel anhand der Heizungssteuerung […]

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.