[alexa-fhem | Generell] Alles zu Installation und damit verbundenen Problemen

Begonnen von prodigy7, 09 November 2016, 19:42:01

Vorheriges Thema - Nächstes Thema

FrankieSOC

daran liegt es wohl nicht.
Habe die Funktion unter EU (Irland) angelegt und habe auch die passende arn:aws:lambda:eu-west-1:XXX:function:fhemDS im Skill bei default endpoint und Europe, India eingetragen.

Bei Lambda habe ich bei "Alexa Smart Home" die Verknüpfung zum Skill mit amzn1.ask.skill.XXX hergestellt.

Im Lambda js script wird mir dieser Fehler angezeigt? (siehe Bild)



TomLee

Den Fehler kann man ignorieren, Andre schrieb schon das dies im kommenden update behoben wird und hat irgendwo auch schon eine korregierte lambda.js geposted.

TomLee

Hast du oben in der lambda.js den Host mit oder ohne https:// angegeben ?

xMichiix

Guten Abend :)

hab folgendes Problem wen ich

./bin/alexa

ausführe bleibt es bei Server listening on: https://:::3000 hängen.

[6/22/2018, 5:28:00 PM] using /root/.alexa/config.json
[6/22/2018, 5:28:00 PM] ---
[6/22/2018, 5:28:00 PM] this is alexa-fhem 0.4.4
[6/22/2018, 5:28:01 PM] Fetching FHEM devices...
[6/22/2018, 5:28:01 PM] [FHEM] starting longpoll: https://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1529681281066
[6/22/2018, 5:28:01 PM] Server listening on: https://:::3000


config.json
{
    "alexa": {
        "port": 3000,
        "name": "Alexa FHEM",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "amzn1.ask.skill.xyz",
        "oauthClientID": "amzn1.application-oa2-client.xyz",
        "permissions": {"amzn1.ask.skill.xyz": { "client_id": "amzn1.application-oa2-client.xyz", "client_secret": "xyz"}}
    },
   
    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
    "webname": "fhem",
            "auth": {"user": "*****", "pass": "*****"},
            "ssl": true,
            "filter": "room=99_Alexa"
        }
    ]
}


lambda.js

const PORT=3000;
const HOST='fhem*****.ddns.net';


// entry
exports.handler = function(event, context, callback) {

  console.log(`EVENT: ${event}`);
  console.log(`CONTEXT: ${context}`);
 
  var post_data = JSON.stringify(event);
 
  var options = {
    hostname: HOST,
    port: PORT,
    //family: 6,
    //path: '/',
    method: 'POST',
    rejectUnauthorized: false, // accept self-signed
    headers: {
      'Content-Type': 'application/json',
      'Content-Length': Buffer.byteLength(post_data)
    }
  };

  var request = require('https').request(options, (result) => {
    console.log(`STATUS: ${result.statusCode}`);
    console.log(`HEADERS: ${JSON.stringify(result.headers)}`);
    result.setEncoding('utf8');
    var body = '';
    result.on('data', (chunk) => body += chunk);
    result.on('end', () => {
      console.log(`BODY: ${JSON.stringify(body)}`);
      callback(null, JSON.parse(body) );
      return;
    });
  });

  request.on('error', (e) => {
    console.log(`problem with request: ${e.message}`);
    callback(null, createError(ERROR_TARGET_OFFLINE) );
    return;
  });

  request.write(post_data);
  request.end();

  return;
 
}// exports.handler


in Fhem hab ich zb. meine Küchen Lampe in den raum 99_Alexa hinzugefügt

kann mir da evtl. wer helfen finde da nicht wirklich was.

MfG

FrankieSOC

Zitat von: TomLee am 22 Juni 2018, 17:26:31
Hast du oben in der lambda.js den Host mit oder ohne https:// angegeben ?

Hallo TomLee, ich habe es ohne https eingetragen, hatte es aber auch mal mit probiert. Keine Änderung.

TomLee

Dann wäre da noch

Zitat von: FrankieSOC am 22 Juni 2018, 12:15:17

Der Port ist weiterleitet. Wenn ich über Mobilfunk auf den Port 3000 gehe bekomme ich diese Meldung.
[2018-6-22 12:02:47] ERROR: SyntaxError: Unexpected end of JSON input from ::ffff:172.19.0.1


