Hauptmenü

ALEXA AWS

Begonnen von Manu1982, 29 Dezember 2017, 17:11:48

Vorheriges Thema - Nächstes Thema

Max_Power

Hi zusammen,

leider stecke ich bei der fhem alexa configuration fest und komme nicht drauf, wo es hängt.

Zum Setting:
* FHEM auf PI
* Port 3000 von außen erreichbar (trotz UnityMedia: bin wohl glücklich eine ConnectBox mit IPV4 zu haben) - mit LTE Handy von außen getestet....
Ergebnis:  {"header":{"name":"UnsupportedOperationError","payloadVersi....
* Skill laut Tutorial / Wiki angelegt
* AWS angelegt, incl. Trigger hier aber Fehlermeldung nach einfügen lambda.js: "CreateError is not defined"


// errors
const ERROR_TARGET_OFFLINE = "TargetOfflineError";

const ERROR_UNSUPPORTED_OPERATION = "UnsupportedOperationError";

const ERROR_UNEXPECTED_INFO = "UnexpectedInformationReceivedError";


const PORT=3000;
const HOST='xxxx';


// 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;

* beim Starten von fhem-alexa schaut es ok aus
[1/28/2018, 8:10:54 PM] using /home/pi/.alexa/config.json
[1/28/2018, 8:10:54 PM] ---
[1/28/2018, 8:10:54 PM] this is alexa-fhem 0.4.4
[1/28/2018, 8:10:54 PM] Fetching FHEM devices...
[1/28/2018, 8:10:54 PM] [FHEM] starting longpoll: http://127.0.0.1:8083/fhemi?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1517166654667
[1/28/2018, 8:10:54 PM] Server listening on: https://:::3000
[1/28/2018, 8:10:54 PM] [FHEM] Checking devices and attributes...
[1/28/2018, 8:10:54 PM] [FHEM]   executing: http://127.0.0.1:8083/fhemi?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_557483635439007&XHR=1
[1/28/2018, 8:10:54 PM] [FHEM]   executing: http://127.0.0.1:8083/fhemi?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_557483635439007&XHR=1
[1/28/2018, 8:10:54 PM] [FHEM] Fetching FHEM devices...
[1/28/2018, 8:10:54 PM] [FHEM] fetching: http://127.0.0.1:8083/fhemi?cmd=jsonlist2%20room=alexa&fwcsrf=csrf_557483635439007&XHR=1
[1/28/2018, 8:10:54 PM] [FHEM] alexa device is MyAlexa
[1/28/2018, 8:10:54 PM] [FHEM] MyAlexa is switch
[1/28/2018, 8:10:54 PM] [FHEM] MyAlexa has
[1/28/2018, 8:10:54 PM] [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
[1/28/2018, 8:10:54 PM] [FHEM]   executing: http://127.0.0.1:8083/fhemi?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&fwcsrf=csrf_557483635439007&XHR=1
[1/28/2018, 8:10:54 PM] perfectOfVerb:
[1/28/2018, 8:10:54 PM] { stelle: 'gestellt',
  schalte: 'geschaltet',
  'färbe': 'gefärbt',
  mach: 'gemacht' }
[1/28/2018, 8:10:54 PM] verbsOfIntent:
[1/28/2018, 8:10:54 PM] [ OnIntent: [ 'schalte' ],
  prozentIntent: [ 'stelle' ],
  HueIntent: [ 'stelle' ],
  HueIntentB: [ 'färbe' ],
  SaturationIntent: [ 'stelle' ],
  SaturationIntentB: [ 'sättige' ],
  TargetPositionIntent: [ 'mach' ],
  gradIntent: [ 'stelle' ] ]
[1/28/2018, 8:10:54 PM] characteristicsOfIntent:
[1/28/2018, 8:10:54 PM] { OnIntent: [ 'On' ],
  prozentIntent: [ 'Brightness', 'TargetPosition', 'Volume' ],
  HueIntent: [ 'Hue' ],
  HueIntentB: [ 'Hue' ],
  SaturationIntent: [ 'Saturation' ],
  SaturationIntentB: [ 'Saturation' ],
  TargetPositionIntent: [ 'TargetPosition' ],
  gradIntent: [ 'TargetTemperature' ] }
[1/28/2018, 8:10:54 PM] prefixOfIntent:
[1/28/2018, 8:10:54 PM] { OnIntent: undefined,
  prozentIntent: 'auf',
  HueIntent: 'auf',
  HueIntentB: undefined,
  SaturationIntent: 'auf',
  SaturationIntentB: undefined,
  TargetPositionIntent: undefined,
  gradIntent: 'auf' }
[1/28/2018, 8:10:54 PM] suffixOfIntent:
[1/28/2018, 8:10:54 PM] { OnIntent: undefined,
  prozentIntent: 'prozent',
  HueIntent: undefined,
  HueIntentB: undefined,
  SaturationIntent: undefined,
  SaturationIntentB: undefined,
  TargetPositionIntent: undefined,
  gradIntent: 'grad' }
[1/28/2018, 8:10:54 PM] alexaTypes:
[1/28/2018, 8:10:54 PM] { light: [ 'licht', 'lampen' ],
  blind:
   [ 'rolladen',
     'rolläden',
     'jalousie',
     'jalousien',
     'rollo',
     'rollos' ] }
[1/28/2018, 8:10:54 PM] roomOfEcho:
[1/28/2018, 8:10:54 PM] {}
[1/28/2018, 8:10:55 PM] fhemIntents:
[1/28/2018, 8:10:55 PM] { FHEMgutenMorgenIntent: 'gutenMorgen',
  FHEMguteNachtIntent: 'guteNacht' }
[1/28/2018, 8:10:55 PM] [FHEM]   executing: http://127.0.0.1:8083/fhemi?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&fwcsrf=csrf_557483635439007&XHR=1
[1/28/2018, 8:10:55 PM] [FHEM] got: 1 results
[1/28/2018, 8:10:55 PM] [FHEM] relais1 is light
[1/28/2018, 8:10:55 PM] [FHEM] relais1 has
[1/28/2018, 8:10:55 PM] [FHEM]   On [state;on,off]
[1/28/2018, 8:10:55 PM] [FHEM] { reading: 'state',
  valueOff: '/off|A0|000000/',
  cmdOn: 'on',
  cmdOff: 'off',
  device: 'relais1',
  informId: 'relais1-state',
  characteristic_type: 'On',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2018-01-28 20:10:55 caching: relais1-state: on

Der Schalter relais1 reagiert auch bei Status-Wechsel.

Nun das Problem: In Alexa wird kein Gerät gefunden ?!?
Wo hängt es Eurer Meinung? Bin für Tipps dankbar!

Danke & Grüße
Florian

justme1968

wegen dem lambda fehler:  den kannst du erst mal ignorieren. ich habe im thread schon eine neue lambda.js version gepostet die im nächsten update enthalten ist und den fehler behebt.

wenn kein gerät gefunden wird liegt es ziemlich sicher am trigger. prüf noch mal genau. es dürfen keine leerzeichen enthalten sein (kommen manchmal per copy&paste rein). was sagt das cloudwatch log? ansonsten den trigger noch mal löschen und neu anlegen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Max_Power

danke für die schnelle Antwort und die "Entwarnung" für den Lambda Fehler  :)

Mittlerweile habe ich den "Schalter" am Laufen, er wird von der Alexa App als Gerät erkannt und reagiert auf Sprach Befehle  :) :) :)
Was nun anders ist? Ehrlich gesagt, ich weiss es nicht. Plötzlich ging es....geändert habe ich gefühlt nichts.....vielleicht in der Tat irgendwo ein leerzeichen....

Werde nun einen Rolladen Aktor als nächsten Schritt testen. Müsste mit genericType=blind funktionieren, oder?


rs

#18
Guten Abend

Habe mich durch all die Wikis und Tutorials gelesen und meine das alles so konfiguriert zu haben.
Auch läuft nun auf meinem Pi3 der alexa daemon (0.4.4)und wie das log file zeigt werden auch meine HUE Geräte davon erkannt. Hier ein Auszug:

[1.2.2018, 22:14:56] [FHEM] StehLampeRechts is light
[1.2.2018, 22:14:56] [FHEM] StehLampeRechts has
[1.2.2018, 22:14:56] [FHEM]   On [onoff;on,off]
[1.2.2018, 22:14:56] [FHEM]   Brightness [bri]
[1.2.2018, 22:14:56] [FHEM]   Hue [hue;hue;0-65535]
[1.2.2018, 22:14:56] [FHEM]   Saturation [sat;sat;0-254]
[1.2.2018, 22:14:56] [FHEM]   Custom Color Temperature [ct]
[1.2.2018, 22:14:56] [FHEM]   colormode [colormode]
[1.2.2018, 22:14:56] [FHEM]   xy [xy]
[1.2.2018, 22:14:56] [FHEM] { reading: 'onoff',
  valueOff: '0',
  cmdOn: 'on',
  cmdOff: 'off',
  device: 'StehLampeRechts',
  informId: 'StehLampeRechts-onoff',
  characteristic_type: 'On',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2018-02-01 22:14:56 caching: StehLampeRechts-onoff: 0

Leider findet aber die Alexa App kein Gerät.

Bitte um Hilfe und eure Erfahrungen wo ich ansetzen kann ..

Gruss & Dank
ROland

PS: Wahrscheinlich ist es das:

Auf port 3000 horcht zwar jemand, aber der Test mit https://pi3:3000 kommt mit einem Fehler zurück: NET::ERR_CERT_AUTHORITY_INVALID

Muss hierzu noch ein Zertifikat, welches und wo hinterlegt werden? Leider finde ich da nichts im Tutorial ..
rpi3+ & RaspBee | Phillips, Osram, IKEA, SIlvercrest Devices | FHEM 6.2 | Echo Show 15 | Yamaha YAS| LG TV | Ubuntu 22.04 - NextCloud 27 - OpemVPN - Wordpress - NAS - ...

justme1968

das der test mit einem fehler zurück kommt ist ok. aber du musst von extern testen. nicht intern aus deinem netz.

schau dir die trouble shooting punkte im wiki an. entweder ist dein port forwarding nicht ok oder dein trigger.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

pr3mi3r3

Hab folgende Mail von Amazon AWS bekommen :

AWS Lambda: Node.js v4.x is now EOL, please migrate your functions to a newer runtime versio

Was kann ich tun?

hsteinbo

Hallo pr3mi3r3,
ich bin selber Newbie, daher ist meine Antwort mit Vorsicht zu genießen.
Ich habe mich in AWS angemeldet, habe aus der Liste der Services "Lambda" ausgewählt, dann meine Lambda Funktion ausgewählt.
Jetzt konnte ich im Pulldown-Menü "Runtime" eine neuere Version auswählen (ich habe 8.10 ausgewählt).
Dann habe ich mit "Save" gespeichert und getestet. Bislang tut es noch.

Benni

Zitat von: pr3mi3r3 am 11 Mai 2018, 07:52:11
Was kann ich tun?

Interessant ist v.a. erst mal die folgende Passage in der E-Mail:

Zitat
While invocations of Lambda functions configured to use Node.js v4.3 will continue to work normallyy, the ability to create new Lambda functions configured to use the Node.js v4.3 runtime will be disabled on July 31, 2018.

Wenn es also bisher funktioniert, muss nichts umgestellt werden.
Lediglich neue Lambda-Funktionen lassen sich nicht auf der alten Version anlegen.

In wie weit evtl.  Anpassungen für die Neuanlage der Lambdafunktion unter einer aktuellen Node.js-Version erforderlich sind, kann ich leider nicht sagen.

Allerdings ist das auch erst ab 31. Juli nicht mehr möglich.

Also auf alle Fälle noch genügend Zeit zu reagieren, sofern überhaupt erforderlich.

gb#


volschin

Zitat von: Benni am 11 Mai 2018, 15:02:49
Also auf alle Fälle noch genügend Zeit zu reagieren, sofern überhaupt erforderlich.
Zwei Zeilen weiterlesen hilft da schon. Am 31.10.2018 ist komplett Schluss und muss umgestellt sein.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

holsteiner-kiel

Stimmt nicht. Code Updates sind deaktiviert am 31.10.

Benni

Zitat von: hsteinbo am 11 Mai 2018, 10:53:42
Ich habe mich in AWS angemeldet, habe aus der Liste der Services "Lambda" ausgewählt, dann meine Lambda Funktion ausgewählt.
Jetzt konnte ich im Pulldown-Menü "Runtime" eine neuere Version auswählen (ich habe 8.10 ausgewählt).
Dann habe ich mit "Save" gespeichert und getestet. Bislang tut es noch.

Kann das mal bitte jemand verifizieren?
Wenn das schon alles ist, ist ja erst recht keine Panik angesagt.  ;)

Ich bin derzeit unterweg, kann also selbst nicht wirklich testen, sonst hätte ich das längst gemacht.

gb#

volschin

Ich habe es so gemacht und bei mir läuft es auch. Das Lambda Script ist ja nun auch nicht sonderlich komplex.  ;)
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

franky08

Ich kann da kein pulldown menü finden um eine andere runtime version auszuwählen

Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

volschin

Zitat von: franky08 am 11 Mai 2018, 17:43:31
Ich kann da kein pulldown menü finden um eine andere runtime version auszuwählen
Du musst schon auf FHEM klicken.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

franky08

Hatte ich, bin aber nicht weiter runter gescrollt  :), habs dann gefunden.

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...