alexa-fhem: amazon alexa smart home skill für fhem

Begonnen von justme1968, 05 November 2016, 23:21:32

Vorheriges Thema - Nächstes Thema

Tueftler1983

So bin weiter, beide skills sind aktiviert und verknüpft.

Doch ich bekomme wenn ich unter Smart Home, Geräte suchen klicke keine Geräte angezeigt.

Habe in FHEM mehrere Geräte mit dem attr generaticDeviceTyp Switch versehen, einen Alexa Room und Alexa Namen vergeben. Danach den Alexa service neu gestartet und dann in der Alexa APP nach Geräten gesucht. Aber nix gefunden.

MadMax-FHEM

Was kommt denn im alexa-fhem Log (bzw. Console, wenn manuell gestartet) beim Start?
Findet alexa-fhem die Geräte?

Kommen weitere Ausgaben/Logeinträge bei der Suche über Alexa bzw. der App?

Was passiert beim Test über AWS Lambda?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Kusselin

Zitat von: Tueftler1983 am 01 April 2018, 22:39:02
Wohin kopieten? In das securety profil? Oder wohin?
Genau, in das Security profil..hat das jetzt so funktioniert?

Tueftler1983

ja das hat funktioniert, konnte jetzt sowohl das das SmartHome Skill als auch das Cusom Skill aktivieren und mit dem Konto Verknüpfen.

Wo kann ich denn das Logfile Finden oder kann ich das nur über Terminal sehen wenn ich sudo systemctl status -l alexa eingebe?

dann kommt das
pi@raspberrypi:~ $ sudo systemctl status -l alexa
● alexa.service - Node.js Alexa Server
   Loaded: loaded (/etc/systemd/system/alexa.service; enabled)
   Active: active (running) since Mo 2018-04-02 00:38:15 CEST; 9h ago
Main PID: 5312 (alexa)
   CGroup: /system.slice/alexa.service
           └─5312 alexa

Apr 02 00:53:34 raspberrypi alexa[5312]: response :{"event":{"header":{"name":"D                                                                             iscover.Response","payloadVersion":3,"namespace":"Alexa.Discovery","messageId":"                                                                             befde89a-295d-4df0-9dc7-27a76aac133d"},"payload":{"endpoints":[]}}}
Apr 02 00:54:17 raspberrypi alexa[5312]: [2018-4-2 00:54:17] accepted new token
Apr 02 00:54:17 raspberrypi alexa[5312]: **** Received Directive: {"directive":{                                                                             "header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","                                                                             messageId":"xxxxxxxxxxxxxxx"},"payload":{"scope":{"type":"B                                                                             earerToken","token":"Atza|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx                                                                            nY1v78d2BBfYXGn-nX9JeUt1a_7Krs3PGECHFa7imjxmQ6lAPV_tcMFNlNL8eZ4cc_m3qcFD0BZmx5-y                                                                             PDHU_jAT0O2_-PsCl6BYe-3vsoiNPPas0bm2gkwtwu0dT60batbb7vutHJcZKFMH9c18GyDdNCfMa5Xr                                                                             wJ4s8NeFXO7iNGwP53LvJkDchQsQu_dkHl-KkZ3cwLwh60x7q-cW9uZXMamJdPzGTcIoJAaQyAHagBDj                                                                             ot5NQr7SGVFHTZVrQ-pp0PRvkOXYok6NzWwnVQLsuskZ8wH7_c1BiTjCagv1gEmCYmwG1fIARTZB6e7H                                                                             WkKK4DRXmQImFLyY-GOsb0uJidpI2L2GCgucZln1dWhVlOqMuWYw3urPKF_xxxxxxxxxx"}}}}
Apr 02 00:54:17 raspberrypi alexa[5312]: response :{"event":{"header":{"name":"D                                                                             iscover.Response","payloadVersion":3,"namespace":"Alexa.Discovery","messageId":"                                                                             1ff8c749-d38f-40f2-8f6b-bb533f9952ad"},"payload":{"endpoints":[]}}}
Apr 02 07:16:21 raspberrypi alexa[5312]: [2018-4-2 07:16:21] accepted new token
Apr 02 07:16:21 raspberrypi alexa[5312]: **** Received Directive: {"directive":{                                                                             "header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","                                                                             messageId":"67f8ab6d-afd7-4682-a85b-fb846c4d44e5"},"payload":{"scope":{"type":"B                                                                             earerToken","token":"Atza|xxxxxxxxxxxxxxxxxxXJJyAki4kCT5ggcoY9                                                                             aq7mZz_OaQPnhOJw3NojzRcmNAqI1frhlNsOSSfI4GaB2aVU1gsBtp2bx80cz46ILWDFmBjjIWZcI9B8                                                                             w_nuswOWz2x_bjTZV-VxXhq3dQ7lvP7EmQeFEe0oKTbp3oV3joo3AsmIXVZW7ShSElg_PbpjSZTeatwc                                                                             Qq5JFahKTpvwfwJGdZC6drnDJnnIgfzTgyLzOBbDTmMnOr8C7UdeJ9LAXkfX8_x3NA5XlnL5eM9nY6Tm                                                                             l9Qp05hDOdiln0FJhrTTRqhYjA-BIPKkxG-CVXqewK2ekS399QjWhie_xxxxxxxxxxxxxxxx"}}}}
Apr 02 07:16:21 raspberrypi alexa[5312]: response :{"event":{"header":{"name":"D                                                                             iscover.Response","payloadVersion":3,"namespace":"Alexa.Discovery","messageId":"                                                                             0d9404be-9ef6-xxxxxxxxxxxx"},"payload":{"endpoints":[]}}}
Apr 02 09:33:13 raspberrypi alexa[5312]: [2018-4-2 09:33:13] accepted new token
Apr 02 09:33:13 raspberrypi alexa[5312]: **** Received Directive: {"directive":{                                                                             "header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","                                                                             messageId":"5ae7ec90-82f8-41c0-b103-cf3254236bc8"},"payload":{"scope":{"type":"B                                                                             earerToken","token":"Atza|IwEBIN0gBNx4aeeapeEKjhIMsvr78t_MP80SbaIdacuMvuDus7JXjf                                                                             Xy-QXxeg4wcCamPkLuogGWcRx5QMa8zO-znXYW0qVrnf8ZrSrFdKmexNUTLTRtVsAJlmgrNGEWurZZ-E                                                                             RvMiFloJ59CZ90lN-SPyg69ng5JE2fCIXyPPFV1-xllvB4fF8p88DNjxpfofuf8IrF2Et0407INnGKFv                                                                             PV_Lklhd1C_35VjaPxbPorqmDMOmIpawcQ_5Z7TnBrmjEUrmrp_nsZZOFmh-tudtwexLItuXd0xtjpGf                                                                             AaKtgXDQduaHkthJVpBzeSPmSBXkvc6BveQkR4xkpRwMSXg0L5cE_lH9AQEJ5OZbjn5vKJrL7p9A23oO                                                                             Dms4z9tM21rgkMz3x6_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}}}}
Apr 02 09:33:13 raspberrypi alexa[5312]: response :{"event":{"header":{"name":"D                                                                             iscover.Response","payloadVersion":3,"namespace":"Alexa.Discovery","messageId":"                                                                             89cf1ea2-d784-4dab-a7e8-xxxxxxxxx"},"payload":{"endpoints":[]}}}

Tueftler1983

Das kommt wenn ich über Mobilfunk auf den Port 3000 zugreife mit dem Browser:
header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"xxxxxxxxxxxxxxe-49da119c4f62"},"payload":{}}

MadMax-FHEM

Ok, die Anfrage kommt schon mal an :)

Hmmm, dann findet wohl alexa-fhem keine Geräte...

Filter in der config.json passt aber!?

Wie startest du?

Startscript in /etc/init.d ?
Oder per systemd?

