openHAB 2 und Alexa Sprachsteuerung

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

openHAB 2 und Alexa Sprachsteuerung

Beitrag von Cyrelian »

Hallo zusammen,

da sich gerade immer mehr von Euch mit dem Thema openHAB und Alex Sprachsteuerung beschäftigen, möchte ich Euch hier einmal die beiden Wege (die aus meiner Sicht derzeit relativ einfach umzusetzen sind) und deren Konfiguration aufzeigen.

Zwei Wege? Ja ;)
Er erste Weg ist via Hue-Emulation. Der zweite Weg via Alexa-Skill und openHAB Cloud Service.

Alexa via Hue-Emulation:

Als erstes müsst Ihr Eure ITEMS entsprechen vorbereiten.Dafür setzt hinter den Namen des Items ["Lighting"] z.b. für Lichtquellen.
Für schaltbare Elemente wie z.B. Steckdosen könnt ihr mit ["Switchable"] nutzen. Temperaturen werden mittels ["TargetTemperature"] gesetzt.
Hier nochmal die TAGs in der Übersicht:

["TargetTemperature"]
Funktion: Number

["Lighting"]
Funktion: Rollershutter, Switch, Dimmer

["Switchable"]
Funktion: Switch


Das ganze sieht dann sollte dann so aussehen:

Code: Alles auswählen

/* -------------  Flur --------------------
*/

Switch AlexaEGFlurLicht	"Flur Licht" ["Lighting"]	{channel="homematic:HG-HM-LC-Sw1-FM:D15834B4-DC13-20C5-4917-XXXXXXX:XXXXXXXX:1#STATE"}
Switch AlexaEGFlurNachtLicht	"Nachtlicht"	["Lighting"]	{channel="hue:0010:001788XXXXXX:3:switch"}
Dimmer AlexaEGWohnzimmerLichtEsstisch	"Esstisch Licht"	["Lighting"]	{channel="homematic:HG-HM-LC-Sw1PBU-FM:XXXXX4-DC13-20C5-4917-23DECXXXXXXX:XXXXXX:1#STATE"}
Als nächstes müssen wir die Hue-Emulation installieren, das geht am besten über die PaperUI.

Hue-Emulation.PNG

Damit die Alexa App die Smart Home Geräte nun findet, müsst ihr den Service Hue-Emulation in den Pairing Modus setzen. Dafür öffnet ihr unter Configuration den Eintrag Services und wählt den Reiter dann den IO. Jetzt klickt auf Configure und setzt Pairing auf "Enabled". Dannach die Einstellungen mit "save" speichern.

Hue-Emulation1.PNG

Solltet Ihr (die Alexa App) Probleme haben die "Devices" zu erkennen, dann setzt das Pairing auf "Disabled" und tragt die IP Adresse des openHAB Servers ein.

Nachdem Ihr die obengenannten Schritte befolgt habt, hat die Alexa App nun die Möglichkeit die Smart Home Geräte zu erkennen. Hierfür geht ihr in die Alexa App und wählt unter Smart Home -> Discover Devices. Hier seht ihr jetzt die Geräte, die zuvor im Smart Home Designer mit den entsprechenden TAG versehen habt.

Hue-Emulation2.PNG

Ab nun könnt Ihr Alexa sagen, was sie für Euch tun soll :D . In meine Beispiel wäre das z.B.

"Alexa, schalte Flur Licht ein"
"Alexa, schalte Nachtlicht ein"
"Alexa, setze Esstisch Licht auf 85%"


Alexa via myopenHAB.org Cloud Service:

Der Unterschied zur Hue-Emulation liegt darin, dass Ihr die Hue-Emulation nicht mehr braucht :D. Also schaltete, wenn Ihr diese schon am laufen habt bitte vorher aus um Probleme zu vermeiden.

Als erstes müsst Ihr wie auch bei der Hue-Emulation Eure ITEMS bearbeiten (tagging), siehe oben.
Jetzt brauchen wir noch einen Account bei https://myopenhab.org/. Nachdem Ihr den Account eingerichtet habt, müsst ihr den "openHAB Cloud Connector" installieren.

Hue-Emulation.PNG

So kommt Ihr dann auch an die openHAB UUID und das openHAB SECRET ran. Diese Dateien findet Ihr im folgenden Verzeichnis /var/lib/openhab2/

UPDATE: Der "expose" wird seit openHAB 2.1 udn dem Skill update nicht mehr benötigt!

Weiter geht es jetzt mit dem "expose" der ITEMS, die Ihr mit Alexa steuern wollt.

In der PaperUI geht das so:

expose.PNG

Alternativ via "conf/services/openhabcloud.cfg"
Sollte diese nicht vorhanden sein, einfach anlegen und folgenden Inhalt rein:

