OpenHab Sprachsteuererung mit Alexa – SmartHome Server Tutorial – Teil 6

15. Dezember 2017

In diesem Artikel soll es um die Steuerung des SmartHomes per Sprache mit Alexa bzw dem Amazon Echo gehen. Für OpenHab gibt es mittlerweile einen Alexa-Skill, doch diesen möchte ich nicht benutzen, da man seinen OpenHab Server hierzu zunächst bei dem myopenHab Cloud-Service verbinden muss. Alexa kann aber auch mit gewissen Geräten direkt im heimischen WLAN kommunizieren, also kann man hier auch einen anderen Weg gehen – indem man eine Phillips Hue Bridge emuliert.

Hue Emulator installieren

OpenHab bietet hierzu das Add-On „Hue Emulation“ an, welches man im PaperUi von OpenHab unter „Add-ons“->“Misc“ installieren kann:

Nach der Installation muss unter „Configuration“->“Services“ der Pairing-Modus aktiviert werden:

Fertig. Theoretisch können nun entsprechend konfigurierte Geräte von Alexa gefunden werden. Damit das aber funktioniert, müssen zunächst ein paar Dinge an den Items konfiguriert werden.

Items anpassen

Im Teil 3 des Tutorials habe ich bereits über die Item-Files geschrieben, mit denen Geräte bzw. Items in OpenHab verwaltet werden können. Theoretisch können diese Items auch über die PaperUI-Oberfläche erstellt werden, das funktioniert aber nur bis zu einem gewissen Punkt. Für die Anbindung an Alexa müssen wir „Tags“ zu den Items hinzufügen, damit der Amazon Echo die Geräte passend identifizieren kann. Tags können (zumindest Stand heute) jedoch noch nicht über das PaperUI konfiguriert werden.

Also öffnen wir wieder in unserem bevorzugten Text-Editor unsere „default.items“ Datei im „items“ Verzeichnis (siehe Teil 3). Nehmen wir an, wir haben eine Deckenleuchte konfiguriert, die wir nun mit Alexa steuern möchten. Der Eintrag für das Item sieht derzeit wie folgt aus:

Switch WzDeckenleuchte {channel="homematic:HG-HM-LC-Sw1-FM:xxxxxxx:xxxxxxxxx:1#STATE"}

Der erste Teil gibt an, dass es sich um einen Schalter handelt, dann folgt der Name des Geräts und dann der Channel (bei mir ein HomeMatic Unterputz Schalter). Damit das Gerät von Alexa gefunden werden kann, ändern wir es wie folgt ab:

Switch WzDeckenleuchte "Wohnzimmer Deckenleuchte" [ "Lighting" ] {channel="homematic:HG-HM-LC-Sw1-FM:xxxxxxx:xxxxxxxxx:1#STATE"}

In den eckigen Klammern befindet sich der Tag, mit dem Alexa das Gerät als Leuchte identifiziert. Hier sind drei unterschiedliche Werte möglich:

„Lighting“ für dimmbare Leuchten, „Switchable“ für Schalter, und „TargetTemperature“ für Thermostate/Heizkörper.

In den Anführungszeichen wird die Bezeichnung angegeben, unter der Alexa das Gerät findet und steuern kann – hier also „Wohnzimmer Deckenleuchte“

SmartHome Geräte mit Alexa suchen

Nachdem die Datei gespeichert wurde (OpenHab liest sie automatisch neu ein), können wir unser Glück versuchen und „Alexa: Geräte suchen“ rufen. Nach ein paar Sekunden sollte Alexa sich mit den gefundenen Geräten zurückmelden. Hinweis: Sollte das nicht funktionieren, als Erstes den Pairing Modus prüfen, umschalten und erneut versuchen.

Fortan kann die Deckenbeleuchtung mit dem Ausruf „Alexa: Wohnzimmer Deckenleuchte an“ geschaltet werden.

Anmerkung: Was leider über die HueEmulation nicht funktioniert, ist die Abfrage eines Status – z.B. „Temperatur Wohnzimmer“ oder „Status Wohnzimmer Deckenleuchte“. Da kann ich persönlich aber mit leben.

Sinnvolle Benennung & Strukturierung

Gerade wenn eine Vielzahl von Geräten per Sprache gesteuert werden soll, ist es sinnvoll, sich ein paar Minuten Gedanken über die Benennung und Strukturierung seiner Geräte  zu machen. Zu kurze Bezeichnungen führen gerne zu Missverständnissen (bestimmte Begriffe sind bei Alexa schon anders belegt oder werden ständig anders verstanden -> ausprobieren), andererseits sind Bezeichnungen wie „Alexa Erdgeschoss Hausflur LED-Beleuchtung Schuhschrank ein“ ein wenig sperrig.

Ich habe mir angewöhnt, bestimmte Geräteklassen immer einheitlich zu benennen. Deckenleuchte versteht Alexa gut und bezeichnet immer die Hauptbeleuchtung des Raumes. Dann gibt es noch Deckenfluter, Stimmungslichter usw. Außerdem stelle ich immer den Raum voran – also „Wohnzimmer Heizung“ nicht „Heizung Wohnzimmer“. Das ist sicherlich Geschmackssache – auch hier ist Ausprobieren gefragt. Mitunter gibt es da auch unterschiedliche Ansichten bei den Bewohnern des Hauses/der Wohnung 🙂

Hier hilft der Umstand, dass man bei Geräte auch mehrfach anlegen kann:

Switch WzDeckenleuchte1 "Wohnzimmer Deckenleuchte" [ "Lighting" ] {channel="homematic:HG-HM-LC-Sw1-FM:xxxxx:xxxxxxx:1#STATE"}
Switch WzDeckenleuchte2 "Deckenleuchte Wohnzimmer" [ "Lighting" ] {channel="homematic:HG-HM-LC-Sw1-FM:xxxxx:xxxxxxx:1#STATE"}

Für Alexa sind das nun zwei verschiedene Geräte, geschaltet wird aber immer die gleiche Deckenleuchte. Auch ein Weg, sich das Leben einfacher zu machen.

Gruppen und Szenen

In Alexa gefundene Geräte können in der App zu Gruppen zusammengefasst werden, die man mit einem Befehl schalten kann. Unter „Alle Lichter“ könnten z.B. alle Leuchten gruppiert werden, so dass man beim Verlassen der Wohnung mit „Alexa: Alle Lichter aus“ bequem die komplette Beleuchtung deaktivieren kann.

Ein Kommentar

Lukas (Hobbyblogging)

Wenn man sich einmal an die Sprachsteuerung des eigenen Zuhauses gewöhnt hat, fällt es einem schwer ohne zu leben. Insbesondere wenn man spät heim kommt und womöglich noch alle Hände voll hat kann es sehr komfortabel sein, einfach einen Befehl an Alexa zu geben.
Klar, für viele ist es Spielerei und in größeren Wohnungen ist es auch schwierig diesen „Dienst“ überall zu haben. Man möchte ja nicht mehrere Echos kaufen für jeden Raum.
Im Übrigen geht das inzwischen auch umgekehrt und OpenHab ist in der Lage, den Amazon Echo zu steuern. Dabei kann man auch auf die Gruppen von Echos zugreifen und vieles mehr. Das Binding ist definitiv top!

Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.