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

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

Vorheriges Thema - Nächstes Thema

sven.scherf

#2505
Hi,

ja ich bin ausserhalb von meinem Lan. Habe mein Firmenhandy genommen und dort einen Hotspot aufgespannt.

Dann mit meinem MAC meine DNS Adresse von feste-ip.net die auf meine IPv6 verweist in dem Browser eingegeben und voila ich bekam das json File.

Diese gleiche Adresse mit Port habe ich bei Lambda eingetragen.

************
Auch beim Test über AWS-Lambda kommt in der Console ein Fehler (gleicher Grund)...
...aber in AWS-Lambda sollte nat. "OK" kommen...
************

Das o.g. verstehe ich nicht AWS-Lambda Fehler OK und dann doch nicht ??

Cloud Watch zeigt mir dies hier

18:51:37
START RequestId: 4d40eefb-f1ac-11e8-b429-59f592565cb3 Version: $LATEST

18:51:37
2018-11-26T18:51:37.070Z 4d40eefb-f1ac-11e8-b429-59f592565cb3 EVENT: [object Object]

18:51:37
2018-11-26T18:51:37.082Z 4d40eefb-f1ac-11e8-b429-59f592565cb3 CONTEXT: [object Object]

18:51:37
2018-11-26T18:51:37.716Z 4d40eefb-f1ac-11e8-b429-59f592565cb3 problem with request: getaddrinfo ENOTFOUND fhem-sven-home.feste-ip.net fhem-sven-home.feste-ip.net:42783
2018-11-26T18:51:37.716Z 4d40eefb-f1ac-11e8-b429-59f592565cb3 problem with request: getaddrinfo ENOTFOUND fhem-sven-home.feste-ip.net fhem-sven-home.feste-ip.net:42783

18:51:37
2018-11-26T18:51:37.722Z 4d40eefb-f1ac-11e8-b429-59f592565cb3 ReferenceError: createError is not defined at ClientRequest.request.on (/var/task/index.js:42:5) at emitOne (events.js:116:13) at ClientRequest.emit (events.js:211:7) at TLSSocket.socketErrorListener (_http_client.js:387:9) at emitOne (events.js:116:13) at TLSSocket.emit (events.js:211:7) at emitErrorNT (inte
2018-11-26T18:51:37.722Z 4d40eefb-f1ac-11e8-b429-59f592565cb3 ReferenceError: createError is not defined
at ClientRequest.request.on (/var/task/index.js:42:5)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at TLSSocket.socketErrorListener (_http_client.js:387:9)
at emitOne (events.js:116:13)
at TLSSocket.emit (events.js:211:7)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)

18:51:37
END RequestId: 4d40eefb-f1ac-11e8-b429-59f592565cb3
END RequestId: 4d40eefb-f1ac-11e8-b429-59f592565cb3

18:51:37
REPORT RequestId: 4d40eefb-f1ac-11e8-b429-59f592565cb3 Duration: 675.07 ms Billed Duration: 700 ms Memory Size: 128 MB Max Memory Used: 47 MB

18:51:37
RequestId: 4d40eefb-f1ac-11e8-b429-59f592565cb3 Process exited before completing request


Kann es sein, dass Amazon den Request nicht als https sondern nur als http absetzt ?
Mit http kann ich die Site auch nicht erreichen ich muss hier mit https ran um das json zu bekommen.



Viele Grüße

Sven
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

MadMax-FHEM

Zitat von: sven.scherf am 26 November 2018, 19:51:06
Hi,

ja ich bin ausserhalb von meinem Lan. Habe mein Firmenhandy genommen und dort einen Hotspot aufgespannt.

Dann mit meinem MAC meine DNS Adresse von feste-ip.net die auf meine IPv6 verweist in dem Browser eingegeben und voila ich bekam das json File.

Diese gleiche Adresse mit Port habe ich bei Lambda eingetragen.

Hmm, ja so sollte es dann wohl passen...

Hast du den Eintrag in AWS-Lambda richtig gemacht!?
Also nur den Namen und den Port jeweils in "einfachen Hochkomma"!?


Zitat von: sven.scherf am 26 November 2018, 19:51:06
************
Auch beim Test über AWS-Lambda kommt in der Console ein Fehler (gleicher Grund)...
...aber in AWS-Lambda sollte nat. "OK" kommen...
************