Code: Alles auswählen

############################## openHAB Cloud Connector #############################

# The URL of the openHAB Cloud service to connect to.
# Optional, default is set to the service offered by the openHAB Foundation
# (https://myopenhab.org/)
#baseURL=

# Defines the mode in which you want to operate the connector.
# Possible values are:
# - notification: Only push notifications are enabled, no remote access is allowed.
# - remote: Push notifications and remote access are enabled.
# Optional, default is 'remote'.
#mode=

# A comma-separated list of items to be exposed to external services like IFTTT. 
# Events of those items are pushed to the openHAB Cloud and commands received for
# these items from the openHAB Cloud service are accepted and sent to the local bus.
# Optional, default is an empty list.
#expose=
Unter "expose", dann alle ITEMS rein, die Du im openHAB Cloud service sehen willst.

Aber Vorsicht, bitte nur eine der Varianten. Sonst überschreiben die sich gegenseitig.

Jetzt geht Ihr wieder in die Alexa App und aktiviert den openHAB Skill.

openhab_sklii.png

Ihr werdet nun automatisch zu https://myopenhab.org/ weitergeleitet, wo Ihr Euch mit Eurem Username und Password anmelden müsst.
Dann werdet Ihr gefragt ob die App Zugriff auf Euren https://myopenhab.org/ Account haben darf......Ihr antwortet bitte mit ALLOW :D .

Wartet einen Moment und geht dann wieder in die Alexa App und wählt unter Smart Home -> Discover Devices. Dort tauschen jetzt Eure "Devices" auf.

puh...ganz schön lang geworden :mrgreen: ....aber ich hoffe das hilft dem einen oder andern weiter.

CYA
Cyrelian
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Stargate
Beiträge: 19
Registriert: 9. Aug 2017 20:37

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von Stargate »

Hallo,

mir geht das taggen meiner Items nicht in den Kopf.
myopenhab, OpenHAB2, diverse Bindings, alles kein Problem. Läuft. (Auf einem Synology NAS)

Ich begreife den Vorgang des Taggens der Items für Alexa einfach nicht. REST ist installiert.
Ich sehe auch Items über myopenhab. Alexa tut halt so freiwillig noch nichts.

Kann mit bitte jemand genauer erklären wie ich ein Tag z.B ["TargetTemperature"] hinter den
Namen eines Termostats bekomme so das dies auch Funktioniert?

Aber bitte keine Geschichten mit über SSH und so, damit tu ich mir extrem schwer da blinder Anfänger.
Damit würde ich mir und allen anderen vermutlich keinen Gefallen tun :)

Danke schon mal!

Gruß, Robert

Benutzeravatar
alkaline
Beiträge: 173
Registriert: 20. Apr 2017 13:25

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von alkaline »

Ich habe gar keine Alexa Schalter / Zustände "exposed", also freigegeben für die Cloud, ggf. war dies zum Zeitpunkt des Erstellen dieses Posting noch notwendig.....

Hinsichtlich Tagging möchte ich dir folgende Beispiele geben: (Item Definitionen für Alexa)
Beispiel Schalter / Switch Nachtschaltung:

Code: Alles auswählen

//Alexa Nachtschaltung: alle Geräte aus
Switch Nachtschaltung "Nachtschaltung" <emergencyswitch> (gNacht_Alexa) ["Switchable"] 
Bedeutung Nachtschaltung:
Mit "Alexa, Nachtschaltung ein" werden alle definierten Geräte ausgeschaltet. Alexa hört auf den in Hochkomma geschriebenen Wert "Nachtschaltung"

Beispiel Alexa Fernseh im Wohnzimmer (Steckdose):

Code: Alles auswählen

Switch alexa_steckdose_tv "Fernseher" ["Switchable"] { mqtt=">[broker:cmnd/sonoff_WZ/power:command:*:default],<[broker:stat/sonoff_WZ/POWER:state:default]" }
Bedeutung Fernseh Steckdose:
Mit "Alexa, Fernseher ein" bzw. "Alexa, Fernseher aus" wird die Steckdose ein-/ ausgeschaltet. Alexa hört auf den in Hochkomma geschriebenen Wert "Fernseher"

Beispiel Abfrage Temperatur:

Code: Alles auswählen

