Smart Home – openHAB 2 HomeMatic Heizungssteuerung
Im heutigen Beitrag geht es um eine openHAB 2 HomeMatic Heizungssteuerung. Es geht hier ganz klar um den Teil des Energiesparens. Es werden der Heizkörperthermostat HM-CC-RT-DN und der Fensterkontakt HM-SEC-SC2 in openHAB 2 angelernt. Voraussetzung hierfür, dass ihr wie im Beitrag openHAB 2 Homematic CCU2 Installation beschrieben die HomeMatic CCU2 in openHAB2 integriert und in den Installationsmodus versetzt. Es wird weiterhin beschrieben wie ihr die HomeMatic Items konfiguriert. Am Ende des Beitrags gibt es noch eine einfache Regel wie ihr den Fensterkontakt zu Drosselung der Heizung verwendet. Nun aber los…
openHAB 2 – HomeMatic Heizungssteuerung Material
Für die hier beschriebene Heizungssteuerung benötigt ihr neben einem openHAB 2 Server die folgenden Komponenten.
HomeMatic – Zentrale CCU2
HomeMatic 103584 Zentrale Haussteuerung CCU2, weiß
- Homematic Zentrale übernimmt als zentrales Element des Homematic Systems vielfältige Steuer-, Kontroll- und Konfigurationsmöglichkeiten für alle Homematic Geräte einer Installation
- Bedienung der Zentrale erfolgt komfortabel am PC oder Tablet über die Homematic Bedienoberfläche WebUI
- Homematic Zentrale übernimmt als zentrales Element des Homematic Systems vielfältige Steuer-, Kontroll- und Konfigurationsmöglichkeiten für alle Homematic Geräte einer Installation
- Bedienung der Zentrale erfolgt komfortabel am PC oder Tablet über die Homematic Bedienoberfläche WebUI
- Konfiguration und Bedienung sowie Statusabfrage aller Homematic Geräte möglich
- Komplexe Steueraufgaben sowie individuelle Logikfunktionen können über Zentralenprogramme realisiert werden
- Firmware-Update von Homematic Geräten über die WebUI Bedienoberfläche möglich, CCU2 ermöglicht das Einrichten direkter Verknüpfungen zwischen Homematic Geräten, die auch ohne den Einsatz der Zentrale aktiv bleiben
HomeMatic – Fensterkontakt HM-SEC-SC2
EQ3 HomeMatic Funk-Fensterkontakt HM-SEC-SC-2
- Klein und unauffällig
- Einfache Schraub-/Klebemontage an Fenstern und Türen
- LED für Statusanzeigen
- Direkt mit Homematic-Geräten verknüpfbar (nicht mit Homematic IP Geräten) auch ohne Homematic Zentrale CCU2 oder Smart Home Zentrale CCU3 Vielseitig einsetzbar zur Heizungssteuerung, zur Einrichtung von Sicherheitslösungen, zur Realisierung eines Aussperrschutzes für mit Homematic Geräten automatisierten Rollläden und vieles mehr
- Klein und unauffällig
- Einfache Schraub-/Klebemontage an Fenstern und Türen
- LED für Statusanzeigen
- Direkt mit Homematic-Geräten verknüpfbar (nicht mit Homematic IP Geräten) auch ohne Homematic Zentrale CCU2 oder Smart Home Zentrale CCU3 Vielseitig einsetzbar zur Heizungssteuerung, zur Einrichtung von Sicherheitslösungen, zur Realisierung eines Aussperrschutzes für mit Homematic Geräten automatisierten Rollläden und vieles mehr
- AES-authentifizierte Kommunikation
HomeMatic – Heizkörperthermostat HM-CC-RT-DN
HomeMatic 105155 Funk-Stellantrieb
- Ermöglicht zeitgesteuertes Regulieren der Raumtemperatur und Anpassung der Heizphasen auf individuelle Bedürfnisse; flexibel durch voreingestellte Wochenprogramme und individuelle Programmierung direkt am Gerät oder über die Zentrale CCU2/CCU3
- Ermöglicht zeitgesteuertes Regulieren der Raumtemperatur und Anpassung der Heizphasen auf individuelle Bedürfnisse; flexibel durch voreingestellte Wochenprogramme und individuelle Programmierung direkt am Gerät oder über die Zentrale CCU2/CCU3
- Passt auf alle gängigen Heizkörperventile und ist einfach zu montieren; stabiler Sitz am Ventil dank Metall-Rändelmutter
- Individuelle Anpassung an die persönlichen Lebensgewohnheiten durch frei programmierbare Heizphasen (13 Schaltzeiten zur Temperaturumstellung je Tag), zusätzliche Boost-Funktion ermöglicht ein schnelles, kurzzeitiges Aufheizen des Heizkörpers
- Ein Absenken der Temperatur beim Lüften wird automatisch durch die integrierte Fenster-Auf-Erkennung oder mittels anlernbarem Fensterkontakt erkannt, wodurch unnötiges Heizen während der Lüftungsphase vermieden wird.
- Nicht kompatibel zum Homematic IP Access Point und Cloud, alternatives Produkt für das Homematic IP System ist der Homematic IP Heizkörperthermostat (Art-Nr. 140280A0, Asin B00ZQG6OTO)
openHAB 2 – HomeMatic Heizungssteuerung Anlernen
Nun geht es ans anlernen der beiden Komponenten des HomeMatic Fensterkontakt HM-SEC-SC2 und Heizkörperthermostat HM-CC-RT-DN. Ruft die Inbox der Paper UI auf
http://<openHAB_IP>:8080/paperui/index.html#/inbox/search
HomeMatic – Fensterkontakt HM-SEC-SC2 anlernen
Nehmt den HomeMatic Fensterkontakt aus der Verpackung. Haltet mindestens 50cm Abstand zur HomeMatic CCU2. Klickt nun in der Inbox auf SEARCH FOR ITEMS (1).
Setzt die Batterien ein und drückt die Anlerntaste.
Nach einiger Zeit sollte direkt der Fensterkontakt HM-SEC-SC2 erscheinen. Bindet das Thing über den blauen Kreis mit Haken ein (1).
Nun vergebt einen sprechenden Namen (1) und drückt auf ADD AS THING (2). So könnt ihr die Komponenten später vernünftig wiederfinden.
Nun navigiert in Control in der Paper UI. Hier werdet ihr einen neuen Eintrag mit dem Fensterkontakt sehen.
HomeMatic – Heizkörperthermostat HM-CC-RT-DN anlernen
Folgt zur Integration des HomeMatic – Heizkörperthermostat in openHAB2 analog den Schritten des Kapitel Fensterkontakt HM-SEC-SC2.
- Inbox aufrufen, nach Items suchen
- Abstand 50 cm, Batterien rein
- Zum anlernen drückt die Boost Taste des Thermostat (mittlere Taste).
- Thing hinzufügen und benennen
openHAB 2 – HomeMatic Heizungssteuerung Montage
HomeMatic – Fensterkontakt HM-SEC-SC2 montieren
Den HomeMatic Fensterkontakt könnt ihr entweder anschrauben oder mit den beiliegenden Klebestreifen befestigen. Ich empfehle Euch immer vor Verschraubung die Montage mit den Klebestreifen. Ich denke, die Montage ist relativ selbsterklärend. Solltet ihr dennoch mehrere Versuche brauchen und keine Klebestreifen mehr haben, kann ich Euch folgendes Montageband empfehlen. Dieses habe ich für einige meiner Fenster- und Türkontakte genutzt.
tesa doppelseitiges Montageband Powerbond für Außen, 5m
- tesa Powerbond Outdoor: Klebestark und widerstandsfähig, ist dieses Montageklebenband die erste Wahl für Befestigungslösungen zur einfachen und stabilen Wandmontage von Gegenständen im Freien
- Unkomplizierte Handhabung: Klebeband einfach durch Zuschneiden den eigenen Bedürfnissen anpassen - so lassen sich kleine und große Objekte im Außenbereich sicher fixieren
- tesa Powerbond Outdoor: Klebestark und widerstandsfähig, ist dieses Montageklebenband die erste Wahl für Befestigungslösungen zur einfachen und stabilen Wandmontage von Gegenständen im Freien
- Unkomplizierte Handhabung: Klebeband einfach durch Zuschneiden den eigenen Bedürfnissen anpassen - so lassen sich kleine und große Objekte im Außenbereich sicher fixieren
- Hält bis zu 1 kg pro 10 cm Band: Klebt Objekte bis zu 10 mm Tiefe auf den meisten glatten, ausreichend festen Oberflächen - geeignet für Kacheln, Klinker, Stein, Metall und die meisten Kunststoffe
- Das Montageklebeband ist temperaturwechselresistent und widerstandsfähig gegen raue Wettereinflüsse wie Wind, Schnee und Regen und zudem UV-beständig
- Lieferumfang: 1 x tesa Powerbond Outdoor - Maße: 5 m x 19 mm - Farbe: Transparentes Band mit dunkelgrünem Abziehband
HomeMatic – Heizkörperthermostat HM-CC-RT-DN montieren
Die Installation des Heizkörpers ist dann doch wieder etwas anders. Die meisten Hersteller werden ohne zwar ohne Adapter unterstützt. Da sich die Demontage und Montage je nach Hersteller unterscheiden, folgt hier der Anleitung gemäß Kapitel 7.3.1 . Gerade bei Danfoss braucht ihr ggf. die beiliegenden Adapter. Aber keine Angst, im Grunde ist es recht einfach.
In den folgenden Bildern seht ihr die Demontage des alten Heizkörperthermostat.
Bei Bedarf nehmt eine Rohrzange und löst das alte Ventil.
Im Anschluss seht ihr den freigelegten Anschluss am Heizkörper.
Im Vergleich HomeMatic HM-CC-RT-DN im Installationmodus und das alte Concept Thermostat.
Nun geht es an die Montage. Setzt das HomeMatic HM-CC-RT-DN Thermostat auf das Ventil und schraubt es mit der Hand fest. Ein Werkzeug braucht ihr normalerweise nicht.
Nachdem ihr das HomeMatic Thermostat aufgeschraubt habt, drückt die Boost Taste (1).
Im Display erscheint AdA und das Thermostat wird sich im Anschluss eigenständig adjustieren.
Sollte ein Fehlercode erscheinen, schaut in die Anleitung. Hat alles geklappt sieht es wie folgt aus.
Ändert nun vom Automodus in den Manuellen Modus, in dem ihr die Taste (1) drückt, bist das Symbol Manu mit der Hand (2) erscheint.
openHAB 2 – HomeMatic Heizungssteuerung Konfiguration
Für den Zugriff auf Euer Item nutzt ihr nun ein weiteres Mal die Kanäle (Channel). Öffnet die bereits integrierten Dinge (Thing) durch einen Aufruf der folgenden Adresse.
http://localhost:8080/paperui/index.html#/configuration/things
HomeMatic – Fensterkontakt HM-SEC-SC2 Item konfigurieren
Beim HomeMatic – Fensterkontakt klickt nun entsprechend auf den Kreis neben dem Thing. Nun könnt ihr die einzelnen Kanäle sehen. Hier kopiert Euch durch markieren und kopieren die gewünschten Kanäle. In meinem Fall ist dies vorerst nur der Zustand des Fensters (1).
Die Item Konfiguration nehmt ihr ihr wie üblich vor. In diesem Fall sieht das Item abschließend so aus.
Contact co_fenster "Fenster" <window> ( gZimmer ) { channel="homematic:HM-Sec-SC-2:ccu2:NEQ1681489:1#STATE" }
HomeMatic – Heizkörperthermostat HM-CC-RT-DN Item konfigurieren
Nun öffnet die Kanäle des HomeMatic – Heizkörperthermostat. Hier kopiere ich mir den Kanal der Soll-Temperatur (1).
Das Item für die Soll-Temperatur lege ich wie folgt an.
Number he_set_temp "Temperatur [%d °C]" <temperature> (gZimmer) [ "TargetTemperature" ] { channel="homematic:HM-CC-RT-DN:ccu2:NEQ1516120:4#SET_TEMPERATURE" }
HomeMatic – Heizungssteuerung Regeln konfigurieren
Damit das ganze nun auch den entsprechenden Energiespareffekt hat, erstellen wir eine Regel. Diese Regel dient dazu bei geöffnetem Fenster den Kontakt in einen Frostschutz-Modus (Soll-Temperatur auf 7 Grad) zu setzen. Der Einfachheit erhöht die Regel den Wert auf 24 Grad bei geschlossenem Fenster.
rule "Heizung_Frostschutz" when Item co_fenster received update then if (co_fenster.state.toString == "OPEN") { he_set_temp.postUpdate(7) he_set_temp.sendCommand(7) } else if (co_fenster.state.toString == "CLOSED") { he_set_temp.postUpdate(24) he_set_temp.sendCommand(24) } end
Damit ihr abschließend die Regel in Aktion seht ein kleines Video. Es ist leider nicht sehr schön geworden und ihr seht die Veränderung auf dem HomeMatic Heizkörperthermostat nur sehr schlecht. :-/
OpenHAB 2 HomeMatic Heizungssteuerung
Neben der Erhöhung auf 24 Grad ist natürlich auch eine Änderung auf den ursprünglichen Wert vor dem Öffnen des Fensters möglich. Dies erkläre ich in einem späteren Beiträge. Ihr möchtet nichts verpassen? Dann meldet Euch beim Newsletter an.
[…] Smart Home openHAB 2 HomeMatic Heizungssteuerung […]
Hallo,
hast Du die Steuerung der HomeMatic-Thermostate auch einmal „manuell“ aus OpenHAB2 heraus versucht. Per Grundsatz geht dies ja, bspw. als „Setpoint“ in der SiteMap.
Ich habe hier aber das Problem, dass ich große Latenzen beim Bedienen und dem Refresh in der Oberfläche habe. Ferner kann ich bei „Setpoint“ auch nicht einfach mal von 5°C auf 20°C gehen, sondern muss „mühsam“ in 0,5°C Schritten mich durchklicken.
Ggf. hast Du hier ja ein Best-practice.
Viele Grüße,
Stefan
Hallo Stefan,
ging bei mir ohne Problem und auch recht flott. Also Du kannst das Stepintervall anpassen. Unten z.B. eine Erhöhung um 1 Grad.
Setpoint item=he_set_temp label="Solltemperatur [%.1f °C]" step=1 minValue=7 maxValue=26
Du hast verschiedene Möglichkeiten den Wert direkt zu setzen. Die Regel ist oben beschrieben und hier siehst Du wie Du werte direkt in der Regel setzt. Nun gibt es wieder verschieden Möglichkeiten.
1. Du legst Dir Schalter zum Auslösen der Regel an.
2. Schöner, Du legst Dir eine Auswahlliste für verschieden Betriebsmodi an.
Musst Du dann auch mit Regeln verarbeiten und die Werte des Thermostat aktualisieren.
BG
Thomas
Vielen Dank!
Vermutlich ist der Ansatz mit dem Switch Item für bestimmte Szenarien gar nicht so verkehrt. Nun habe ich eine Weile im Netz recherchiert und wurde nicht wirklich fündig und möchte Dich nochmals um Deine Hilfe bitten:
Ich würde gerne eine Art „globale Variable“ (vermutlich ein Item in OH2) erstellen, welche bspw. den Status
„Schlafzimmer Heizung an“ (mit einer Solltemp. von bspw. 19°C) und
„Schlafzimmer Heizung aus“ (idealerweise mit OFF im Display des HomeMatic-Thermostats, aber bspw. 5.0°C wäre auch ok)
repräsentiert.
Also bspw. „HeizungSchlafzimmer“ = ON | OFF als Boolean
Dies würde ich dann gerne als Switch einbinden. Die Rule dahinter mit den beiden Set-Werten ist eigentlich klar. Aber wie definiere ich die Variable, die durch den Switch gesteuert wird und auf den die Rule reagiert?
Viele Grüße,
Stefan
Hallo Stefan,
das ist im Grunde ganz einfach, wenn ich deine Anfrage richtig verstehe. Du brauchst keine Globale. Du kannst direkt auf den Dummy Schalter reagieren. Das Items ist quasi deine Globale.
Schau Dir mal das Beispiel der Regel GB_Mute im Kapitel „openHAB 2 Enigma2 Regel – Kommando senden“ des Enigma 2 Beitrags an.
Du definierst Dir ein Item und je nach erhaltenem Kommando (ON/OFF) setzt Du die Werte wie hier beschrieben. Kombiniere die beiden Regeln und Du hast die Lösung.
Beste Grüße
Thomas
Hallo.
Erstmal Lob und Dank für die tollen Anleitungen hier. Ich hab nun ein Problem:
Ich habe bislang homematic benutzt und bin vor kurzem in openhab eingestiegen.
Im Wohnzimmer habe ich zwei Heizkörper Thermostate und diese gekoppelt (über ccu2) mit einem Wandthermostat. Ich wollte jetzt einen Schalter in openhab machen und damit alle Heizkörper in den „Nachtmodus“ setzen. Das heißt auf 17 Grad. Diesen Befehl schicke ich über eine Regel bei Betätigung des virtuellen Schalters an das Wandthermostat. Dieses setzt die Soll-Temp auch auf 17 Grad, dies wird aber nicht an die Heizkörper weiter gegeben. Wieso? Muss ich dann über openhab alle Heizkörper einzeln ansprechen?
Hallo Rob,
Ich kenne HomeMatic in der Konstellation nicht.
Welche Thermostate hast Du? Die gleichen wie im Beitrag? Falls ja, schick doch zusätzlich noch eine Meldung an die Thermostate.
Grüße
Thomas
Hi. Erstmal Danke. Das Problem scheint gelöst. Es hat einfach nur relativ lange gedauert, bis die Temperatur weiter gegeben wurde.
Aber eine andere Frage:
Kann ich 2 Channels einem Item zuweisen? Wenn ich zB ein Item „Raumtemperatur“ habe und diesem 2 Heizkörperthermostate zuweisen möchte?
Dafür gibt es Gruppen. Mit Gruppen kannst du Werte verschiedener zu einem zusammenlegen (z.B. AND, OR, Average…) aber auch werte setzen. Diese werden dann an alle Geräte in der Gruppe gesetzt:
http://docs.openhab.org/configuration/items.html#groups
Hallo Rob,
verstehe noch nicht was du möchtest. Bei Schaltungen kenne ich das. Liste einfach die Bindings getrennt mit Komma auf.
Beste Grüße
Thomas
Hallo,
Der Artikel ist gut beschrieben. Mich interessieren zwei Dinge:
Du schreibst
hast Du hier schon etwas erstellt? Das fehlt mir nämlich total.
Hast Du ggf. schonmal eine Programmierung für einen Wochenzyklus bei den Temperaturen gemacht?
Danke im Voraus
Dominik
Halo Dominik,
danke. Das habe ich tatsächlich vergessen. Du machst es so, dass Du Dir einen globale Variable in deiner Regel definierst.
Du gibst z.B. var temp_save über den Regeln in deiner Rules Datei an. Beim setzen der neuen Temperatur merkst Du Dir vorher den alten Wert und schreibst diesen später zurück.
Also
var temp_save = 22 //standard Wert
rule "Heizung_Frostschutz"
when
Item co_fenster received update
then
if (co_fenster.state.toString == "OPEN") {
temp_save = (temp_save.state as DecimalType).intValue
he_set_temp.postUpdate(7)
he_set_temp.sendCommand(7)
} else if (co_fenster.state.toString == "CLOSED") {
he_set_temp.postUpdate(temp_save)
he_set_temp.sendCommand(temp_save)
}
end
Hallo, ich habe alles genau wie beschrieben durchgeführt, aber es erscheint permanent folgender Fehler:
[ntime.internal.engine.RuleEngineImpl] – Rule ‚Fenster oeffnen Schlafzimmer Eltern‘: ’state‘ is not a member of ‚java.lang.Integer‘; line 16, column 22, length 15
var temp_save = 22 //standard Wert
rule „Fenster oeffnen Schlafzimmer Eltern“
when
Item FenstersensorSchlafzimmerEltern_Contact changed
then
if(FenstersensorSchlafzimmerEltern_Contact.state == OPEN) {
temp_save = (temp_save.state as DecimalType).intValue
ThermostatSchlafzimmerEltern_SetTemperature.postUpdate(6)
ThermostatSchlafzimmerEltern_SetTemperature.sendCommand(6)
logInfo(„Fenster Schlafzimmer Eltern“, „Fenster wurde geoeffnet, Heizung senkt ab“)
}
else if
(FenstersensorSchlafzimmerEltern_Contact.state == CLOSED) {
ThermostatSchlafzimmerEltern_SetTemperature.postUpdate(temp_save)
ThermostatSchlafzimmerEltern_SetTemperature.sendCommand(temp_save)
logInfo(„Fenster Schlafzimmer Eltern“, „Fenster wurde geschlossen“)
}
end
Hallo Thomas,
danke für deine gut geschriebenen Anleitung, haben mir bis jetzt immer weitergeholfen.
bis jetzt 🙂
Ich habe noch eine Frage zu der „globalen Variable“
temp_save = (temp_save.state as DecimalType).intValue
wenn ich das richtig verstehe, dann muss ich für jedes Heizungsthermostat eine solche VAR anlegen?
so habe ich zum bsp. folgende angelgt
var temp_save_schlafzimmer = 22 //standard Wert
var temp_save_badezimmer = 22 //standard Wert
usw.
so dass wenn das Fenster geöffnet wird, der aktuelle Wert abgelegt wird und beim Schließen auf den gespeicherten Wert gesetzt wird.
Wenn ich jetzt meine Rule mit den Werten des einzelnen Thermostat ergänze , mit diesem Befehl
temp_save_badezimmer = (temp_save_badezimmer.state as DecimalType).intValue
dann spukt mir Visual Studio immer die Fehlermeldung
file: ‚file:///y%3A/rules/ftk.rules‘
severity: ‚Fehler‘
message: ‚The method or field state is undefined for the type int‘
at: ‚18,50‘
source: “
code: ‚org.eclipse.xtext.diagnostics.Diagnostic.Linking‘
aus und unterstreicht dern Wert state.
Wo habe ich denn da einen Denkfehler.
Hoffentlich kann mir jemand weiterhelfen.
Danke schon mal
Gruß
Sascha
Hallo Zusammen,
ich habe immer noch das Problem mit er Fehlermeldung in rules Datei.
temp_save_gaestewc = (temp_save_gaestewc.state as DecimalType).intValue
The method or field state is undefined for the type int
Das Problem hat er mit dem Wert .state bei temp_save_gaestewc
Vielleicht hat ja jemand einen Tipp für mich.
Danke
Sascha
Hallo,
ich habe jetzt auch ein bisschen weiter rumgespielt.
Das Wochenprogramm programmiere ich einfach über die Homeatic Tools und lasse dann die Regler im Auto-Modus laufen.
Die Temperaturabsenkungen setzte ich dann im manuellen Modus und wenn dann die Fenster wieder zu sind, setzte ich dann mit
EG_wc_ht_fenster_auto.sendCommand(ON)
wieder in den Auto-Modus. Damit wird dann wieder das Wochenprogramm ausgeführt.Erscheint mir so der praktischste Lösungsweg
Hallo,
danke für die bebilderte howto-strecke. Ich komme von fhem und bin noch ganz am Anfang. Ein Heizkörperthermostat habe ich erfolgreich über homegear an openhab binden können und habe auch ein Item mit aktueller- und soll Temperatur – das scheint zu funktionieren. Und jetzt fangen die Fragen an:
1. Wo gibts du deine Scripte ein (wie heisst ein solches script, wo muss es liegen und woher weiss OH davon)
2. Wozu dient dieser Schritt (und was ist „gZimmer): Number he_set_temp „Temperatur [%d °C]“ (gZimmer) [ „TargetTemperature“ ] { channel=“homematic:HM-CC-RT-DN:ccu2:NEQ1516120:4#SET_TEMPERATURE“ }
3. Wo und wann werden die RRD files erstellt, um sich im „builder“ seine Grafiken anzeigen zu lassen. Meine dort erstellen Grafiken sind immer das Symbol, dass keine Grafik angezeigt wird (je nach Browser). das Homematic Heizkörperthermostat ist seit 24 Stunden verbunden, aber es sind keine daten gespeichert worden?
Vielleicht kannst du die Antworten auf meine Fragen zum besseren Verständnis deiner Anleitung mit auf nehmen.
Vielen dank vorab.
Jan