Homekit Beitragsbild

HomeKit Integration in openHAB – Siri, schalte das Licht an

Banner Homekit

Auch mit Apple’s HomeKit Framework kann openHAB integriert werden. Auch mit Euren iPhones bzw. iPads könnt Ihr auf Euer Smart-Home zugreifen.

Ähnlich wie die Integration in Amazon’s Alexa (siehe Beitrag Amazon Alexa Integration) arbeitet auch die HomeKit-Integration mit sogenannten Tags an den Items. Dazu später mehr.

Aufbau dieses Beitrags

Da wir die Beiträge auf worldoftech.de allgemein so halten möchten, dass man die meisten Tutorials ohne Eingriff auf Konfigurationsdateien durchführen kann, versuchen wir auch hier die komplette Einrichtung per PaperUI zu realisieren.

Leider ist dies oft nicht möglich – wir versuchen aber diese Aktionen auf ein Minimum zu begrenzen.

Da die Einrichtung sehr ähnlich mit der von Amazon Alexa ist, kann es hilfreich sein diesen parallel auch zu lesen. Das gilt natürlich auch in die andere Richtung.

Reklame

Installation der HomeKit-Integration

Wir loggen uns also auf unsere openHAB-Instanz ein und öffnen dort das PaperUI.

Homekit Addon

 

Anschließend müsst Ihr (leider) per Konsole eine Konfigurationsdatei anlegen, die Ihr unter [tt]/etc/openhab2/services/homekit.cfg[/tt] abspeichert.

Also sudo nano /etc/openhab2/services/homekit.cfg in die SSH-Konsole eingeben.

Der Inhalt sieht wie folgt aus:

org.openhab.homekit:port=9124
org.openhab.homekit:pin=094-27-192
org.openhab.homekit:useFahrenheitTemperature=false
org.openhab.homekit:thermostatCoolMode=MANU_MODE
org.openhab.homekit:thermostatHeatMode=MANU_MODE
org.openhab.homekit:thermostatAutoMode=AUTO_MODE
org.openhab.homekit:thermostatOffMode=AUTO_MODE
org.openhab.homekit:networkInterface=<IP-eurer-openHAB-Instanz>
org.openhab.homekit:name=openHAB
org.openhab.homekit:minimumTemperature=5
org.openhab.homekit:maximumTemperature=30

Speichern mittels CTRL+W, anschließend CTRL+X zum beenden von Nano.

Die restlichen Angaben können dann in der PaperUI-Oberfläche angelegt werden. Dazu gehen wir im PaperUI auf Configuration -> Services und wählen dort HomeKit Integration aus bzw. das Configure darunter.

Füllt die Konfiguration entsprechend des folgenden Screenshots aus. Der Pin sollte verändert werden. Es ist darauf zu achten, dass dieser im Format ###-##-### eingegeben wird. Es dürfen keine Zahlen hintereinander wiederholt werden bzw. in aufsteigender Reihenfolge. Diesen Pin benötigt Ihr später für die Einrichtung auf eurem iOS-Gerät.

 

Configure Homekit

Mit einem Klick auf den Expert Mode können noch folgende Werte angelegt werden:

name = <Frei wählbarer Name Eurer openHAB-Instanz>
maximumTemperature = 50
minimumTemperature = 0

So weit so gut – Damit wäre die Konfiguration der HomeKit-Schnittstelle erledigt sein.

Items mit Tags versehen

Wir gehen davon aus, dass Ihr euch schon mit Items auseinandergesetzt habt. Zur Auffrischung: Das sind die Eigenschaften, die Eure Smart-Home-Komponenten (Things) bereitstellen. Also stellt zum Beispiel eine Lampe (Thing) die Eigenschaft (Item) „An“ oder „Aus“ als Schalter bereit.

Damit nun HomeKit weiß, dass es sich zum Beispiel bei dem Item „LAMPE_KUECHE_STATE“ um einen Schalter handelt, der dafür verantwortlich ist, das dass Licht an oder aus geht, müssen wir es mittels eines Tags mitteilen. Das heißt, wir verpassen dem Item „LAMPE_KUECH_STATE“ den Tag „Lighting“.

Verfügbare Tags

Hier eine Liste der verfügbaren Tags

Tagunterstützte ItemsBeschreibung
LightingSwitch, Dimmer, ColorBeleuchtung mit Ein/Aus-Schalter, Dimmer und Farbwechsler
SwitchableSwitch, Dimmer, ColorÄhnlich wie Lighting, nur die Grammatik, die zusammen mit Siri angewendet wird ist anders
CurrentTemperatureNummerEin numerischer Wert, der ausgelesen werden kann. Als Einheit dient °C
CurrentHumidityNummerEin numerischer Wert, der ausgelesen werden kann. Als Einheit dient %H
homekit:HeatingCoolingModeStringDefiniert den aktuellen Betriebsmodus z.B. bei einem Thermostat
TargetTemperatureNummerEin numerischer Wert, der als Vorgabewert für Temperatur dient. Als Einheit dient °C
ThermostatGroupDefiniert eine Gruppe von Items als zusammenhängendes Thermostat

Das Tag „Thermostat“ hat hier eine Sonderstellung. Die erklären wir in Kürze.

Tags per REST-API an Items hängen.