Wo hast du alexa-fhem hin installiert?
Welcher User startet alexa-fhem?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

@Tueftler

Prüf mal

1. im lambda.js Code das bei Host keine  "https://" Angabe eingetragen hast.
    Also bspw.
    const HOST='xxxxx.myfritz.net';
    statt
    const HOST='https://xxxxx.myfritz.net';

2. im Trigger auch wirklich die ApplicationID drin steht und nicht versehentlich die ClientID eingetragen hast.

MadMax-FHEM

Zitat von: TomLee am 02 April 2018, 12:32:36
@Tueftler

Prüf mal

1. im lambda.js Code das bei Host keine  "https://" Angabe eingetragen hast.
    Also bspw.
    const HOST='xxxxx.myfritz.net';
    statt
    const HOST='https://xxxxx.myfritz.net';

2. im Trigger auch wirklich die ApplicationID drin steht und nicht versehentlich die ClientID eingetragen hast.

Sollte passen, da ja die Suchanfrage (laut "Logausgabe") anzukommen scheint...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Tueftler1983

#3683
Also wenn ich per hand starte starte ich so: sudo systemctl start alexa sonst wird es eig beim Hochfahren via start script gestartet.

Die config.json sieht so aus:
{
    "alexa": {
        "port": 3000,
        "name": "pi",
        "keyFile": "/opt/fhem/alexa-fhem/key.pem",
        "certFile": "/opt/fhem/alexa-fhem/cert.pem",
        "applicationId": "amzn1.ask.skill.68700fd1-xxxxxxxxxxxx",
        "oauthClientID": "amzn1.application-oa2-clientxxxxxxxxx",
        "permissions": {"<skill-id>": { "client_id": "xyz", "client_secret": "123"}}
    },
   
    "connections": [
        {
            "name": "FHEM",
            "server": "192.168.2.172",
            "port": "9999",
            "filter": "room=alexa"

        }
    ]
}


habe es als User pi installiert, die config.json liegt in: home/pi/.alexa

Im lamda.js code steht die Adresse so const PORT=3000;
const HOST='Holger-xxxxx.zapto.org';


So zwischendurch auf jedenfall schonmal ein riesen dankeschön das ihr mir helft!!!!


Nachtrag:
Hier ein Device das ich in Alexa finden will:
Internals:
   DEF        impuls 10 1
   Funken_MSGCNT 4
   Funken_TIME 2018-04-02 10:55:15
   ID         10
   IODev      Funken
   LASTInputDev Funken
   MSGCNT     4
   NAME       Noah_Nacht
   NR         114
   PROTOCOL   impuls
   STATE      off
   SYSCODE   
   TYPE       pilight_switch
   UNIT       1
   READINGS:
     2018-04-02 10:55:15   state           off
Attributes:
   IODev      Funken
   Licht      WohnungLicht
   alexaName  Noah Nachtlicht
   alexaRoom  Noah
   alias      Nachtlicht Noah
   devStateIcon on.*:scene_sleeping@green off.*:scene_sleeping@red
   genericDeviceType switch
   icon       scene_sleeping
   room       Alexa,Holger,Nadja,Noah
   userattr   Licht Licht_map structexclude

MadMax-FHEM

#3684
Gut ist zwar nur/erst die hälfte der Antworten (und nicht wie erwartet ;)  ) aber mal sehen.

Mit manuell starten meinte ich nicht den Service manuell starten (und dass der sonst automatisch gestartet wird/wurde sieht man ;)  ), sondern:

in den Installationspfad "gehen", vermutlich: /opt/fhem/alexa-fhem/ und dann dort:

./bin/alexa

eingeben und dann die Ausgabe posten.

Vorher natürlich den automatisch (oder manuell) gestarteten Dienst beenden ;)

Und auch mal ein list eines deiner Geräte das gefunden werden sollte posten...

EDIT: und bevor du deine Geräte nimmst evtl. erst mal mit einem einfachen Dummy beginnen (Beispiel im Wiki und auch mehrfach hier und in anderen alexa-fhem Threads).

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Tueftler1983

