Werbung
Hinweis: Diese Seite enthält Werbelinks

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

  • Produkt
  • Features
  • Fotos

HomeMatic 103584 Zentrale Haussteuerung CCU2, weiß

Last update was on: 31. März 2023 17:25

HomeMatic – Fensterkontakt HM-SEC-SC2

  • Produkt
  • Features
  • Fotos

EQ3 HomeMatic Funk-Fensterkontakt HM-SEC-SC-2

Last update was on: 31. März 2023 17:25
39.95

HomeMatic – Heizkörperthermostat HM-CC-RT-DN

  • Produkt
  • Features
  • Fotos

HomeMatic 105155 Funk-Stellantrieb

Last update was on: 31. März 2023 17:25
69.90

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).Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Inbox

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).

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Fensterkontakt-HM-SEC-SC2

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.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-HM-SEC-SC2-ADD-THING

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.

  1. Inbox aufrufen, nach Items suchen
  2. Abstand 50 cm, Batterien rein
  3. Zum anlernen drückt die Boost Taste des Thermostat (mittlere Taste).
  4. 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.

  • Produkt
  • Features
  • Fotos

tesa doppelseitiges Montageband Powerbond für Außen, 5m

& Versandkostenfrei
Last update was on: 31. März 2023 17:25
11.95

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.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Demontage-0

Bei Bedarf nehmt eine Rohrzange und löst das alte Ventil.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Demontage-1

Im Anschluss seht ihr den freigelegten Anschluss am Heizkörper.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Demontage-2

Im Vergleich HomeMatic HM-CC-RT-DN im Installationmodus und das alte Concept Thermostat.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Demontage-3

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).

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Montage-3a

Im Display erscheint AdA und das Thermostat wird sich im Anschluss eigenständig adjustieren.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Montage-3b

Sollte ein Fehlercode erscheinen, schaut in die Anleitung. Hat alles geklappt sieht es wie folgt aus.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Montage-4a

Ä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.

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Montage-4b

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).

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Fensterkontakt-HM-Sec-SC-2-Thing

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).

Smart-Home-openHAB-2-HomeMatic-Heizungssteuerung-Thermostat-HM-CC-RT-DN-Thing

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.  :-/

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

PGlmcmFtZSB3aWR0aD0iNzAzIiBoZWlnaHQ9IjM5NSIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLW5vY29va2llLmNvbS9lbWJlZC94QzA5cDA3SGswOCIgZnJhbWVib3JkZXI9IjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4=

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.

16 Comments
  1. […] Smart Home openHAB 2 HomeMatic Heizungssteuerung […]

  2. 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

  3. 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

  4. 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

  5. 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?

  6. Hallo,

    Der Artikel ist gut beschrieben. Mich interessieren zwei Dinge:

    Du schreibst

    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.

    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

  7. 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

    Hinterlasse einen Kommentar

    Smarthome Training and Tutorials
    Logo