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

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

Vorheriges Thema - Nächstes Thema

spiceweasel

den Abschnitt..

filter funktioniert wie bei homebridge-fhem. siehe thread dort und wiki

könntest Du den etwas genauer erklären?

mfg
Spice

justme1968

hinter filter muss ein ausdruck stehen der alle device erfasst die du mit alexa steuern willst. das format ist so das du es in fhem hinter einem list kommando verwenden kannst.

z.b. list room=alexa
      list name=xyz

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tommy82

Zitat von: justme1968 am 06 November 2016, 13:30:46
wenn alles gut gegangen ist taucht der neue skill unter http://alexa.amazon.de -> skils -> meine skils auf.

Hi, ja tut er jetzt, allerdings hab ich wohl immer noch einen Fehler drin, beim aktivieren kommt:

We're sorry!
An error occurred when we tried to process your request. Rest assured, we're already working on the problem and expect to resolve it shortly.

Hide Details
Error Summary
400 Bad Request
The redirect URI you provided has not been whitelisted for your application. Please add your redirect URI in the 'Allowed Return URLs' section under 'Web Settings' for your Security Profile on Amazon Developer Portal.
Request Details
client_id=amzn1.application-oa2-client.aa28829efdad4bbabdd0bc9001434917
response_type=code
state=eyJpbml0VmVjdG9yIjoidmZZQ2J1STBMOE5hQkZHSmI5TkMwdz09IiwicGF5bG9hZCI6InJjVmE1MnhxVVp4Q3A5eDBSRGljbUV5TVRXdUxMWFlXK3d4WUtsb1Q1UkIydmtScGttcXFndTIxUmV5UElSQ0xwVi92aW5wZnBnbVQ0ekF4QzFwYlFmT3BDNnRFbDFpajdORks2cGdkUUlmOENIcGpSbWNMV25TaElEWExXLzVGd3NHQU8wdXFWTjBuNG5tUVIzNmNpbll2blg2TGpPYzV5YnMwQW11TWROeXVhWVNYdHZGREpYcStiWk5IekF6WE5iQkJmUTZGdThqd1YwVTFiVmFkZ0UvZUZOMUlvT0JEWnNHQkZYanBvQUV5YmNqUkFYOGFaMXFNajdPMmN5ZnYyMlBJT04yOTlKcTY3d0R0U3ZtZFoxeWV3Q0VuMkI2ZVB1VEdudW1qaEhBNm13YzJzRWRoQXQveE5vYy8vVEFJOVpjaUNoVG5MMHpGLzdRb0UrZi8yQTNXR0JKVndzSUN3cFRIdWJCbGxLeW9YdUZwTnRlZHFmK1NWU2Nqc0I2MEFPYTlzeEplaG1lNXNscVpvN3FETDJnMWdxcEh3ZS9CbUpmVkZkSmdoTHlHa1JEa09WN09ZQW5xcTZhVmh2UDZzZStxazJtTjZ4REtGRDZMM2dJdzl3V2ltUHI3RG80R0FHeFdtU1U3V1VvaThsM0FqaWxxczgzRzdhUW1mblB6ZGM1dkF5OG00YjdONUZ5RDBra0lXSGdSZWxybk5EZ1pDVVRYTElzV1ZRNGdkeU9zUFVQd0RFdUxqYWRrWFEzNitNY1YyWEV4TDJxc1BnZkhTVitlOFc1RkRMM0N4YlBJaFIwNDI2ckxDSThBUGE5UHV4UHpzV2kwdmU1d1RmOVZ0L2FrZWlSS0tPc0NZWXRrZFdOenJ1cHpJWXl1Sktlb2RKMENDZ3FOZDFOUzRvd0t5TlRVN0k1ZnpQZlh6V3dScTZsa1ZLdkdlalZZWHdjTFpiNlFIeU1qNGhwcC81MWxZeUswYUYycnFSWEdzRlQybkRYV2dPUGZNcm53M04yWFFhUXVrTldyTVh0aTQ1NmVBY3g0RXc9PSIsInZlcnNpb24iOjF9
scope=profile%3Auser_id
redirect_uri=https%3A%2F%2Flayla.amazon.com%2Fapi%2Fskill%2Flink%2FM3EBKMAWPFFMRI
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

justme1968

