openHAB #8: Steuerung mit Amazon Alexa

OpenHAB mit Amazon Alexa

Offizieller Alexa Skill

Seid Anfang des Jahres existiert ein offizieller openHAB Skill im Amazon Alexa Skill Shop – dieses vereinfacht die Einbindung von Amazon Alex in openHAB immens. Hier nochmals vielen Dank an digitaldan für die Arbeit. Der Mann hat mehr als einen spendierten Kaffee verdient! Vorher konnte man die Einbindung nur über die Philips Hue Emulation von openHAB (für die bereits ein Skill im Amazon Alexa Shop vorhanden war) umsetzen.

Vorbereitung und Voraussetzungen

Um Amazon Alexa nutzen zu können, benötigen wir natürlich zuerst ein Amazon Alexa-fähiges Gerät, wie die Fernfeld-Spracherkennung Amazon Echo, Echo Dot, Echo Spot, Echo Show, Echo Plus oder FireTV Stick. Diese können bei Amazon erworben werden. Dafür benötigt man logischerweise ein Kundenkonto bei Amazon.


Seid neuem kann man auch mittels der Amazon Alexa App die Alexa Sprachsteuerung nutzen

Amazon Echo, Echo Dot oder FireTV

Für den Einstieg reicht der Amazon Echo Dot, den man in Schwarz oder Weiß erwerben kann.

Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API


Der Echo Dot wird bald in einen Technik-Review von uns getestet. Dieser Guide hier bezieht sich auf den Echo Dot.

Wer den Echo Dot auch für Streaming von Internet-Radio, Spotify oder Amazon Music nutzen möchte und mehr Wert auf Tonqualität legt, sollte sich den Amazon Echo anschauen:

Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API


Möchte man das ganze in seine TV-Anlage integrieren, kann man hier den Amazon FireTV Stick der neuesten Generation nutzen:

Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API


Hier hat man den Nachteil, dass der Fernseher laufen muss um Alexa zu nutzen.


Seit anfang 2018 sind der Amazon Echo Spot und Echo Show mit Display verfügbar. Den Echo Spot haben wir ausführlich getestet - das Review findet Ihr hier: Amazon Echo Spot Review


Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API


Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API


Des weiteren ist ein Smartphone mit Android bzw. ein iPhone zur Einrichtung des Echo notwendig.

myopenHAB Cloud

Nun müssen wir einen funktionierenden Zugang zu unserer lokalen openHAB Instanz mit der openHAB Cloud von myopenHAB.org haben. Wie dies gemacht wird, könnt Ihr im vorherigen Beitrag (falls noch nicht geschehen).

Die Items die Alexa später steuern soll, müssen über den openHAB Cloud Connector zur Fernsteuerung freigegeben sein. Auch dies wird im vorherigen Beitrag beschrieben.

Items mit Tags versehen

Damit der openHAB-Alexa-Skill auf die Items zugreifen kann, müssen sogenannten Tags an die Items vergeben werden. Da die PaperUI Oberfläche die Erstellung der Tags noch nicht unterstützt, müssen wir diese auf einem anderen Weg einbauen. Hier gibt es mehrere Möglichkeiten:

Variante #1 – über .items - Datei

Die Intention dieses Guide war ja ursprünglich, openHAB einzurichten ohne mit Konfigurationsdateien zu hantieren. Leider ist es an dieser Stelle unserer Meinung nach einfacher, die Tags über die Konfigurationsdateien anzulegen.

Dazu erstellen wir im Verzeichnis /etc/openhab2/items eine Datei mit dem Titel alexa.items wo wir unsere Items, die wir per Alexa-Sprachsteuerung bedienen möchten, anlegen.

Der Aufbau einer Item-Datei sieht folgendermaßen aus:


Item-Typ Item-Name "Beschriftungstext" <Name des Icons> (Gruppe1, Gruppe2, ...) ["tag1", "Tag2", ...] {Konfiguration des Bindings}


Mehr Informationen zu Items findet Ihr in der offiziellen openHAB2-Dokumentation. Wichtig ist das Ihr den korrekten Tag für das Item vergebt. Also "Thermostat" für eine Thermostat, "Lighting" für eine Beleuchtung. Eine Übersicht aller Tags gibt es auch in der offiziellen Homekit-Anleitung für openHAB

Der Inhalt der Datei sieht zum Beispiel für mein Wohnzimmer-Thermostat so aus:

