OpenHAB Amazon Alexa Steuerung der Items
openHAB lässt eine Steuerung via Amazon Alexa Spracheingabe zu. Dafür wird lediglich ein Alexa fähiges Device, eine myopenhab.org openHAB Verknüpfung und die unten stehenden Konfigurationen benötigt. Damit kann man dann zum Beispiel folgende Alexa Befehle abschicken:
- Alexa, wie ist die Temperatur im Garten.
- Alexa, Rolladen im Wohnzimmer komplett hoch.
- Alexa, Rolladen im Schlafzimmer auf 30%.
- Alexa, ich aktiviere Sonnenschutz.
- Alexa, Licht im Hobbyraum aus.
Um dies Umzusetzen, gibt es zwei Möglichkeiten der Item Konfiguration. Tag und Metadata, wobei Metadata die neue und umfangreichere Lösung ist. Ich gehe deshalb nur kurz auf die Tag Lösung ein.
Voraussetzungen
- Amazon Echo Device oder anderes Alexa fähiges Gerät (Mobile App, FireTV)
- Alexa Mobile App eingerichtet und mit Amazon Konto Verbunden
- openHAB Installation mit myopenhab.org Verknüpfung
- openHAB Alexa fähige Items (zum Beispiel Schalter, Rollläden, Temperatur, Dimmer)
- openHAB Items die nicht readonly sind (nur Items die händisch in PaperUI angelegt wurden)
Konfiguration PaperUI
Wichtig ist bei der Alexa Integration, das wir die Regional Settings gepflegt haben. Leider verändert man hierdurch auch die Standard Sprache von PaperUI. Also gehen wir nach PaperUI --> Configuration --> System
und dort zu den Regional Settings
:
Dann brauchen wir noch die Rest API. Diese installieren wir in PaperUI unter Add-ons --> User Interfaces
Nun gibt es eine Neue UI im Dashboard von openHAB. hier kann die API aufgerufen und genutzt werden:
Lichtschalter
{
"value": "Lighting",
"config": {}
}
Temperatur
Luftfeuchtigkeit
{
"value": "CurrentHumidity",
"config": {}
}
Rollladen
{
"value": "RangeController.rangeValue",
"config": {category="INTERIOR_BLIND", friendlyNames="@Setting.Opening", supportedRange="0:100:10", unitOfMeasure="Percent", actionMappings="Close=0,Open=100,Lower=(-10),Raise=(+10)", stateMappings="Closed=0,Open=1:100"}
}
Markise / Awning
body
{
"value": "RangeController.rangeValue",
"config": {category="EXTERIOR_BLIND", friendlyNames="@Setting.Opening", supportedRange="0:100:10", unitOfMeasure="Percent", actionMappings="Open=0,Close=100", stateMappings="Open=0,Closed=1:100"}
}
Szene
Switch Schalter
{
"value": "Switchable",
"config": {}
}