so hier die gefragte ausgabe:
pi@raspberrypi:/opt/fhem/alexa-fhem $ ./bin/alexa
[2018-4-2 13:59:20] using /home/pi/.alexa/config.json
[2018-4-2 13:59:20] ---
[2018-4-2 13:59:20] this is alexa-fhem 0.4.4
[2018-4-2 13:59:20] Fetching FHEM devices...
[2018-4-2 13:59:20] [FHEM] starting longpoll: http://192.168.2.172:9999/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1522670360873
[2018-4-2 13:59:20] Server listening on: https://:::3000
[2018-4-2 13:59:20] [FHEM] Checking devices and attributes...
[2018-4-2 13:59:20] [FHEM]   executing: http://192.168.2.172:9999/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[2018-4-2 13:59:20] [FHEM]   executing: http://192.168.2.172:9999/fhem?cmd=jsonlist2%20TYPE=alexa&XHR=1
[2018-4-2 13:59:20] [FHEM] Fetching FHEM devices...
[2018-4-2 13:59:20] [FHEM] fetching: http://192.168.2.172:9999/fhem?cmd=jsonlist2%20room=alexa&XHR=1
[2018-4-2 13:59:21] [FHEM] alexa device is MyAlexa
[2018-4-2 13:59:21] [FHEM] MyAlexa is switch
[2018-4-2 13:59:21] [FHEM] MyAlexa has
[2018-4-2 13:59:21] [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-4-2 13:59:21] [FHEM]   executing: http://192.168.2.172:9999/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&XHR=1
[2018-4-2 13:59:21] perfectOfVerb:
[2018-4-2 13:59:21] { stelle: 'gestellt',
  schalte: 'geschaltet',
  'färbe': 'gefärbt',
  mach: 'gemacht' }
[2018-4-2 13:59:21] verbsOfIntent:
[2018-4-2 13:59:21] [ OnIntent: [ 'schalte' ],
  prozentIntent: [ 'stelle' ],
  HueIntent: [ 'stelle' ],
  HueIntentB: [ 'färbe' ],
  SaturationIntent: [ 'stelle' ],
  SaturationIntentB: [ 'sättige' ],
  TargetPositionIntent: [ 'mach' ],
  gradIntent: [ 'stelle' ] ]
[2018-4-2 13:59:21] characteristicsOfIntent:
[2018-4-2 13:59:21] { OnIntent: [ 'On' ],
  prozentIntent: [ 'Brightness', 'TargetPosition', 'Volume' ],
  HueIntent: [ 'Hue' ],
  HueIntentB: [ 'Hue' ],
  SaturationIntent: [ 'Saturation' ],
  SaturationIntentB: [ 'Saturation' ],
  TargetPositionIntent: [ 'TargetPosition' ],
  gradIntent: [ 'TargetTemperature' ] }
[2018-4-2 13:59:21] prefixOfIntent:
[2018-4-2 13:59:21] { OnIntent: undefined,
  prozentIntent: 'auf',
  HueIntent: 'auf',
  HueIntentB: undefined,
  SaturationIntent: 'auf',
  SaturationIntentB: undefined,
  TargetPositionIntent: undefined,
  gradIntent: 'auf' }
[2018-4-2 13:59:21] suffixOfIntent:
[2018-4-2 13:59:21] { OnIntent: undefined,
  prozentIntent: 'prozent',
  HueIntent: undefined,
  HueIntentB: undefined,
  SaturationIntent: undefined,
  SaturationIntentB: undefined,
  TargetPositionIntent: undefined,
  gradIntent: 'grad' }
[2018-4-2 13:59:21] alexaTypes:
[2018-4-2 13:59:21] { light: [ 'licht', 'lampen' ],
  blind:
   [ 'rolladen',
     'rolläden',
     'jalousie',
     'jalousien',
     'rollo',
     'rollos' ] }