Code
  1. Group gWohnThermostat "Wohnzimmer Thermostat" ["Thermostat"]
  2. Number WohnThermostatCurrentTemp "Wohnzimmer Thermostat Aktuelle Temperatur" (gWohnThermostat) [ "CurrentTemperature" ] {channel="homematic:HG-HM-CC-RT-DN:fa22ae2a:MEQ0576485:4#ACTUAL_TEMPERATURE"}
  3. Number WohnThermostatTargetTemperature "Wohnzimmer Thermostat Soll Temperatur" (gWohnThermostat) [ "TargetTemperature" ] {channel="homematic:HG-HM-CC-RT-DN:fa22ae2a:MEQ0576485:4#SET_TEMPERATURE"}
  4. String WohnThermostatHeatingCoolingMode "Wohnzimmer Thermostat Heating/Cooling Mode" (gWohnThermostat) [ "homekit:HeatingCoolingMode" ]

Ein Schalter lässt sich folgendermaßen ansteuern:

Code
  1. Switch WashSwitch "Waschmaschine" (gKeller) [ "Lighting" ] {channel = homematic:HG-HM-ES-PMSw1-Pl:fa22ae2a:LTK0124566:1#STATE}

Wichtig sind hier Channel-Angaben ganz am Ende – diese könnt Ihr über PaperUI auslesen.





So legt ihr eure Items komplett an - Ihr könnt hierbei auch alles Items nacheinander in eine .items-Datei schreiben.

Tipp
Ihr könnt auch Gruppen aus mehreren Items erstellen um so z.B. die Heizung in der ganzen Wohnung auf einmal zu steuern.

Variante 2 – per REST-API

Die zweite Möglichkeit die Tags zu den Items hinzuzufügen ist über die REST-API. Entweder man verbindet sich über eine REST-Client mit openHAB oder man installiert über PaperUI das AddOn "REST Documentation" aus dem Misc -Reiter. Nach der Installation erscheint im Startbildschirm von openHAB ein weiterer Button.



Im folgenden Fenster wählen wir die Aktion items und dort den letzten Eintrag PUT /items/{itemname}/tags/{tag}



Dadurch klappt der Eintrag auf und wir können das Items sowie den gewünschten Tag eingeben und anschließend mit dem "Try it out Button" speichern



Diese Methode empfiehlt sich allerdings nicht für Anfänger - Wir empfehlen Variante 1, weil wir sie auch selbst getestet haben.

Alexa mit openHAB verbinden

Wir öffnen den Alexa Skill Shop in unserer Alexa App auf dem Smartphone und suchen nach dem Skill »openHAB« oder wir gehen über den folgenden Link im Browser.

Den Skill aktivieren wir und werden dabei aufgefordert, uns in die myopenHAB Oberfläche einzuloggen, um die Accounts zu verbinden. Anschließend können wir über die Smart-Home-Funktion von Alexa nach den Komponenten, für die wir Tags angelegt haben, scannen und diese in Alexa einbinden.

Geräte per Sprachbefehl steuern

Sind die Komponenten erfolgreich mit Alexa verknüpft, können nun folgende Befehle genutzt werden:

  • Alexa, schalte ein Waschmaschine
  • Alexa, schalte aus Waschmaschine
  • Alexa, setze Wohnzimmer auf 19 Grad
  • Alexa, schalte Wohnzimmer aus
  • Alexa, erhöhe Wohnzimmer um 3 Grad

Die Bedienung per Alexa, funktioniert schon recht gut - jedoch nicht immer fehlerfrei. Da sich der Skill jedoch noch in der Entwicklungsphase befindet und neue Funktionen eingebaut werden, kann man das gerne hinnehmen.

    Über den Autor

    Gründer und Autor von worldoftech.de

    Seit 25 Jahren im Bereich IT unterwegs, leidenschaftlicher Computerspieler, Technik-Freak und begeistert von allem was einen Motor (Auto/Motorrad/Flugzeug) hat.


    Nutzt Zuhause openHAB2 zusammen mit HomeMatic Komponenten sowie netatmo als Wetterstation. InfluxDB und Grafana zur Auswertung. Weitere Gadgets von Xiaomi, Sonos und Samsung

    Patrick Team

    Kommentare 11

    • Hallo zusammen,


      kann es sein, dass dieses nicht mit der Alexa Show funktioniert?

      Sie findet bei mir nämlich keine Geräte, obwohl ich alles so gemacht habe wie beschrieben.

      Gruß
      Andre

    • Moin Patrick,


      klasse Artikel, damit ist mir das ganze Thema OpenHab2 und Alexa verständlicher geworden.
      Einen "interessanten" Fehler hab ich gefunden ... ich kann nur nicht einsortieren wo er hingehört.


      Ich habe mir eine Gruppe "Schlafzimmer" gebaut, eben nach dem Artikel, Temperatur auslesen klappt gut und damit auch die Rückmeldung von Alexa. Will ich aber eine Temperatur setzen, klappt das auch aber Alexa ist da typisch Frau und zickt rum. "Entschuldigung, da ist was schief gelaufen" aaaaber die Änderung wurde vorgenommen, taucht in der Paper UI und auch auf dem Thermostat auf ... nur die sprachliche Rückmeldung ist ... suboptimal. ;)

    • Wenn die Items doch in dem Alex Skill gefunden werden, könnt ihr ziemlich easy innerhalb des Alex Skills Gruppen erstellen um damit mehrere Items zu schalten.
      Funktioniert bei mir Problemlos z. B. mit Rollos und auch mit Lichtschalter. Bsp: Alexa - schalte Rollos Erdgeschoss auf 50%.

    • ich habe genau das gleiche Problem, hast du da inzwischen ne Lösung gefunden?


      Gruß
      Karsten

    • Danke für den interessanten Beitrag. Ich konnte damit meine Konfiguration für Alexa weitesgehend umsetzen.


      Eine Sache funktioniert bei mir allerdings noch nicht: mehrere Verbraucher auf einmal schalten. Du schreibst: „Tipp: Ihr könnt auch Gruppen aus mehreren Items erstellen ...“ – wie soll das genau gehen? Mit openHAB Gruppen? Folgendes habe ich versucht ... ohne Erfolg:


      Group gLicht_K "Licht Küche" (gEG) ["Lighting"]
      Dimmer K_Deckenlicht1 "Schrank" (gLicht_K) ["Lighting"] {knx="1/1/16,1/1/17,1/1/18"}
      Dimmer K_Deckenlicht2 "Herd" (gLicht_K) ["Lighting"] {knx="1/1/21,1/1/22,1/1/23"}


      Freue mich auf einen Hinweis


      Danke,


      Jörg

    • Hallo,


      ich bin auf euren interessanten Artikel gestoßen. Finde ihn sehr hilfreich. Vor allem aber eure Erläuterungen zum Setup von Alexa, finde ich mehr als gelungen und sehr empfehlenswert. Danke dafür. Hat mich echt inspiriert.


      Liebe Grüße
      Timea

    • Wie stellt sich die Konfiguration dar, wenn man ein item hat mit mehreren Funktionen?
      Sprich: eine lampe die helligkeit, farbe und farbtemperatur unterstützt?
      Ich suche über die paperui das Thing und lass darüber für jede funktion ein item erstellen.
      diese muss ich ja dann mit dem tag versehen um sie über alexa steuern zu können.
      wenn die items alle gleich heißen weiß alexa nicht ob ich die helligkeit oder farbe steuern will.


      kannst du dazu bitte ein beispiel posten?



      Vielen Dank
      Andy

      • Hallo Andy,


        du musst jedem Item einen anderen Tag verpassen: Also z.B. "Lampe Wohnzimmer Helligkeit", "Lampe Wohnzimmer Farbe", usw. - Diese musst Du dann bei der Sprachsteuerung auch explizit sagen.


        Vorraussetzung ist das der Farbwert auch über eine Zahl angegeben wird. Grün, Rot, Blau usw. versteht der Skill nicht.

      • Vielen Dank für deine Antwort.
        Hauptsächlich will ich die Konfiguration für Yeelights nutzen die ich an dem China Mainland Server anmelden musste weil ich den Smartgateway nutzen möchte etc.


        Dein Tipp funktioniert, nur leider sagt Alexa ständig, dass es mehrere Geräte mit dem Namen gibt und bittet mich die Auswahl zu konkretisieren.


        Das nervt natürlich und ist nicht praktikabel...
        Der Yeelight Skill selbst funktioniert anders, da nur 1 Eintrag pro Gerät vorhanden ist.
        Ich bilde mir ein, dass durch geschickte Gruppen Konfiguration das Problem gelöst werden könnte.


        Hast du noch einen Tipp bzw. einer der Leser?!


        Viele Grüße und vielen Dank

      • Hi Andy,


        wie konntest du das mit den Yeelights realisieren. Ich bekomme es leider nicht hin, dass die Geräte nach dem Pairing zwischen Harmony Hub und "hue Emulation" angezeigt werden.


        Vielen Dank und Grüße
        Jan