// Alexa Items im Schlafzimmer (Homematic)
Number SZ_ThermostatCurrentTemp "Heizkörper Schlafzimmer aktuelle Temperatur" <temperature>	(gSZ_Alexa) [ "CurrentTemperature" ]	{channel="homematic:HMIP-eTRV:574299e0:000393C98D23AB:1#ACTUAL_TEMPERATURE"}
Number SZ_ThermostatTargetTemperature "Heizkörper Schlafzimmer Soll Temperatur" <temperature> (gSZ_Alexa) [ "TargetTemperature" ]	{channel="homematic:HMIP-eTRV:574299e0:000393C98D23AB:1#SET_POINT_TEMPERATURE" }
String SZ_ThermostatHeatingCoolingMode "Heizkörper Schlafzimmer Heiz Modus" (gSZ_Alexa) [ "homekit:HeatingCoolingMode" ]	{channel="homematic:HMIP-eTRV:574299e0:000393C98D23AB:1#SET_POINT_MODE" }
Bedeutung Temperatur Schlafzimmer:
Mit "Alexa, wie ist die Temperatur im Schlafzimmer" bekomme ich die Ansage "Die Temperatur Schlafzimmer Thermostat beträgt 22 Punkt 7 Grad "
Vermutung: Das Wort Thermostat kommt aus dem Item

Man kann sagen, die Schalter laufen sehr gut, die Temperaturen hingegen (nach meinem Wissen) nur in den USA und UK, in Deutschland klappt das noch nicht so gut, wird aber sicher noch besser.

Stargate
Beiträge: 19
Registriert: 9. Aug 2017 20:37

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von Stargate »

Hm, also ich habe inzwischen viel versucht, geklappt hat nichts davon.

Weder über die HueEmulation noch über openhabcloud.
(Die HueEmulation habe ich wieder deinstalliert da ich es eh gern über myopenhab laufen haben möchte)

Ich habe in @appstore/openHAB2/items eine Datei mit dem Namen alexa.items angelegt. Darin ist erst mal enthalten:

Number AlexaFlurTemperaturEinstellen "Flur Temperatur Einstellen“ ["TargetTemperature"] {channel="max:thermostat:JEQ0441031:JEQ05xxxxxx:set_temp"}
Number AlexaFlurTemperaturAbfragen "Flur Temperatur" ["Flur Temperatur"] {channel="max:thermostat:JEQ0441031:JEQ0xxxxxxxx:actual_temp"}

Alexa kann weder was mit "Flur" anfangen noch findet die Alexa.App auf dem iPhone überhaupt irgend ein Gerät ausser denen die es
bei der ersten Einrichtung gefunden hat und die auch funktionieren. myopenhab läuft ansich auch, ich sehe dort alle meine Geräte, ausser allem dem was in der alexa.items steht.

Was mach in denn da nur falsch? (Bin halt Anfänger..)

Benutzeravatar
Cyrelian
Beiträge: 601
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von Cyrelian »

Hi Stargate,

du willst also openHAB via Alexa Skill "openHAB"/myopenhab.org steuern. Ich gehe mal davon aus, dass Du die von mir genannten Schritte durchgegangen bist, wobei das "exposen" der ITEMS seit dem update nicht mehr benötigt wird.

Zu deiner Konfig:
das ist OK

Code: Alles auswählen

Number AlexaFlurTemperaturEinstellen "Flur Temperatur Einstellen“ ["TargetTemperature"]{channel="max:thermostat:JEQ0441031:JEQ05xxxxxx:set_temp"}

das ist falsch!:

Code: Alles auswählen

Number AlexaFlurTemperaturAbfragen "Flur Temperatur" ["Flur Temperatur"] {channel="max:thermostat:JEQ0441031:JEQ0xxxxxxxx:actual_temp"}
es muss so aussehen:

Code: Alles auswählen

Number AlexaFlurTemperaturAbfragen "Flur Temperatur" ["CurrentTemperature"]{channel="max:thermostat:JEQ0441031:JEQ0xxxxxxxx:actual_temp"}
Als nächstes würde ich mal checken, was die REST API zu den beiden ITEMS "AlexaFlurTemperaturEinstellen" und "AlexaFlurTemperaturAbfragen" sagt.
Dazu gehst du einfach in die REST "Oberfläche" via "http://openhabip:8080/start/index" dann auf REST API und dann auf "GET /items/{itemname}"
Hier sollte als Wert ein Response Code 200 zurückkommen. Dann ist das ITEM schon mal OK.

Wenn die Alexa App die neuen ITEMS nicht findet, dann stimmt entweder mit den TAG etwas nicht oder mit der Verbindung zu myopenhab.org nicht. Wobei bei dir ja einige ITEMS via Alexa ansprechbar sind, würde ich letzteres ausschließen.

Also erstmal die REST API checken ;)

CU
Cyrelian

Stargate
Beiträge: 19
Registriert: 9. Aug 2017 20:37

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von Stargate »

Also meine erzeugte "alexa.items" hatte einige falsche "" und natürlich in der Küche das "ü".
Der Tipp mit dem openHAB2 Logfile war Gold wert. Danke dafür !

Die .items Datei wird jetzt gelesen und auch benutzt.

