Abfrage Ich arbeite an einem "Skill" für die neue Amazon ECHO. Die Fähigkeit erlaubt es einem Benutzer, Alexa nach Informationen über den Status und die Leistung eines Enphase-Sonnensystems zu fragen. Alexa antwortet mit Ergebnissen, die aus der JSON-basierten Enphase-API extrahiert wurden. Zum Beispiel könnte der Benutzer fragen,Wie JSON API von Drittanbietern von AWS Lambda-Funktion
"Alexa. Ask Enphase how much solar energy I have produced in the last week."
ALEXA <"Your array has produced 152kWh in the last week.">
Problem ist es Jahre her ist, seit ich in JavaScript programmiert habe, und dies ist mein erstes Mal mit AWS Lambda. Ich bin nicht sehr erfolgreich gewesen, irgendwelche Informationen zu finden, wie man eine JSON-Abfrage in einen Drittanbieterserver innerhalb der AWS Lambda-Funktion einbettet. Hier ist ein relevanter Abschnitt des Codes in meiner Lambda-Funktion:
/**
* Gets power from Enphase API and prepares speach
*/
function GetPowerFromEnphase(intent, session, callback) {
var Power = 0;
var repromptText = null;
var sessionAttributes = {};
var shouldEndSession = false;
var speechOutput = "";
//////////////////////////////////////////////////////////////////////
// Need code here for sending JSON query to Enphase server to get power
// Request:
// https://api.enphaseenergy.com/api/v2/systems/67/summary
// key=5e01e16f7134519e70e02c80ef61b692&user_id=4d7a45774e6a41320a
// Response:
// HTTP/1.1 200 OK
// Content-Type: application/json; charset=utf-8
// Status: 200
// {"system_id":67,"modules":35,"size_w":6270,"current_power":271,
// "energy_today":30030,"energy_lifetime":59847036,
// "summary_date":"2015-03 04","source":"microinverters",
// "status":"normal","operational_at":1201362300,
// "last_report_at":1425517225}
//////////////////////////////////////////////////////////////////////
speechOutput = "Your array is producing " + Power + " kW, goodbye";
shouldEndSession = true;
// Setting repromptText to null signifies that we do not want to reprompt the user.
// If the user does not respond or says something that is not understood, the session
// will end.
callback(sessionAttributes,
buildSpeechletResponse(intent.name, speechOutput, repromptText,
shouldEndSession));
}
Einige Anleitung würde sehr geschätzt werden. Selbst wenn mir jemand in die richtige Richtung zeigen könnte. Vielen Dank!
Wie installiere ich Antrag auf Verwendung innerhalb des Knotens. js Lambda-Code? – Darko
Sie müssen es (node_modules) zusammen mit Ihrer index.js in die von Ihnen hochgeladene Zip-Datei einfügen. Sie können es nicht tun, wenn Sie nur den Code in der AWS-Konsole bearbeiten. Dieser Beitrag spricht darüber: https://aws.amazon.com/blogs/compute/nodejs-packages-in-lambda/ oder Sie können diesen Starter verwenden, der einige eingebaute Befehle enthält, die es für Sie zippen: https://github.com/ryanray/aws-lambda-starter – Ryan