[2018-4-2 13:59:21] roomOfEcho:
[2018-4-2 13:59:21] {}
[2018-4-2 13:59:21] fhemIntents:
[2018-4-2 13:59:21] { FHEMgutenMorgenIntent: 'gutenMorgen',
  FHEMguteNachtIntent: 'guteNacht' }
[2018-4-2 13:59:21] [FHEM]   executing: http://192.168.2.172:9999/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&XHR=1
[2018-4-2 13:59:21] [FHEM] got: 0 results


und die ausgabe wenn ich bei Alexa eine suche nach geräten starte:
[2018-4-2 14:00:36] [FHEM]   executing: http://192.168.2.172:9999/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&XHR=1
[2018-4-2 14:00:52] accepted new token
**** Received Directive: {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"b6ccdf04-69e2-4b69-b7cf-ff26b6eed910"},"payload":{"scope":{"type":"BearerToken","token":"Atza|IwEBIH1rOol1r7uy3F-Lvmns497-CqVTo_MoVFoM8Ymrq7g8XIBZ0NTPOPuZOOX55o0OptYKH6I7RxCkiMHSGRnJd6QBIYVBZbUtzPDLrq5L-8gsqu3ldH41HnsIJ-gHHrRrgwyZw5hy0ZWsFhCpBHgG0y0e8f9U1bGdrn-1q8XEfElTgBIfLrofvQHPE9chNaOOvXw4N9mapdQb-BS-Rq57K1Y4Qm8DzHU14S_bE3XGf75ECCn5043TYBt6g99ttbgxY_g3sWia5FvUvTQ6V0R61MI40eMzJLCWHqKWe92djS17i0zES0gCp0xNu-WaJeGSdbrZMPKfF_NGgtaPtE70X6W86obI2jphtu_5iANersOd0mUEhM1zCCVKyBn_u3urXLRyksJo5WIGsXGTwfsPNx61FOWzLtt4__cohkmskjPXXR8__20SWR54HitL4hxbHzxZuW1YQOYjMvF6GuTvzBzHyZAuRaZk4nDbvrlxWbsusQ"}}}}
response :{"event":{"header":{"name":"Discover.Response","payloadVersion":3,"namespace":"Alexa.Discovery","messageId":"5edd1615-2572-40c1-ae5d-86e0f8decc8b"},"payload":{"endpoints":[]}}}


Und noch ein list von einem einfachen dummy wie im beispiel
Internals:
   NAME       Alexa.Party
   NR         341
   STATE      on
   TYPE       dummy
   READINGS:
     2018-04-02 14:05:44   state           on
Attributes:
   alexaName  party
   alexaRoom  alexaroom
   genericDeviceType switch
   group      AlexaGeräte
   room       AlexaRoom
   setList    on off

TomLee

Du hast den dummy im room Alexaroom, er sollte aber im room alexa sein.

MadMax-FHEM

Wie vermutet: der Filter in der config.json passt nicht.

Dort steht:

room=alexa

Und das Gerät ist NICHT im Raum alexa sondern 'AlexaRoom'...

Das muss schon zusammen passen... ;)

Daher auch nach der "Abfrage" von fhem: got: 0 results

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Tueftler1983

#3688
okay das ist das beispiel aus dem Wiki 1.1 in die fhem.cfg kopiert

Habe es abgeändert:

Internals:
   NAME       Alexa.Party
   NR         341
   STATE      on
   TYPE       dummy
   READINGS:
     2018-04-02 14:05:44   state           on
Attributes:
   alexaName  party
   alexaRoom  alexaroom
   genericDeviceType switch
   group      AlexaGeräte
   room       Alexa
   setList    on off


Danach den dienst neu gestartet und eine erneute suche ausgeführt. leider auch jetzt noch ohne erfolg

NACHTRAG:  noch nen fehler entdeckt: nicht den alexaroom geändert sondern den room..... moment....

Tueftler1983

JUHUUUUU Party wird gefunden und kann geschaltet werden.....