Erinnert Ihr Euch an unser Tutorial, wie man HomeMatic-Komponenten in openHAB einrichtet? Dort haben wir empfohlen, den Simple Mode unter Item Linking zu aktivieren. Leider können an so erstellte Items KEINE Tags angehängt werden – also müsst Ihr leider diese Items löschen und manuell neu anlegen…

Items die im Simple Mode angelegt wurden, können nicht mit Tags versehen werden.

Dies dann auch den Vorteil, das Ihr die Bezeichnung der Items individuell wählen könnt und auch nur die notwendigen Items anlegen müsst. Notiert Euch die Bezeichnungen Eurer Items. Bei uns heißen Sie zum Beispiel „TM_Schlafzimmer_4_ActualTemperature

Anschließend installiert in PaperUI über Addons -> Misc die REST Documentation. Diese könnt Ihr dann über den Startbildschirm von openHAB öffnen.

 

Anschließend klicken wir auf den Punkt PUT /Items/{itemname}/tags/{tag} unter dem Menüpunkt items

openHAB Rest-API

Hier geben wir unter „itemname“ die Bezeichung des items ein und bei tag den entsprechenden Wert laut der obigen Tabelle ein. In unserem Fall ist das der aktuelle Temperaturwert des Thermostats im Schlafzimmer:

openHAB Rest-Api put

Mit einem Klick auf „Try it out! wird der Tag geschrieben. Ihr erhaltet eine Rückmeldung ob alles geklappt hat. In diesem Fall ist der Response Code „200″

openHAB Rest Api

Wir wiederholen das Ganze bis wir alle Items mit Tags versehen haben, die wir per HomeKit steuern möchten.

Prüfen können wir die Tags mit dem Menüpunkt GET /items/{itemname}. Hier fügen wir wieder unsere Item-Bezeichnung ein und klicken auf Try it out!

Homekit Setting

Alternativ könnt Ihr die Tags auch mittels habmin prüfen, sofern Ihr es installiert habt.

 

Es besteht auch die Möglichkeit, die items per Konfigurationsfile mit Tags zu versehen. Da wir aber so wenig wie möglich mit Konfigurationsfiles hantieren wollen, beschreiben wir diese Methodik hier nicht, sondern verweisen auf den Beitrag des Bindings.

Sonderfall Thermostate

Die Vorgehensweise bei Thermostaten ist etwas anders, da diese mehrere Items beinhalten. Dazu müssen zuerst Gruppen angelegt werden, die alle benötigten Items des individuellen Thermostats enthalten.

Das sind am Beispiel eines HomeMatic Thermostat die Items:

  • aktuelle Temperatur – CurrentTemperature
  • eingestellte Temperatur – TargetTemperature
  • Betriebsmodus – homekit:HeatingCoolingMode

Legen wir also zuerst eine Gruppe für jedes unserer Thermostate in PaperUI an. Dazu gehen wir auf den Menüpunkt Configurations -> Items und klicken auf das „+„-Symbol.

Im offenen Fenster füllen wir die Felder aus

openHAB HomeKit

  • Name – die Bezeichnung der Gruppe, hier solltet Ihr euch eine Nomenklatur überlegen, damit Ihr die Bezeichnung einheitlich ist. Zum Beispiel gTM_<Raumname>
  • Label – hier kommt die Beschriftung rein, kann frei gewählt werden.
  • Type – hier muss Group ausgewählt werden
  • Base Type – wird auf None eingestellt

Anschließend schließt Ihr den Vorgang mit einem Klick auf das „+“ -Symbol ab.

Prüft anschließend, ob in den entsprechenden Gruppen-Items mindestens die drei Sub-Items verknüpft wurden: Aktuelle Temperatur, Control Mode und eingestellte Temperatur.

Homekit

Anschließend auch hier die entsprechenden Tags vergeben und nicht vergessen der Gruppe selbst den Tag Thermostat zu verpassen.

 

Einrichtung der HomeKit-App

An unserem iOS-Gerät öffnen wir die Home App. Diese begrüßt uns (sofern wir sie das erste Mal nutzen) mit dem Willkommensbildschirm den wir wegdrücken um anschließend auf Gerät hinzufügen drücken.

Homekit iOS Homekit iOSHomekit iOS

Im folgenden Fenster öffnet sich die Kamera und man kann den Code, der auf HomeKit-kompatiblen Geräten aufgedruckt ist. Da wir sowas nicht haben, wählen wir am unteren Rand Code fehlt bzw. kann nicht gescannt werden? aus.

Die openHAB-Instanz sollte nun in der Liste auftauchen, die wir dann auswählen.

Homekit iOS Homekit iOS

Nun kommt unser PIN-Code den wir in den Einstellungen der HomeKit-Integration definiert haben zum Einsatz. Diesen geben wir nun ohne die Bindestriche ein.

Homekit iOS Homekit iOS

Im folgenden Schritt müssen wir die identifizierten Komponenten (hier die HomeMatic-Thermostate) den Räumen zuordnen. Anschließend können wir diese innerhalb der App steuern.

Homekit iOS Homekit iOS

Wir haben hier im Beispiel nur die HomeMatic-Thermostate eingebunden. Das ganze funktioniert natürlich auch mit Komponenten anderer Hersteller.

Viel Spaß beim Ausprobieren!