schau noch mal in den ersten post. ich habe beimeintragen der erlaubten redirect urls unter 3.1 noch mal etwas geändert. der teil hinter link scheint bei jedem skill anders zu sein. siehe auch ganz am ende der fehlermeldung.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

schau noch mal in den ersten post. ich habe beimeintragen der erlaubten redirect urls unter 3.1 noch mal etwas geändert. der teil hinter link scheint bei jedem skill anders zu sein. siehe auch ganz am ende der fehlermeldung.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tommy82

Zitat von: justme1968 am 06 November 2016, 13:39:00
schau noch mal in den ersten post. ich habe beimeintragen der erlaubten redirect urls unter 3.1 noch mal etwas geändert. der teil hinter link scheint bei jedem skill anders zu sein. siehe auch ganz am ende der fehlermeldung.

gruss
  andre
Zitatallowed return urls -> https://layla.amazon.co.uk/api/skill/link/<xxx>
                               https://pitangui.amazon.com/api/skill/link/<xxx>
                               https://layla.amazon.com/api/skill/link/<xxx>
          <xxx> aus 3.2 configuration -> account linking -> redirect urls
Hi, womit soll ich die xxx ersetzen?
Unter
Zitataus 3.2 configuration -> account linking -> redirect urls
stehen bei mir folgende beiden links:
https://layla.amazon.co.uk/api/skill/link/M3EBKMAWPFFMRI
https://pitangui.amazon.com/api/skill/link/M3EBKMAWPFFMR


muss ich einfach die anstelle von deinen eintragen?

Aber auch dann kommt der Fehler

Tut uns leid!
Beim Bearbeiten Ihres Auftrags ist ein Fehler aufgetreten. Wir arbeiten bereits daran und haben das Problem in Kürze gelöst.

Error Summary
400 Bad Request
The redirect URI you provided has not been whitelisted for your application. Please add your redirect URI in the 'Allowed Return URLs' section under 'Web Settings' for your Security Profile on Amazon Developer Portal.
Request Details
client_id=amzn1.application-oa2-client.aa28829efdad4bbabdd0bc9001434917
response_type=code
state=eyJpbml0VmVjdG9yIjoiMUlxcGREUWhoc28yRnpXeUtQQUd4QT09IiwicGF5bG9hZCI6IlNRY05hRU4vWUd1cksvSTVESnpqa2E3NFJ4TS9rTXFHaHAzMW82WTBRNm5kdHlCanV0UnNRaXAyQnppL3VEK3NpTi8yR1loZzVkUHZ1TXBYRlZiTDFmTUNQUFB3WmV6ZU9BSkQzdlZNVXRTV0NtL1VjeXJveGx0TEtHQWxzb2FTZ3NyNTgwRXFaSFp4aGFKbEQ1bkNsSUVKdUk3cmRLWFZJMTh4V1pJcEF3UGV1OWovV2hzSTl0ZXNPMVduK0ptK0NQZVNLRGxzaVZNaFV2U2ZFdFdXSTJoNHpxTG9MWXlBN09LclVhSG1TaE5DM1U0L3VmKzMzaVRHTWcwYk1zVEhXMHd1SEd6K0JKVXdYazV5L3FLc09HQnRVNEk5SWhhODVVQ3RHQTR5dVFGbDFWOUppdmZHUzlxNHl4WGJxTEptR2ZMOW9Ob2dtOXU3dkpoZ2xDUC9RRWNFRWtWSUhISlFnNnBFbVA4WTNYYXVZRXYxeFUzS3pkcGdiTktyMUdmeWFTYTlrUnZib21Gbno5Z1JIQlhwUVVsc1ZCZnRBUGRORXFsS3o3SG94bTVaMC82aUYwcDlUSzhUcXJXMDdIQ21FQ2ZRSlpxSmlIU1c2RlhDOGRZaWw3Smp1a1NadDVjZ3k4OHQxd1VyUkhWeU9mb0pONllJS3dWbXZIRUd3ZmNOeHB0c2wwTlZ1Tnp6L3NJQ0JGVjlDUmRvL2VKM3ZpY0YwT25FYWt5b2FoZ3VOeC9tVDhWb3Bna1pNbWljOUhPdEhsZWRLTmJpT2RHN1Mwb0JxSUdtRHZTR1E3T0M0R2ZHcjZLN1NoM25VMjZSR2RDTjc2akdlWUl2dzFWamF4aXBmSnBkOXNRVENCdzdWV29NdXhvUmlkNmJIRG9jcmgwMVk0T2p0dTE3cml4WVBqQ2doQ1ZlT25sNW9MZjU3SHlIcUlDSCtrdlJOd1A3QUVyaVFMcDhwQ3dORmlZVUgwSThQMmhZRzVNUnA4KzhLRVN2dWRsUVV4b0Z2RjNaeTA4UVNncGxkMnAvMTA3S0dNYlBvaE5JOXc9PSIsInZlcnNpb24iOjF9
scope=profile%3Auser_id
redirect_uri=https%3A%2F%2Flayla.amazon.com%2Fapi%2Fskill%2Flink%2FM3EBKMAWPFFMRI
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

