Ich verwende die Kombination FHEM <-> Alexa ja wirklich selten, hab's aber zum Spaß mal eingerichtet und es hat alles einwandfrei funktioniert. Ist allerdings schon die ein oder andere Woche her, dass ich Alexa irgend einen Befehl gegeben habe.
Gestern habe ich endlich einen Anwendungzweck gefunden und wollte ein neues Gerät (mqttLeselichtKueche) hinzufügen. Hab alexaName und genericDeviceType vergeben und über das Modul einen Reload gemacht. Und dann die Alexa-Webseite nach neuen Geräten suchen lassen. Hat nichts gefunden. Um zu sehen, ob's an dem neuen Device liegt, habe ich mal alle vorhandenen gelöscht und nochmal eine Suche ausgeführt. Da wurden dann nicht mal mehr die alten Devices gefunden.
Ich habe am Alexa-Device und am NodeJS-Unterbau nichts verändert seit es das letzte Mal ging. Außer regelmäßige Updates.
Hier ist der Debug-Output von einer Geräte-Suche über die Alexa-Webseite, da scheinen alles Devices, die für Alexa konfiguriert wären, auf.
*** CONFIG: parsed completely
[2019-3-12 16:23:50] os.homedir()=/opt/fhem
[2019-3-12 16:23:50] this is alexa-fhem 0.5.24
[2019-3-12 16:23:50] connecting to FHEM ...
[2019-3-12 16:23:50] [FHEM] trying longpoll to listen for fhem events
[2019-3-12 16:23:50] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1552404230471
[2019-3-12 16:23:50] [FHEM] got csrfToken:
[2019-3-12 16:23:50] [FHEM] Checking devices and attributes...
[2019-3-12 16:23:50] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22%2C%22userattr%22%2C%22%22)%7D&XHR=1
[2019-3-12 16:23:50] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&XHR=1
[2019-3-12 16:23:50] [FHEM] waiting for events ...
[2019-3-12 16:23:50] [FHEM] Fetching FHEM devices...
[2019-3-12 16:23:50] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName=..*&XHR=1
[2019-3-12 16:23:50] [FHEM] alexa device is alexa
[2019-3-12 16:23:50] [FHEM] mappings for alexa: {}
[2019-3-12 16:23:50] [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
[2019-3-12 16:23:50] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { rot: '0', 'grün': '128', blau: '200' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { rot: '0', 'grün': '120', blau: '220' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { auf: '100', zu: '0' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2019-3-12 16:23:50] [FHEM] value2homekit: { 'AMAZON.NUMBER': 'AMAZON.NUMBER' }
[2019-3-12 16:23:50] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3B%7B%24defs%7Balexa%7D-%3E%7B%22alexa-fhem%20version%22%7D%20%3D%20%220.5.24%22%7D%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
[2019-3-12 16:23:50] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bget%20alexa%20proxyToken%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
[2019-3-12 16:23:50] perfectOfVerb:
[2019-3-12 16:23:50] { stelle: 'gestellt',
schalte: 'geschaltet',
'färbe': 'gefärbt',
mach: 'gemacht' }
[2019-3-12 16:23:50] verbsOfIntent:
[2019-3-12 16:23:50] [ OnIntent: [ 'schalte' ],
prozentIntent: [ 'stelle' ],
HueIntent: [ 'stelle' ],
HueIntentB: [ 'färbe' ],
SaturationIntent: [ 'stelle' ],
SaturationIntentB: [ 'sättige' ],
TargetPositionIntent: [ 'mach' ],
gradIntent: [ 'stelle' ] ]
[2019-3-12 16:23:50] characteristicsOfIntent:
[2019-3-12 16:23:50] { OnIntent: [ 'On' ],
prozentIntent: [ 'Brightness', 'TargetPosition', 'Volume' ],
HueIntent: [ 'Hue' ],
HueIntentB: [ 'Hue' ],
SaturationIntent: [ 'Saturation' ],
SaturationIntentB: [ 'Saturation' ],
TargetPositionIntent: [ 'TargetPosition' ],
gradIntent: [ 'TargetTemperature' ] }
[2019-3-12 16:23:50] prefixOfIntent:
[2019-3-12 16:23:50] { OnIntent: undefined,
prozentIntent: 'auf',
HueIntent: 'auf',
HueIntentB: undefined,
SaturationIntent: 'auf',
SaturationIntentB: undefined,
TargetPositionIntent: undefined,
gradIntent: 'auf' }
[2019-3-12 16:23:50] suffixOfIntent:
[2019-3-12 16:23:50] { OnIntent: undefined,
prozentIntent: 'prozent',
HueIntent: undefined,
HueIntentB: undefined,
SaturationIntent: undefined,
SaturationIntentB: undefined,
TargetPositionIntent: undefined,
gradIntent: 'grad' }
[2019-3-12 16:23:50] alexaTypes:
[2019-3-12 16:23:50] { light: [ 'licht', 'lampen' ],
blind:
[ 'rolladen',
'rolläden',
'jalousie',
'jalousien',
'rollo',
'rollos' ] }
[2019-3-12 16:23:50] roomOfEcho:
[2019-3-12 16:23:50] {}
[2019-3-12 16:23:50] fhemIntents:
[2019-3-12 16:23:50] { FHEMgutenMorgenIntent: 'gutenMorgen',
FHEMguteNachtIntent: 'guteNacht' }
[2019-3-12 16:23:50] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Blist%20alexa%20.eventToken%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
[2019-3-12 16:23:50] Server listening on: http://127.0.0.1:40509 for proxy connections
[2019-3-12 16:23:50] *** SSH: checking proxy configuration
[2019-3-12 16:23:50] sshautoconf: home=/opt/fhem, spath=/opt/fhem/.alexa, cpath=/opt/fhem/alexa-fhem.cfg, sshpath=/opt/fhem/.ssh
[2019-3-12 16:23:50] Passed config: {"connections":[{"uid":999,"server":"127.0.0.1","name":"FHEM","webname":"fhem","port":"8083","filter":"alexaName=..*"}],"sshproxy":{"ssh":"/usr/bin/ssh","description":"FHEM Connector","options":["-i","/opt/fhem/.ssh/id_rsa","-p",58824,"fhem-va.fhem.de"],"bind-ip":"127.0.0.1","port":40509}}
[2019-3-12 16:23:50] sshautoconf: SSH key seems to exist
[2019-3-12 16:23:52] sshautoconf: Our SSH key is known at the reverse proxy, good!
[2019-3-12 16:23:52] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bjsonlist2%20alexa%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
*** FHEM: connected
[2019-3-12 16:23:52] [FHEM] got: 6 results
[2019-3-12 16:23:52] [FHEM] detected HUEDevice
[2019-3-12 16:23:52] [FHEM] mappings for HUEDevice18: { On: { reading: 'onoff', valueOff: '0', cmdOn: 'on', cmdOff: 'off' },
Brightness:
{ reading: 'bri',
cmd: 'pct',
delay: true,
reading2homekit: [Function: bound ] },
colormode: { reading: 'colormode' },
xy: { reading: 'xy' } }
[2019-3-12 16:23:52] [FHEM] HUEDevice18 is light
[2019-3-12 16:23:52] [FHEM] HUEDevice18 has
[2019-3-12 16:23:52] [FHEM] On [onoff;on,off]
[2019-3-12 16:23:52] [FHEM] Brightness [bri]
[2019-3-12 16:23:52] [FHEM] colormode [colormode]
[2019-3-12 16:23:52] [FHEM] xy [xy]
2019-03-12 16:23:52 caching: HUEDevice18-onoff: 0
2019-03-12 16:23:52 caching: HUEDevice18-bri: 205
2019-03-12 16:23:52 caching: HUEDevice18-colormode: ct
2019-03-12 16:23:52 caching: HUEDevice18-xy: 0.3176,0.3276
[2019-3-12 16:23:52] [FHEM] detected HUEDevice
[2019-3-12 16:23:52] [FHEM] mappings for HUEDevice2: { On: { reading: 'onoff', valueOff: '0', cmdOn: 'on', cmdOff: 'off' },
Brightness:
{ reading: 'bri',
cmd: 'pct',
delay: true,
reading2homekit: [Function: bound ] } }
[2019-3-12 16:23:52] [FHEM] HUEDevice2 is light
[2019-3-12 16:23:52] [FHEM] HUEDevice2 has
[2019-3-12 16:23:52] [FHEM] On [onoff;on,off]
[2019-3-12 16:23:52] [FHEM] Brightness [bri]
2019-03-12 16:23:52 caching: HUEDevice2-onoff: 0
2019-03-12 16:23:52 caching: HUEDevice2-bri: 254
[2019-3-12 16:23:52] [FHEM] mappings for dMultimediaWz: { On:
{ reading: 'state',
valueOff: '/off|A0|000000/',
cmdOn: 'on',
cmdOff: 'off' } }
[2019-3-12 16:23:52] [FHEM] dMultimediaWz is switch
[2019-3-12 16:23:52] [FHEM] dMultimediaWz has
[2019-3-12 16:23:52] [FHEM] On [state;on,off]
2019-03-12 16:23:52 caching: dMultimediaWz-state: on
[2019-3-12 16:23:52] [FHEM] mappings for enoTempSz: { CurrentTemperature: { reading: 'temperature', minValue: -30 } }
[2019-3-12 16:23:52] [FHEM] enoTempSz is thermometer
[2019-3-12 16:23:52] [FHEM] enoTempSz has
[2019-3-12 16:23:52] [FHEM] CurrentTemperature [temperature]
2019-03-12 16:23:52 caching: enoTempSz-temperature: 20.5
[2019-3-12 16:23:52] [FHEM] mappings for lightSceneWz: { On: { cmdOn: 'scene' } }
[2019-3-12 16:23:52] [FHEM] lightSceneWz is scene
[2019-3-12 16:23:52] [FHEM] lightSceneWz has
[2019-3-12 16:23:52] [FHEM] On [undefined;scene,undefined]
2019-03-12 16:23:52 caching: lightSceneWz-state: lsWZAllesAus
[2019-3-12 16:23:52] [FHEM] mappings for mqttLeselichtKueche: { 'E863F10D-079E-48FF-8F27-9C2605A29F52': { name: 'Power', reading: 'power', format: 'FLOAT', factor: 1 },
On:
{ reading: 'state',
valueOff: '/off|A0|000000/',
cmdOn: 'on',
cmdOff: 'off' } }
[2019-3-12 16:23:52] [FHEM] mqttLeselichtKueche is light
[2019-3-12 16:23:52] [FHEM] mqttLeselichtKueche has
[2019-3-12 16:23:52] [FHEM] Custom Power [power]
[2019-3-12 16:23:52] [FHEM] On [state;on,off]
2019-03-12 16:23:52 caching: mqttLeselichtKueche-power: 0.00
[2019-3-12 16:23:52] [FHEM] mqttLeselichtKueche-power factor: value 0 mapped to 0
[2019-3-12 16:23:52] [FHEM] caching: Custom Power: 0 (as number; from '0.00')
2019-03-12 16:23:52 caching: mqttLeselichtKueche-state: off
[2019-3-12 16:23:52] BearerToken '...343DF' read from alexa
[2019-3-12 16:23:52] [FHEM] got .eventToken
[2019-3-12 16:23:52] refreshing token
[2019-3-12 16:23:52] 39_alexa.pm is new version: true
[2019-3-12 16:23:52] sshautoconf: completed successfully
[2019-3-12 16:23:52] *** SSH: proxy configuration set up done
[2019-3-12 16:23:52] Reading alexaFHEM.ProxyConnection set to starting;; starting SSH
[2019-3-12 16:23:52] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20starting%3B%3B%20starting%20SSH%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
[2019-3-12 16:23:52] Starting SSH with -R 1234:127.0.0.1:40509 -oServerAliveInterval=90 -i /opt/fhem/.ssh/id_rsa -p 58824 fhem-va.fhem.de
[2019-3-12 16:23:54] Reading alexaFHEM.ProxyConnection set to running;; SSH connected
[2019-3-12 16:23:54] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20running%3B%3B%20SSH%20connected%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
[2019-3-12 16:23:54] *** SSH: proxy connection established
[2019-3-12 16:23:54] SSH: Welcome at the reverse proxy! This pseudoshell does not react to any input - do not get irritated.
[2019-3-12 16:24:06] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"5369e654-d70e-432f-b6a1-7b672e88dba8"},"payload":{"scope":{"type":"BearerToken","token":"15466281-2506D0C3A81662F0"}}}}
[2019-3-12 16:24:07] <<<< [ssh] {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"InvalidAccessTokenError","payloadVersion":"2","messageId":"630c9af0-8085-48f3-b15e-6b97649ced8d"},"payload":{}}
[2019-3-12 16:24:11] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"6e298c3c-5160-41d0-84b3-11cff1407067"},"payload":{"scope":{"type":"BearerToken","token":"15466281-2506D0C3A81662F0"}}}}
[2019-3-12 16:24:11] <<<< [ssh] {"header":{"namespace":"Alexa.ConnectedHome.Control","name":"InvalidAccessTokenError","payloadVersion":"2","messageId":"f6378867-dc61-40e0-8bfc-d559005317be"},"payload":{}}
[2019-3-12 16:24:48] Got SIGINT, shutting down alexa-fhem...
[2019-3-12 16:24:48] Reading alexaFHEM.ProxyConnection set to stopping;; alexa-fhem terminating
[2019-3-12 16:24:48] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20stopping%3B%3B%20alexa-fhem%20terminating%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
[2019-3-12 16:24:48] Stopping SSH ...
[2019-3-12 16:24:48] Reading alexaFHEM.ProxyConnection set to stopped
[2019-3-12 16:24:48] [FHEM] executing: http://127.0.0.1:8083/fhem?cmd=%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20alexa%20alexaFHEM.ProxyConnection%20stopped%3B%7B%24defs%7Balexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1
Sieht soweit gut aus denke ich. Was aber nicht im Log steht, sondern nur in der Shell auftaucht ist:
...@...:~$ sudo -u fhem alexa-fhem -D -c /opt/fhem/alexa-fhem.cfg > debug.log
[2019-3-12 16:23:53] failed to refresh token: invalid_grant: 'The request has an invalid grant parameter : refresh_token'
[2019-3-12 16:24:07] client not authorized: {"error_index":"LgihFbo4L2dNO2xTzGMruQAAAAAAAAABEflAS6uesbaYlO4FRO8S6eHOkTGeY0hQoftJjJSP3gBbk4FU-kkbc28pj8wuQTiFb5OfOhC_Dp_Skix-NDA_NHfuFXcVsBjr0r5gK7KUSG4LoskoO0kmB3-oEVyv8r_shsMzCZMZZ4W35bMsmOQf_CUT-sGOBWYGyRQhFD6Ts78JJoh6ZDXcXqKUmjNe50u8KEXzAj6819KuOlBhz3ebmw==","error_description":"The request has an invalid parameter : access_token","error":"invalid_token"}
[2019-3-12 16:24:07] ERROR: InvalidAccessTokenError from 127.0.0.1
[2019-3-12 16:24:11] client not authorized: {"error_index":"HJ-pVaRd1s05e5eKIAG0JwAAAAAAAAABEw665bqHm8K67XLUZaCg4ibtRgunQc3xXaOA5XWRluxNNSATrRjFxavrAqn77laqeHqa5BqBkoNZ62JX0NXw2JNqyCQ7mfw-MEy8TI1lJe-kyg3BEXrLQ48tu_HPEoZdUdEG9pr7lfNbnbb0_TsqRHIeWOqrxaZCkfBr-zKA4neMnP4FpH2rb0GaaQ5iovAwJ3iU23RHsLHc-QKRzPi5Pg==","error_description":"The request has an invalid parameter : access_token","error":"invalid_token"}
[2019-3-12 16:24:11] ERROR: InvalidAccessTokenError from 127.0.0.1
Ich nehme an, da liegt der Hund begraben? Wenn ja, weswegen ist der plötzlich ungültig? Und wie mache ich den gültig?
Oder gibt's andere Ursachen?
Ich hätte den Skill mal deaktiviert und wieder aktiviert. Hat leider auch nicht geholfen.
Danke!
Stefan