Das o.g. verstehe ich nicht AWS-Lambda Fehler OK und dann doch nicht ??


So wie ich geschrieben habe:

auf der alexa-fhem Console wirst du verm. einen Fehler bekommen, da der test-Request vom AWS-Lambda Test nur "Quatsch" sendet (was alexa-fhem nicht interprtieren kann und soit einen Fehler melden dürfte)...

Bei AWS-Lambda, also dort wo du den Test ausführst (Test-Knopf bzw. war das zumindest mal ein "simpler Test-Knopf") sollte der natürlich "OK" sein, also AWS-Lambda "zufrieden sein"...

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)

sven.scherf

Hi,

der Port war nicht in Anführungszeichen, dies habe ich korrigiert.

Der Test im Lambda schlägt fehl und bei meinem Raspi kommt nichts an.
Du meinst ja den Service, oder ? Der wurde von mir mit ./bin/alexa gestartet sodass ich was sehen kann.

Kommt die Lambda Anfrage über https ?

Wenn ich die WebSite über meinen Mac aufrufe geht hier auch nur https und kein https.


Viele Grüße

Sven
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

MadMax-FHEM

Tschuldigung: Kommando zurück: Port ist OHNE Anführungszeichen...

(ist schon zu lange her war aber schön öfter ein Problem. Aber wohl dann meist falsche "Hochkomma" beim Hostnamen)

Und du hast nur den Hostnamen ohne https etc. bei AWS-Lambda eingetragen!?

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)

MadMax-FHEM

Bleibt allerdings rätselhaft, dass der Aufruf per NICHT im eigenen Netz befindlichen Rechner mit den selben wie bei Lambda eingetragenen Daten funktioniert und von Amazon aus nicht...

Was im Cloudwatch steht klingt aber so als würde er den "Endpoint" nicht auflösen können!?

Zitat
problem with request: getaddrinfo ENOTFOUND fhem-sven-home.feste-ip.net fhem-sven-home.feste-ip.net:42783

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)

amenomade

Zitat von: MadMax-FHEM am 26 November 2018, 20:30:08

Was im Cloudwatch steht klingt aber so als würde er den "Endpoint" nicht auflösen können!?
Ja. Ich habe gecheckt, die URL ist erreichbar, und der Port ist offen.

Wie sieht die lambda Funktion aus (Code)? (Bitte anonymisieren)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Und weiter unter dem Code, im Bereich Netzwerk, hast Du "kein VPC", richtig?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Tommy82

Ich habe mal das Wiki versucht zu überarbeiten/ aktualisieren, der SmartHome Skill sollte jetzt schon aktuell sein, wenn einer Zeit und Lust hat, würde ich mich freuen wenn das mal einer Nachvollzieht zum überprüfen ob es so funktioniert. Werd die Tage das ganze noch etwas "aufhübschen" (Absätze etc.) und den rest noch überarbeiten
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

micky0867

Hallo,

heute sollte mein Echo kommen, aber Dank DHL dauert es wohl noch bis morgen.
Ich war aber gestern schonmal so frei, und habe die Einrichtung, soweit möglich, vorgenommen.

Da ich nicht meinen Amazon-Account für die Entwicklung benutzen wollte, habe ich einen neuen Account angelegt, genauso wie für AWS....
Den Echo werde ich aber wohl unter dem Amazon-Account einrichten müssen, kann ich denn da überhaupt den Skill von dem anderen Account nutzen?
Ich habe da nix gefunden.

Gruß
Micky

----
Edith: Ich habe über meinen Entwickler-Account meinen Amazon-Account eingeladen und ihn zum Administrator gemacht.
Jetzt funzt meine Alexa schonmal mit dem Fire-TV-Stick ;-)
Strange!

sven.scherf

#2514
Hallo,

ich habe den Host ohne https eingetragen und den Port derzeit in '' gesetzt. Leider kann ich im Augenblick am Code nichts ändern da hier sogar wenn ich nur eine Leerzeile einfüge ich diesen Fehler hier bekomme.
Ich denke Amazon hat gerade ein Problem.