justme1968

den dritten mit brauchst du auch. aber ganz hinten muss das gleiche stehen wie bei den beiden aus 3.2

der dritte fehlt auf der seite ist aber der der tatsächlich kommt. siehe fehlermeldung.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

#22
genauer: die redirect_uri am ende der fehlermeldung: redirect_uri=https%3A%2F%2Flayla.amazon.com%2Fapi%2Fskill%2Flink%2FM3EBKMAWPFFMRI

muss nach einem url decode in die liste mit eingetragen werden: https://layla.amazon.com/api/skill/link/M3EBKMAWPFFMRI

der hintere fett gedruckte teil scheint bei jedem anders zu sein.

das diese url bei 3.2 unter config fehlt scheint ein fehler von amazon zu sein.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

harry66

hallo Andre,
ich habe ein problem beim starten
root@bananapi /opt/alexa-fhem/bin # ./alexa
[Sun Nov 06 2016 14:08:15 GMT+0100 (CET)] using /root/.alexa/config.json
[Sun Nov 06 2016 14:08:15 GMT+0100 (CET)] ---
[Sun Nov 06 2016 14:08:15 GMT+0100 (CET)] Fetching FHEM devices...
module.js:339
    throw err;
    ^

Error: Cannot find module 'request'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at new FHEM (/opt/alexa-fhem/lib/fhem.js:41:17)
    at Server.run (/opt/alexa-fhem/lib/server.js:72:18)
    at module.exports (/opt/alexa-fhem/lib/cli.js:31:10)
    at Object.<anonymous> (/opt/alexa-fhem/bin/alexa:17:22)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)

die config scheint ja gelesen zu werden?
{
    "alexa": {
        "name": "Alexa"
    },

    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "filter": "room=alexa"
        }
    ]
}


ein list room=alexa funktioniert auch

hast du da auf die schnelle eine idee?

Gruß Rolf
BananaPI, RPI, nanoCUL433, RCS 1000 N Comfort, Dect200, Powerline546E, MAX!Cube, 7xMAX! HT's,3xMAX!FK HMLAN, HM-LC-Bl1PBU-FM, HM-LC-Sw4-Ba-PCB Relay Karte,  LW12, Sqeezelite, TabletUI=Kindel 8" FireHD+Handy,AmazonEcho

prodigy7

#24
Ich habe unter http://www.fhemwiki.de/wiki/Alexa-Fhem jetzt eine erste Version deines How-Tos Online gestellt justme1968. Kannst du mal drüber schauen? Ich hatte/habe übrigens die gleichen Fehler wie Tommy82 erhalten bei der Einrichtung.

Edit: Noch etwas -> justme1968, macht es vielleicht Sinn wenn du bei GitHub ein Repo erstellst in dem das Zeug landet? Wäre wahrscheinlich einfacher oder?

justme1968

@harry66: npm install im alexa-fhem verzeichniss ausgeführt?

@prodigy7: wie oben geschrieben: der letzte teil der url ist nicht bei allen gleich sonder gehört zum skill d.h er muss aus 3.2 config kommen oder aus der fehlermeldung ausgelesen werden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

prodigy7

Zitat von: justme1968 am 06 November 2016, 14:34:14@prodigy7: wie oben geschrieben: der letzte teil der url ist nicht bei allen gleich sonder gehört zum skill d.h er muss aus 3.2 config kommen oder aus der fehlermeldung ausgelesen werden.
Habe ich gefixt im HowTo (und werde es gleich bei mir testen)

justme1968

@harry66: je nach node version scheint request nicht autmaotsch in den abhängigkeiten aufzutauchen. wenn du zusätzlich ein npm install request im alexa-fhem verzeichniss machst sollte es gehen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

ich habe ganz oben eine neue version 0.0.1. angehängt:

version 0.0.1: diverse fehler abgefangen
                      abhängigkeiten vervollständigt
                      upnp port mapping (vielleicht)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

prodigy7

#29
@justme1968:
Sollte es in der Datei lib/fhem.js statt
   var cmd = 'jsonlist2';
    if( this.filter )
      cmd += ' ' + this.filter;
    var url = encodeURI( this.connection.base_url + '/fhem?cmd=' + cmd + '&XHR=1');

nicht eher
   var cmd = 'jsonlist2';
    if( this.filter )
      cmd += '&' + this.filter;
    var url = encodeURI( this.connection.base_url + '/fhem?cmd=' + cmd + '&XHR=1');

lauten? In der aktuellen Version wird sonst der Raum mit http://<ip>:8083/fhem?cmd=jsonlist2%20room=Raum&XHR=1 abgerufen was nichts zurück wirft. Korrekt wäre http://<ip>:8083/fhem?cmd=jsonlist2&room=Raum&XHR=1

Okay, wenn ich die Änderung durchführe, kommt das:[6.11.2016, 14:54:40] using /home/manuel/.alexa/config.json
[6.11.2016, 14:54:40] ---
[6.11.2016, 14:54:40] Fetching FHEM devices...
starting longpoll: http://<ip>:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1478440480502
[6.11.2016, 14:54:40] [FHEM] Fetching FHEM devices...
[6.11.2016, 14:54:40] [FHEM] fetching: http://<ip>:8083/fhem?cmd=jsonlist2&room=Raum%20%7C%20Kueche&XHR=1
Server listening on: http://localhost:3000
[6.11.2016, 14:54:41] [FHEM] got: 189 results
[6.11.2016, 14:54:41] [FHEM] ActionDetector: no service type detected
[6.11.2016, 14:54:41] [FHEM] no device created for ActionDetector (CUL_HM)
[6.11.2016, 14:54:41] [FHEM] Benachrichtigung.Pushbullet: no service type detected
[6.11.2016, 14:54:41] [FHEM] no device created for Benachrichtigung.Pushbullet (Pushbullet)
[6.11.2016, 14:54:41] [FHEM] CCD: no service type detected
[6.11.2016, 14:54:41] [FHEM] no device created for CCD (CUL)
[6.11.2016, 14:54:41] [FHEM] DLNASocket-53: no service type detected
[6.11.2016, 14:54:41] [FHEM] no device created for DLNASocket-53 (DLNARenderer)
[6.11.2016, 14:54:41] [FHEM] DLNASocket-54: no service type detected
[6.11.2016, 14:54:41] [FHEM] no device created for DLNASocket-54 (DLNARenderer)
[6.11.2016, 14:54:41] [FHEM] DLNASocket-55: no service type detected
[6.11.2016, 14:54:41] [FHEM] no device created for DLNASocket-55 (DLNARenderer)
[6.11.2016, 14:54:41] [FHEM] DLNA_002261d4e000 is switch
[6.11.2016, 14:54:41] [FHEM] DLNA_002261d4e000 has
[6.11.2016, 14:54:41] [FHEM]   Custom Volume [volume;cached]
[6.11.2016, 14:54:41] [FHEM]   On [state;on,off]
  2016-11-06 14:54:41 caching: DLNA_002261d4e000-volume: 0
/development/Entwicklung/alexa-fhem/lib/fhem.js:1721
          FHEM_reading2homekit(mapping, orig);
          ^

ReferenceError: FHEM_reading2homekit is not defined
    at new FHEMDevice (/development/Entwicklung/alexa-fhem/lib/fhem.js:1721:11)
    at FHEM.<anonymous> (/development/Entwicklung/alexa-fhem/lib/fhem.js:370:39)
    at Array.map (native)
    at FHEM.<anonymous> (/development/Entwicklung/alexa-fhem/lib/fhem.js:367:31)
    at Request.self.callback (/development/Entwicklung/alexa-fhem/node_modules/request/request.js:186:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
    at Request.<anonymous> (/development/Entwicklung/alexa-fhem/node_modules/request/request.js:1081:10)
    at emitOne (events.js:77:13)
    at Request.emit (events.js:169:7)
Ich teste gleich mal deine neue Version