AlexaSmartHomeSkill library only supports payloadVersion 2?


#1

Based on your online example, I’ve set up a quick-and-dirty Alexa skill and lambda (based on the smart toaster example). When I trigger from the Lambda test window in AWS, all is well; my session.sendGetTempReadingResponse shows up nicely in the debugging window in AWS. But if I try to discover the smart home device from the actual Alexa app, it fails every time.

I think I’ve puzzled it out from the CloudWatch logs. When I run from the Lambda test window, I see:

====
{
“header”: {
“payloadVersion”: “2”,
“namespace”: “Alexa.ConnectedHome.Discovery”,
“name”: “DiscoverAppliancesRequest”,
“messageId”: “F8752B11-69BB-4246-B923-3BFB27C06C7D”
},
“payload”: {
“accessToken”: “1”
}
}

====

But when I attempt to run from the Alexa skill, I see:

{
“directive”: {
“header”: {
“namespace”: “Alexa.Discovery”,
“name”: “Discover”,
“payloadVersion”: “3”,
“messageId”: “4984ac72-6176-44ec-acb7-66ebd33234de”
},
“payload”: {
“scope”: {
“type”: “BearerToken”,
“token”: (Redacted)
}
}
}
}

====

Can I respond to payloadVersion 3 calls using the current AlexaSmartHomeSkill library? If not, is there an updated library somewhere I could try? I didn’t see anything on GitHub.


#2

I’m guessing this isn’t maintained anymore, so I accomplished the same thing by having the AWS Lambda make a GET to my imp endpoint, parse the results using JSON.parse (I’m using node.js), and formatting the "timeOfSample’ field to my Imp epoch timestamp converted to ISO string.

So far, everything seems to be working nicely.