AlexaFhemCustom
Ein Fehler ist aufgetreten. Vergewissern Sie sich, dass Sie einen <a href="https://aws.amazon.com/console/faqs/" target="_blank">unterstützten Webbrowser</a> verwenden und versuchen Sie es erneut.
Nicht gespeicherte Änderungen


Oh man, der Fehler kam weil ich mein abgepeicherter Link die WebSite mit Firefox geöffnet hat ;(

Meine Funktion sieht so aus

const PORT='08157';
const HOST='mein-fhem-host.feste-ip.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



Viele Grüße

Sven

Raspi 3 mit CUL Stick 433/868MHZ, Homematic

sven.scherf

Hallo,

ich habe den Code in Lambda so angepasst.

const PORT='08157';
const HOST='https://mein-fhem-host.feste-ip.net';

Beim testen der Funktion in Lambda bekomme ich immer noch den Fehler und der Service zeigt keine Anfrage an.
Wenn ich mit dem Mac über die gleiche URL zugreife bekomme ich am Rapi dies mit meiner Mac Adresse angezeigt.


Viele Grüße und schon mal vielen Dank für eure Hilfe

Sven
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

MadMax-FHEM

Wie bereits geschrieben: um den Port kommen KEINE Anführungszeichen! (noch mal sorry!)

Aber wenn du aktuell nichts ändern kannst dann...

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)

sven.scherf

Hallo,

sorry die Anführungszeichen habe ich raus.

Habe einen Teilerfolg.

Folgendes habe ich gemacht.
Ich habe den DNS Namen den mir feste-ip.net gegeben hat von meinem Rechner an gepingt. Diese IP Adresse habe ich in die Funktion von Lambda eingetragen einmal mit https und einmal ohne https.

Der Hosteintrag ohne das https mit der IP Adresse hat bewirkt, dass der Test in Lambda erfolgreich war und ich auf meinem Raspi diesen Test sehen konnte.

Dann konnte ich nun auch über Alexa home meinen Aktor aus Fhem finden.

Es stellt sich nun die Frage warum geht es nicht mit dem Hostnamen wenn ich ihn Pingen kann und dieser auch aufgelöst wird.
Ein Online Ping im www ist auch erfolgreich. Somit sollte Amazon die URL doch auflösen können.

Wo kann ich weiter suchen ?

Viele Grüße

Sven

Raspi 3 mit CUL Stick 433/868MHZ, Homematic

MadMax-FHEM

Tja so wie der Fehler im Cloud Watch schon "sagte": Namensauflösung...

Hmmm, warum Amazon das nicht auflösen kann, keine Ahnung. Evtl. mal eine Supportanfrage an Amazon.
Reagieren normalerweise schon recht gut.

Und beantworten kann das letztendlich eh nur Amazon...
...also zumindest warum das nicht geht.

Es kann auch sein, dass es an irgendwas mit dem ganzen feste-IP etc. liegt...
...auch wenn "andere" das auflösen können...

Da kann ich nicht (wirklich) weiterhelfen...

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)

micky0867

Du hast eine IPV4 Adresse, aber family steht auf 6....
Bei mir ist das auskommentiert (entprechend dem Standard in der lambda.js).

Auf deinen Port bei feste.ip kann ich auch per Https zugreifen und bekomme auch einen korrekte Fehlermeldung.
Damit sollte das auch AWS können....

Micky



Zitat von: sven.scherf am 27 November 2018, 19:56:12
Hallo,

ich habe den Host ohne https eingetragen und den Port derzeit in '' gesetzt. Leider kann ich im Augenblick am Code nichts ändern da hier sogar wenn ich nur eine Leerzeile einfüge ich diesen Fehler hier bekomme.
Ich denke Amazon hat gerade ein Problem.

AlexaFhemCustom
Ein Fehler ist aufgetreten. Vergewissern Sie sich, dass Sie einen <a href="https://aws.amazon.com/console/faqs/" target="_blank">unterstützten Webbrowser</a> verwenden und versuchen Sie es erneut.
Nicht gespeicherte Änderungen


Oh man, der Fehler kam weil ich mein abgepeicherter Link die WebSite mit Firefox geöffnet hat ;(

Meine Funktion sieht so aus

const PORT='08157';
const HOST='mein-fhem-host.feste-ip.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



Viele Grüße

Sven