sollte eigentlich solch einen JSON liefern:

{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"ed571xxx-1fxx-40xx-bcxx-74dad82dXxxx"},"payload":{}}

FrankieSOC

und ich dachte ich habe mit index.js einen Ansatzpunkte gefunden.

Und entschuldige ich mich leider falsch ausgedrückt.
im Log steht:
[2018-6-22 17:45:36] ERROR: SyntaxError: Unexpected end of JSON input from ::ffff:172.19.0.1
aber auf dem Geräte bekomme ich diese Meldung:
{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"664121d8-4816-41c1-a5ca-3f69908d28da"},"payload":{}}


TomLee

ZitatUnd entschuldige ich mich leider falsch ausgedrückt

Naja, oder ich. Hätte auch richtig lesen können und sehen müssen das dies die Log-Ausgabe war.

FrankieSOC

Vielleicht ist das noch ein Ansatz, mein Fhem Umgebung läuft komplett in verschiedenen Docker Containers.
Alle sind im internen Netzwerk "fhemdocker_fhem-network"
Fhem ist intern über die 172.19.0.5 erreichbar und alexa-fhem über 172.19.0.6.

Der Port 3000 ist in der Firtzbox für den Server geöffnet und wird dann auf die 172.19.0.6 weitergeleitet.

Vielleicht gibt es ja noch weitere Ideen, wo ich suchen kann.

Vielen Dank und liebe Grüße
Frank

Tardar

Ich habe das Problem, dass ich, wenn ich versuche, AlexaFHEM zu starten, einen LongPoll Error erhalte, weil er versucht, FHEM auf http zu erreichen.
Ich lasse FHEM aber ausschließlich per https laufen.

Weiß jemand, wie ich den Longpoll hinbekomme und AlexaFHEM starten kann ?


Vielen Dank Euch

MadMax-FHEM

Alexa-fhem auch per https auf fhem zugreifen lassen...

Siehe alexa-fhem wiki am Ende...

Kurz da nur Handy grad...

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)

Tardar

Zitat von: MadMax-FHEM am 22 Juni 2018, 22:09:16
Alexa-fhem auch per https auf fhem zugreifen lassen...

Siehe alexa-fhem wiki am Ende...

Kurz da nur Handy grad...

Gruß, Joachim

Passt :)
Habs dann noch gefunden und jetzt läufts.

Danke :)

FrankieSOC

Hallo Zusammen,

leider habe ich noch keine Lösung zu meinem Problem https://forum.fhem.de/index.php/topic,60452.msg813531.html#msg813531 gefunden.
Habe heute noch mal alles gelöscht Skill, Lambda und Security Profiles und neu angelegt.

Der Effekt ist der Gleiche.
Lambda Test und ein externer Aufruf ist im Log sichtbar, aber die Geräte suche zeigt nichts an und wird auch nicht im Log.

Wer hat einen Rat?

Viele Grüße
Frank

MadMax-FHEM

alexa-fhem findet aber (weiterhin) Geräte!?

Wenn der Testaufruf geht aber die Suche nicht im Log auftaucht, dann stimmt verm. was beim Trigger nicht...

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)

FrankieSOC

Hallo Joachim,

ja richtig, alexa-fhem erkennt die Geräte.

2018-06-25 22:21:00 caching: Alexa.Party-state: off

Wo kann ich nach dem Fehler beim Trigger suchen?

In der Lambda Funktion habe ich Irland und den Alexa Smart Home Skill aufgewählt. Die "Your Skill ID" amzn1.ask.skill.xxx übertragen und auf aktiviert gesetzt.
Einen Copy/Paste Fehler kann ich ausschließen.

Aus der Lamda Funktion habe ich die ARN arn:aws:lambda:eu-west-1:XXX:function:FhemDS im Skill "Default endpoint" und "Europe, India" übertragen.
Die "Client ID" und das "Client Secret" habe ich aus dem Security Profile eingetragen. Weiter die URLs und den Scope.

Im Security Profile habe ich die "Allowed Return URLs" https://layla.amazon.com/api/skill/link/xxx, https://alexa.amazon.co.jp/api/skill/link/xxx und https://pitangui.amazon.com/api/skill/link/xxx mit dem Wert aus dem Skill befüllt.

Viele Grüße
Frank