Number AlexaFlurTemperaturEinstellen "Flur Temperatur Einstellen“ ["TargetTemperature"]
{channel="max:thermostat:JEQ0441031:JEQ05xxxxxx:set_temp"}

Scheint grundsätzlich nicht falsch zu sein da genau dieses eine Gerät als einziges! in der Alexa.App als Gerät erscheint. (Und nur über Hue-Emulation)

myopenhab habe ich deinstalliert weil es nicht mehr funktioniert.
Es ist zwar Online, es taucht dort aber unter keinen Umständen irgend ein Gerät auf das ich so wie hier beschrieben taggen will, kein Item oder sonst was. Expose wird nicht benutzt. UUID und Secret sind korrekt, sonst wäre es nicht Online. Die Einstellungen von myopnenhab mehrfach gelöscht.
Es geht nicht.

Also habe ich die Hue-Emulation versucht, die mir wenigestens das mühsam erarbeitete in der Alexa.App zeigt.

Kurios ist, ich sehe dieses Gerät, Alexa weigert sich es zu steuern weil sie angeblich "Flur" nicht kennt und nicht findet.
Genau so wenig wie Tempearartur, Sollwert oder sonst irgend was aus dem Text. Alexa kennt das Gerät nicht.

Es hat genau ein einziges mal für zwei mal die Temperartur um 2 Grad nach oben und wieder 2 Grad nach unten zu stellen.

Was überhaupt nicht geht und auch gar nicht erst von der Alexa.App gefunden wird wenn ich da hinzufüge ist das:

Number AlexaFlurTemperaturAbfragen "Flur Temperatur" ["CurrentTemperature"] {channel="max:thermostat:JEQ0441031:JEQ0xxxxxxxx:actual_temp"}

"AlexaFlurTemperatur bzw. "Flur Temperatur" in jeder beliebig geänderen Anordnung funktioniert auch nicht.
Es wird vollkommen und konsequent ignoriert.

Stargate
Beiträge: 19
Registriert: 9. Aug 2017 20:37

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von Stargate »

Dazu hat wohl niemand eine Idee?

Inzwischen habe ich due Hue-Emulation abgeschaltet und erneut myopenhab ausprobiert.
Das verhalten ist anlog wie beschrieben. Alexa "kennt" ein einziges Termostat von 6 und das will sie nicht richtig bedienen.

Welche Ansatzpunkte gibt es da noch?

N8Falke
Beiträge: 1
Registriert: 14. Nov 2017 08:07

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von N8Falke »

Ich hatte am Anfang auch Probleme weil Alexa die sachen nicht gefunden hat.

Hier meine Erfahrungen:
- In myopenhab braucht kein Gerät drin zu sein.
- Damit Alexa ein Item findet:
1. Item anlegen: zb. Switch hallo "hallo" ["Switch"]
2. danach einmal echo neustarten und im echo Geräte suchen. Echo findet ein switch mit Namen Hallo.
- Leider lassen sich diese Test-Item s nicht löschen, sondern nur deaktivieren. Habe bestimmt 20 Geräte die nur zum testen waren.

boesemani
Beiträge: 5
Registriert: 20. Okt 2017 19:16

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von boesemani »

Ich habe die Hinweise dankbar gelesen, aber bei mir will Alexa die Geräte nicht finden.
Ich habe die Alexa APP erfolgreich mit der Openhab Cloud verbunden.
In der Cloud wird mit der Status als Online angezeigt.
Ich habe probeweise folgende Items unter der Datei File:
/etc/openhab2/items/home.items
eingegeben.

Code: Alles auswählen

Switch alexa_steckdose "steckdose" ["Switchable"] { {channel=device:7b0588e3:node2:switch_binary}
Switch hallo "Test" ["Switch"]
Eine Suche in der SmartApp brachte nach einem Neustart des Echo Dot keine neuen Ergebnisse.
Die Anfrage am Dot Alexa, schalte Test ein bzw. ...schalte Steckdose ein wurde mit
"Ich habe Steckdose nicht gefunden"
beantwortet.
Wo ist der Denkfehler?

EdgarWallace
Beiträge: 3
Registriert: 1. Dez 2017 22:09

Re: openHAB 2 und Alexa Sprachsteuerung

Beitrag von EdgarWallace »

Hallo.

Nach diesem Tutorial habe ich über die my openhab Variante mit den jeweils aktuellen Installationen das Problem dass Alexa nichts finden will. Geschaltet werden sollen Brennstuhl 433MHz Steckdosen. Dies klappt über die App perfekt.

Myopenhab und Openhab auf dem Raspberry sind verknüpft und der Status Online wird angezeigt. Der Skill ist ebenfalls erfolgreich verknüpft. Die Items und Tags sehen wie folgt aus. Liegt dort der Fehler?
Screenshot_20171208-105456.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten