Hallo zusammen,
wie viele andere bereits in diesem Forum, bin ich seit zwei Tagen dabei mein FHEM + alexa-fhem aufzusetzen, doch leider findet das Alexa App meine FHEM dummy Geräte nicht. Den Amazon-Part habe ich wirklich akribisch und mehrfach überprüft und bin mir recht sicher, dass hier alles ok ist, inkl. Trigger.
So langsam bin ich leider mit meinem Latein am Ende, so dass ich diesen Thread hier erstelle. Zunächst möchte ich unterhalb ein paar Configs / Logs zusammenfassen:
config.json
{
"alexa": {
"port": 3000,
"name": "Alexa FHEM",
"keyFile": "/opt/fhem/alexa-fhem/key.pem",
"certFile": "/opt/fhem/alexa-fhem/cert.pem",
"nat-pmp": "",
"nat-upnp": false,
"applicationId": "amzn1.ask.skill.XXXXXXXXXXXXXXX",
"oauthClientID": "amzn1.application-oa2-client.XXXXXXXXXXXXXXX"
},
"connections": [
{
"name": "FHEM",
"server": "localhost",
"port": "8083",
"webname": "fhem",
"ssl": false,
"filter": "room=alexa"
}
]
}
Start-Debug log von Alexa FHEM
./alexa -D
[2018-04-02 11:57:10] using /opt/fhem/.alexa/config.json
[2018-04-02 11:57:10] ---
[2018-04-02 11:57:10] this is alexa-fhem 0.4.4
[2018-04-02 11:57:10] Fetching FHEM devices...
[2018-04-02 11:57:10] [FHEM] starting longpoll: http://localhost:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1522663030097
[2018-04-02 11:57:10] Server listening on: https://:::3000
[2018-04-02 11:57:10] [FHEM] Checking devices and attributes...
[2018-04-02 11:57:10] [FHEM] executing: http://localhost:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_380578658262268&XHR=1
[2018-04-02 11:57:10] [FHEM] executing: http://localhost:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_380578658262268&XHR=1
[2018-04-02 11:57:10] [FHEM] Fetching FHEM devices...
[2018-04-02 11:57:10] [FHEM] fetching: http://localhost:8083/fhem?cmd=jsonlist2%20room=alexa&fwcsrf=csrf_380578658262268&XHR=1
[2018-04-02 11:57:10] [FHEM] alexa device is MyAlexa
[2018-04-02 11:57:10] [FHEM] mappings for MyAlexa: {}
[2018-04-02 11:57:10] [FHEM] MyAlexa is switch
[2018-04-02 11:57:10] [FHEM] MyAlexa has
[2018-04-02 11:57:10] [FHEM] homebridgeMapping: #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um
Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent
Hue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200
Hue=verb=färbe,values=rot:0;grün:120;blau:220
Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER
TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent
TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad
Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent
#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr
[2018-04-02 11:57:10] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { rot: '0', 'grün': '128', blau: '200' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { rot: '0', 'grün': '120', blau: '220' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { auf: '100', zu: '0' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2018-04-02 11:57:10] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2018-04-02 11:57:10] [FHEM] executing: http://localhost:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;%7B$defs%7BMyAlexa%7D-%3E%7B%22alexa-fhem%20version%22%7D%20=%20%220.4.4%22%7D;%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200;;undef%7D&fwcsrf=csrf_380578658262268&XHR=1
[2018-04-02 11:57:10] perfectOfVerb:
[2018-04-02 11:57:10] { stelle: 'gestellt',
schalte: 'geschaltet',
'färbe': 'gefärbt',
mach: 'gemacht' }
[2018-04-02 11:57:10] verbsOfIntent:
[2018-04-02 11:57:10] [ OnIntent: [ 'schalte' ],
prozentIntent: [ 'stelle' ],
HueIntent: [ 'stelle' ],
HueIntentB: [ 'färbe' ],
SaturationIntent: [ 'stelle' ],
SaturationIntentB: [ 'sättige' ],
TargetPositionIntent: [ 'mach' ],
gradIntent: [ 'stelle' ] ]
[2018-04-02 11:57:10] characteristicsOfIntent:
[2018-04-02 11:57:10] { OnIntent: [ 'On' ],
prozentIntent: [ 'Brightness', 'TargetPosition', 'Volume' ],
HueIntent: [ 'Hue' ],
HueIntentB: [ 'Hue' ],
SaturationIntent: [ 'Saturation' ],
SaturationIntentB: [ 'Saturation' ],
TargetPositionIntent: [ 'TargetPosition' ],
gradIntent: [ 'TargetTemperature' ] }
[2018-04-02 11:57:10] prefixOfIntent:
[2018-04-02 11:57:10] { OnIntent: undefined,
prozentIntent: 'auf',
HueIntent: 'auf',
HueIntentB: undefined,
SaturationIntent: 'auf',
SaturationIntentB: undefined,
TargetPositionIntent: undefined,
gradIntent: 'auf' }
[2018-04-02 11:57:10] suffixOfIntent:
[2018-04-02 11:57:10] { OnIntent: undefined,
prozentIntent: 'prozent',
HueIntent: undefined,
HueIntentB: undefined,
SaturationIntent: undefined,
SaturationIntentB: undefined,
TargetPositionIntent: undefined,
gradIntent: 'grad' }
[2018-04-02 11:57:10] alexaTypes:
[2018-04-02 11:57:10] { light: [ 'licht', 'lampen' ],
blind:
[ 'rolladen',
'rolläden',
'jalousie',
'jalousien',
'rollo',
'rollos' ] }
[2018-04-02 11:57:10] roomOfEcho:
[2018-04-02 11:57:10] {}
[2018-04-02 11:57:10] fhemIntents:
[2018-04-02 11:57:10] { FHEMgutenMorgenIntent: 'gutenMorgen',
FHEMguteNachtIntent: 'guteNacht' }
[2018-04-02 11:57:10] [FHEM] executing: http://localhost:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;list%20MyAlexa%20.Alexa.Authorization;%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200;;undef%7D&fwcsrf=csrf_380578658262268&XHR=1
[2018-04-02 11:57:10] [FHEM] got: 3 results
[2018-04-02 11:57:10] [FHEM] MyAlexa: no service type detected
[2018-04-02 11:57:10] [FHEM] no device created for MyAlexa (alexa)
[2018-04-02 11:57:10] [FHEM] mappings for testLamp1: {}
[2018-04-02 11:57:10] [FHEM] testLamp1 is light
[2018-04-02 11:57:10] [FHEM] testLamp1 has
[2018-04-02 11:57:10] [FHEM] mappings for testSwitch1: {}
[2018-04-02 11:57:10] [FHEM] testSwitch1 is switch
[2018-04-02 11:57:10] [FHEM] testSwitch1 has
[2018-04-02 11:57:10] [FHEM] got .Alexa.Authorization
In FHEM habe ich bisher nur ein paar Dummy-Devices angelegt:
Bei beiden habe ich auch den genericdevicetype gesetzt und beide befinden sich im Raum "alexa", wie in der config.json angegeben
Bei einem Abfrageversuch der Geräte bekomme ich folgenden Log-Output von alexa-fhem:
[2018-04-02 12:00:26] accepted new token
[2018-04-02 12:00:26] { aud: 'amzn1.application-oa2-client.<GELÖSCHT>',
user_id: 'amzn1.account.<GELÖSCHT>',
iss: 'https://www.amazon.com',
exp: 2859,
app_id: 'amzn1.application.<GELÖSCHT>',
iat: <GELÖSCHT>}
**** Received Directive: {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"47a48d13-1e02-4219-8fc8-263572dfd703"},"payload":{"scope":{"type":"BearerToken","token":"Atza|IwEBIMwJF830eZj--oWt4A1wXrP-QB3Gli0OVYvnkdmeW6Jfa5o2r8aHc_8XMjzxjP83V_tMb9vmaX73wO7CLzWap4kpFI-d2vWFm0az-7T3lTN-eg1QF5CUtdGZ_8suG4_xUV0aJjybtniIRPcvwtQp6yaVNXOrOGDniwMajvp9zyZNXdwo6qyiVHs3PXTLJD_Y3E6uPyEkum8mf41qawGe74hINZcBfO1cGi3s5zKjopkVt968kagLcaCFijxOzHKJcpAg9agBvECGEqv0MSjbWR__lfjHWgjiEDKzsSscL4WZvS4XO80pzj0VnPXJX4ta31yr31vwjiomb9oaJU4Zr8ccFMV_f0CY_Cvb0YJPui6qrSLxmf7frMFiqf8aCjgmoLzVLge3V15ZmRGOFDZIRFvFvc5YCHEWYeJyQ7PnZW9R6xoAH23lnY-qjiovtE_2cXYIlD7zUNEgu5L9UvZRFdKabBlCajdu1fN2AnRED8r-8A"}}}}
response :{"event":{"header":{"name":"Discover.Response","payloadVersion":3,"namespace":"Alexa.Discovery","messageId":"c36a4bc6-cd94-406f-b2bc-6b437d557e43"},"payload":{"endpoints":[]}}}
**** Received Directive: {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"82ee1896-4fcb-451f-b88a-462a165a2111"},"payload":{"scope":{"type":"BearerToken","token":"Atza|IwEBIMwJF830eZj--oWt4A1wXrP-QB3Gli0OVYvnkdmeW6Jfa5o2r8aHc_8XMjzxjP83V_tMb9vmaX73wO7CLzWap4kpFI-d2vWFm0az-7T3lTN-eg1QF5CUtdGZ_8suG4_xUV0aJjybtniIRPcvwtQp6yaVNXOrOGDniwMajvp9zyZNXdwo6qyiVHs3PXTLJD_Y3E6uPyEkum8mf41qawGe74hINZcBfO1cGi3s5zKjopkVt968kagLcaCFijxOzHKJcpAg9agBvECGEqv0MSjbWR__lfjHWgjiEDKzsSscL4WZvS4XO80pzj0VnPXJX4ta31yr31vwjiomb9oaJU4Zr8ccFMV_f0CY_Cvb0YJPui6qrSLxmf7frMFiqf8aCjgmoLzVLge3V15ZmRGOFDZIRFvFvc5YCHEWYeJyQ7PnZW9R6xoAH23lnY-qjiovtE_2cXYIlD7zUNEgu5L9UvZRFdKabBlCajdu1fN2AnRED8r-8A"}}}}
response :{"event":{"header":{"name":"Discover.Response","payloadVersion":3,"namespace":"Alexa.Discovery","messageId":"2855287d-9659-4a0e-b6ae-2b5f51806dff"},"payload":{"endpoints":[]}}}
Die oauth Client ID und oauth Client Secret habe ich durch <GELÖSCHT> für das Posting ersetzt.
Lange Rede, kurzer Sinn. Das Alexa App findet keine Devices, obwohl das "Fetching-Devices" durch alexa-fhem folgendes ergibt:
Zitat
[2018-04-02 11:57:10] [FHEM] Fetching FHEM devices...
[2018-04-02 11:57:10] [FHEM] fetching: http://localhost:8083/fhem?cmd=jsonlist2%20room=alexa&fwcsrf=csrf_380578658262268&XHR=1
Arg "room=alexa"
Results
0
Name "MyAlexa"
PossibleSets "reload:noArg skillId"
PossibleAttrs "alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 alexaMapping:textField-long alexaTypes:textField-long fhemIntents:textField-long articles prepositions echoRooms:textField-long alexaConfirmationLevel:2,1,0 alexaStatusLevel:2,1 skillId:textField event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading oldreadings alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride userattr"
Internals
NAME "MyAlexa"
NR "24"
STATE "active"
TYPE "alexa"
active "0"
alexa-fhem version "0.4.4"
Readings {}
Attributes
alexaMapping "#Characteristic=<name>=<value>,...\nOn=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um\n\nBrightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\n\nHue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200\nHue=verb=färbe,values=rot:0;grün:120;blau:220\n\nSaturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER\nSaturation=verb=sättige,values=AMAZON.NUMBER\n\nTargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0\nTargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\n\nTargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad\n\nVolume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\n\n#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr"
alexaTypes "#Type=<alias>[,<alias2>[,...]]\nlight=licht,lampen\nblind=rolladen,rolläden,jalousie,jalousien,rollo,rollos"
echoRooms "#<deviceId>=<room>\n"
fhemIntents "#IntentName=<sample utterance>\ngutenMorgen=guten morgen\nguteNacht=gute nacht"
room "alexa"
1
Name "testLamp1"
PossibleSets " "
PossibleAttrs "alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 readingList setList useSetExtensions disable disabledForIntervals event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading oldreadings alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride userattr"
Internals
NAME "testLamp1"
NR "22"
STATE "on"
TYPE "dummy"
Readings
state
Value "on"
Time "2018-04-01 19:16:46"
Attributes
genericDeviceType "light"
room "alexa,testraum"
2
Name "testSwitch1"
PossibleSets " "
PossibleAttrs "alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 readingList setList useSetExtensions disable disabledForIntervals event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading oldreadings alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride userattr"
Internals
NAME "testSwitch1"
NR "21"
STATE "on"
TYPE "dummy"
Readings
state
Value "on"
Time "2018-04-01 19:16:46"
Attributes
genericDeviceType "switch"
room "alexa,testraum"
webCmd "on:off"
totalResultsReturned 3
Ja, in FHEM ist vermutlich noch totales Chaos, weil ich nur mit ein paar Dummy-Devices herumgespielt habe aber leider habe ich bisher nur wenig Erfahrung mit FHEM (vor zwei Tagen angefangen ;) )
Leider sehe ich den Wald vor lauter Bäumen nicht mehr, sodass ich hoffe, dass mir jemand von euch helfen kann. ;D
Auf den ersten schnellen Blick sieht es nicht soooo schlecht aus... ;)
Anfrage von Alexa kommt in alexa-fhem wohl schon mal an...
...die Ausgaben bzgl. deiner Dummies sehen noch nicht korrekt aus...
Poste doch mal ein list deiner Dummies:
list testSwitch1
list testLamp1
in die Fhem-Web-Console und den Output dann hier...
Gruß, Joachim
Vielen Dank für deine Antwort. Hier der Input:
Zitatlist testSwitch1
Internals:
NAME testSwitch1
NR 21
STATE on
TYPE dummy
READINGS:
2018-04-01 19:16:46 state on
Attributes:
genericDeviceType switch
room alexa,testraum
webCmd on:off
Zitatlist testLamp1
Internals:
NAME testLamp1
NR 22
STATE on
TYPE dummy
READINGS:
2018-04-01 19:16:46 state on
Attributes:
genericDeviceType light
room alexa,testraum
Es fehlt jewils das Attribut setList...
Wie das bei Light sein muss weiß ich nicht (on off dim vielleicht)...
Beim Switch einfach mal:
attr testSwitch1 setList on off
Und ich würde per alias oder alexaName einen "sprechenderen" Namen vergeben...
Nach den Änderungen alexa-fhem neu starten...
Gruß, Joachim
Hey Joachim,
vielen lieben Dank, es funktioniert! 8)
http://gnatbite.de/ftp/Alexa_Switch1.png (http://gnatbite.de/ftp/Alexa_Switch1.png)
Das attr testSwitch1 setList on off
hat geholfen.
Tausend Dank nochmal! :D
Bitte gerne!
Dann noch den Thread als gelöst kennzeichnen, umbenennen in beispielsweise: [gelöst] alexa-fhem: Es werden keine Geräte gefunden
Viel Spaß noch, Joachim
Habe ich markiert. :)