Ziel dieses Beitrags ist, ein in Homematic eingerichtetes Heizungsthermostat mit Google Assistant, Amazon Alexa und Apple HomeKit steuerbar zu machen. Hierzu wird als Integrationslösung das kostenlose openHAB verwendet.
Es gibt mehrere Möglichkeiten, Homematic Geräte an Google Assistant, Apple HomeKit oder Amazon Alexa anzubinden. Ich setze auf openHAB, da die Integration dort zum einen kostenfrei erhältlich ist und zum anderen auch relativ ausgereift funktioniert. Eine andere Alternative wäre z.B. die Software ioBroker, die mich persönlich allerdings nicht wirklich überzeugt hat.
Verwendetes Material / Lizenzen
- Heizungsthermostat von Homematic (z.B. HM-CC-RT-DN bei amazon.de, ca. 40 EUR oder HMIP-eTRV-2 bei amazon.de, ca. 45 EUR)
- Homematic CCU3 (z.B. bei amazon.de, ca. 140 EUR)
- Raspberry Pi mit OpenHAB (z.B. bei amazon.de als Komplettkit, ca. 80 EUR)
- Optional: Schalter von Homematic (z.B. Funk-Wandtaster bei amazon.de, ca. 39 EUR)
Voraussetzungen
Ich gehe davon aus, dass ihr bereits eine Homematic CCU3 (alternativ Raspberrymatic) installiert und konfiguriert habt. Ebenfalls sollte der Raspberry mit OpenHAB bereits eingerichtet sein. Wenn ihr euch hierfür eine Anleitung wünscht, sagt in den Kommentaren bescheid.
Zum Zeitpunkt des Artikels nutze ich Raspberrymatic in der Version 3.49.17.20200131 sowie openHAB in der Version 2.5.1.
1) Vorbereitung openHAB
Falls noch nicht geschehen, muss zunächst erst einmal in openHAB das Homematic Binding (Doku) installiert und konfiguriert werden. In der PaperUI Oberfläche findet es sich unter Add-ons > Bindings > Homematic Binding.
Wenn Homekit genutzt werden soll, wird die HomeKit Integration (Doku) in openHAB benötigt. Im PaperUI steht es unter Add-ons > Misc > HomeKit Integration zur Installation bereit.
Für den Google Assistant wird dagegen die Google Assistant Action verwendet (Doku), welche als Voraussetzung den openHAB Cloud Connector benötigt (Doku). Im PaperUI steht diese unter Add-ons > Misc > openHAB Cloud Connector.
Amazons Alexa verwendet den Amazon Alexa Smart Home Skill (Doku) und benötigt ebenfalls den openHAB Cloud Connector wie auch der Google Assistant.
Detailliertere Installationsanweisungen sind auf den jeweils verlinkten Seiten zu finden. Bei Problemen mit der Installation fragt gerne nach.
2) Konfiguration Homematic Binding
Die Konfiguration des Homematic Bindings habe ich hier beschrieben.
3) Konfiguration Apple HomeKit Integration
Hier gibt es eine entsprechende offizielle Doku.
4) Konfiguration Google Assistant Add-on
Und auch hier: Doku.
5) Konfiguration Amazon Alexa Add-on
Zur Integration von Amazon Alexa mit openHAB muss der Alexa Skill dafür installiert werden, erhältlich hier. Nack Klick auf „Aktivieren“ und einloggen (oder Erstellen) des myopenhab.org Accounts, sind noch die Berechtigungen abzunicken:
Das war es auch schon, entsprechend konfigurierte Geräte sind nun sofort in Alexa sichtbar. Das Konfigurieren der Geräte kann damit beginnen.
Nach dem Hinzufügen von Geräten muss ggf. noch die Erkennung über „Alexa, finde meine Geräte“ neu getriggert werden.
6) Anlegen der Geräte in openHAB
Nun geht es an den eigentlichen Teil für die Heizungsthermostate. Aus den zig Geräten, die in Schritt 2 in eurer Inbox (in der Standardkonfiguration erreichbar unter https://openhab:8443/paperui/index.html#/inbox/search) aufgetaucht sind, gehören auch die Homematic Thermostate:
Mit einem Klick auf den Haken wird das Gerät übernommen. Dabei könnt ihr den Namen noch ändern, erforderlich ist es aber nicht. Sogar Umlaute werden korrekt übernommen.
Nach dem Übernehmen werdet ihr gefragt, ob ihr das neue „Thing“ direkt konfigurieren möchtet. Klickt ihr darauf, seht ihr die möglichen Kanäle, die das Gerät anbietet. Für die Heizungssteuerung verwenden wir gleich „Actual Temperature“ und „Set Temperature“. Unter „Show more“ verbergen sich noch viele weitere Werte, die für uns aber erst einmal nicht interessant sind.
Einrichten können wir die Kanäle an dieser Stelle leider nicht, da die Konfiguration in der grafischen Oberfläche nicht genügend Möglichkeiten bietet. Daher verwenden wir stattdessen Konfigurationsdateien, die mehr Möglichkeiten bieten.
Unter der Netzwerkfreigabe \\openhab\openHAB-share\openhab2-conf\items (Benutzername openhabian) reicht es aus, eine neue Textdatei mit beliebigem Namen anzulegen und dort die Eintragungen zu machen. Sofort nach dem Speichern werden diese von openHAB ausgewertet. Die Eintragungen können auch in mehrere Dateien aufgeteilt werden, bei mir sieht es aktuell so aus:
Und hier kommt nun eine neue „Heizung.items“ Datei hinzu mit dem Folgenden Inhalt. Prinzipiell definieren wir uns hier eine Gruppe „g_Buero_Heizung“ mit 3 Elementen darunter. Aktuelle Temperatur, eingestellte Temperatur und Betriebsmodus. Der Betriebsmodus ist in unserem Fall immer „Heizen“, wird aber dennoch benötigt, damit die Integrationen reibungsfrei funktionieren.
Group g_Buero_Heizung "Büro Heizung" [ "Thermostat" ] { ga="Thermostat", alexa="Endpoint.Thermostat" } Number:Temperature Buero_Heizung_Temperatur "Aktuelle Temperatur [%.1f °C]" (g_Buero_Heizung) [ "CurrentTemperature" ] { ga="thermostatTemperatureAmbient", alexa="TemperatureSensor.temperature" } Number:Temperature Buero_Heizung_TemperaturZiel "Gesetzte Temperatur [%.1f °C]" (g_Buero_Heizung) [ "homekit:TargetTemperature" ] { ga="thermostatTemperatureSetpoint", alexa="ThermostatController.targetSetpoint" } String Buero_Heizung_Modus "Betriebsmodus" (g_Buero_Heizung) [ "homekit:TargetHeatingCoolingMode", "homekit:CurrentHeatingCoolingMode" ] { ga="thermostatMode" [ modes="heat" ], alexa="ThermostatController.thermostatMode" [HEAT="heat"]}
Die Einträge in den eckigen Klammern sind für Apple HomeKit, die Einträge in den geschweiften Klammern für Amazon Alexa („alexa=…“) bzw. Google Assistant („ga=…“).
Diese neuen Items weisen wir jetzt in der Oberfläche den Kanälen des Heizungs Things zu:
Analog wird für „Set Temperature“ das Item „Buero_Heizung_TemperaturZiel“ verwendet.
7) Konfiguration einer Regel in openHAB
Damit der Betriebsmodus auch nach einem Neustart von openHAB noch auf „Heizen“ steht, muss noch eine entsprechende Regel eingerichtet werden, die beim Starten des Systems ausgeführt wird. Auch hier reicht es wieder, eine Datei mit entsprechendem Inhalt auf dem openHAB abzulegen, diesmal unter \\openhab\openHAB-share\openhab2-conf\rules, z.B. mit dem Namen Startup.rules, mit dem folgenden Inhalt:
rule "Started" when System started then Buero_Heizung_Modus.postUpdate("heat") end
8) Bekanntmachen der Geräte in den smarten Assistenten
Das war es auch schon, jetzt muss das Gerät nur noch den smarten Assistenten bekannt gemacht werden.
In Apples HomeKit ist das Gerät direkt sichtbar und muss nur noch dem richtigen Raum zugeordnet werden.
Amazons Alexa benötigt einmal den Befehl „Finde meine Geräte“, dann kann das Thermostat dem Raum zugeordnet werden.
Googles Assistant benötigt noch einen kleinen Anstoß, um das Gerät zu finden:
- Google Home App auf dem Smartphone starten
- „Nach neuen Geräten suchen“ in der openHAB Verknüpfung auswählen
- Gerät dem Raum zuweisen
- Einmalig den Betriebsmodus von „Andere“ auf „Heizung“ einstellen (alternativ könnte auch openHAB neu gestartet werden, da wir hierfür eine Regel beim Systemstart eingerichtet haben)
Schlusswort
Das war es, jetzt kann die Temperatur über Siri, Google Assistant oder Alexa per Sprache abgefragt oder eingestellt werden. So sieht es in den jeweiligen Assistenten auf dem Smartphone aus:
Ich freue mich über eure Kommentare, ob euch der Beitrag weitergeholfen hat. Schreibt auch gerne, wenn ihr Fragen habt oder doch etwas unklar geblieben ist. Oder wenn ihr aufbauend darauf spannende weitere Automatisierungs Projekte umsetzen konntet 🙂
Freiberuflicher IT Berater, Open Source Entwickler und begeisterter Smarthome Nutzer. Das hier ist mein Braindump für Technikthemen, die mich beschäftigen.
Ich möchte mich bei dir herzlich bedanken! Hat super funktioniert!
Ich habe es nach der Anleitung durchgeführt. Das Thermostat wird auch in der Alexa App angezeigt. Allerdings reagiert das Gerät nicht. In der Homekit App ist es auch nicht drin. Muss der String Buero_Heizung_Modus nur auf „heat“ stehen. Das macht bei mir irgendwie Probleme.