steffen79
Ich mache mal einen neuen Post auf, weil es in dem anderen etwas untergeht, denn ich versuche deinen Homeautomation Skill umzusetzen.
Ich habe mich dabei grundsätzlichen an die Anleitung im Wiki von fhem gehalten. Die Client-Zertifikate möchte ich zum Testen erstmal nicht verwenden und habe daher folgende Zeilen 31 und 32 in deinem Skript auskommentiert:
Das Skript liegt bei mir, wie bei jonofe geschildert, im lbs-Ordner und ist extern erreichbar über folgende URL:
https://xxxxx.selfhost.me/edomi/admin/lbs/alexa_sh.php
und wenn ich es direkt aufrufe wird folgendes ausgegeben:
In Lambda habe ich die Pfade auch angepasst:
Der Skill ist aktiviert und taucht auch unter "Meine Smarthome Skills" bei alexa.amazon.com auf. Aber beim Suchen von neuen Geräten wird kein Logeintrag in "alexa-log.txt erzeugt und auch unter cloudwatch taucht nichts auf. Wenn ich bei AWS Lambda auf test gehe, dann taucht ein leerer response im log und cloudwatch auf, ist vermutlich i.O. da nicht richtig konfiguriert:
Nur wie suche ich jetzt den Fehler? Hast du ein paar Tipps für mich?
Edit: Die Screenshot von der Seite "Configuration" angehängt, passt das soweit?
Configuration.png
Ich mache mal einen neuen Post auf, weil es in dem anderen etwas untergeht, denn ich versuche deinen Homeautomation Skill umzusetzen.
Zitat von steffen79
Beitrag anzeigen
PHP-Code:
//key: fs.readFileSync('client.key'), // Secret client key
//cert: fs.readFileSync('client.crt'), // Public client key
https://xxxxx.selfhost.me/edomi/admin/lbs/alexa_sh.php
und wenn ich es direkt aufrufe wird folgendes ausgegeben:
Code:
{"header":{"namespace":"Alexa.ConnectedHome.Discovery","name":"DiscoverAppliancesResponse","payloadVersion":"2"},"payload":{"discoveredAppliances":[{"applianceId":"devicewohnzimmer-licht","manufacturerName":"Steffen","modelName":"Model LichtDimmer","version":"VER01","friendlyName":"wohnzimmer licht","isReachable":true,"friendlyDescription":"Licht\/Dimmer im wohnzimmer licht (devicewohnzimmer-licht)","actions":["turnOn","turnOff","setPercentage","incrementPercentage","decrementPercentage"]},{"applianceId":"devicewohnzimmer-indirekt","manufacturerName":"Steffen","modelName":"Model Licht","version":"VER01","friendlyName":"wohnzimmer indirekt","isReachable":true,"friendlyDescription":"Licht im wohnzimmer indirekt (devicewohnzimmer-indirekt)","actions":["turnOn","turnOff"]}]}}
Code:
const PORT=443; const HOST='xxxx.selfhost.me'; // namespaces const NAMESPACE_CONTROL = "Alexa.ConnectedHome.Control"; const NAMESPACE_DISCOVERY = "Alexa.ConnectedHome.Discovery"; // errors const ERROR_TARGET_OFFLINE = "TargetOfflineError"; const ERROR_UNSUPPORTED_OPERATION = "UnsupportedOperationError"; const ERROR_UNEXPECTED_INFO = "UnexpectedInformationReceivedError"; // entry exports.handler = function (event, context, callback) { log("Received Directive", JSON.stringify(event)); var postData = JSON.stringify(event); fs = require('fs'); var options = { hostname: HOST, port: PORT, //family: 6, rejectUnauthorized: false, path: '/edomi/admin/lbs/alexa_sh.php', method: 'POST', //ca: fs.readFileSync('client.crt'), //key: fs.readFileSync('client.key'), // Secret client key //cert: fs.readFileSync('client.crt'), // Public client key headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(postData) } }; ...
Code:
Tue, 27 Dec 2016 11:22:25 +0100 ======================================================================================================= Tue, 27 Dec 2016 11:22:25 +0100 Request: {"key3":"value3","key2":"value2","key1":"value1"} Tue, 27 Dec 2016 11:22:25 +0100 ------------------------------------------------------------------------------------------------------- Tue, 27 Dec 2016 11:22:25 +0100 Response: [] Tue, 27 Dec 2016 11:22:25 +0100 =======================================================================================================
Edit: Die Screenshot von der Seite "Configuration" angehängt, passt das soweit?
Configuration.png
Kommentar