Hey people, first of all thanks in advance for the help!
I am currently developing a smart home skill for alexa and running into the problem that the device appears unresponsive in the alexa app aswell for the echo device. I am able to set device properties but the response is always that the device is unresponsive.
I tried to use the Validation Schemas Repository however the schema.json does not look to support e.g. a "AddOrUpdate" response yet.
Some key things to note very briefly before I add the messages that are send across the network:
- I applied most of the best practices mentioned here
- I make great use of the event gateway. For all the request the event gateway returns status 202
Currently I am quite stuck so every help is appreciated. I do not know where this error occures.
Now for some messages:
Discovery Request
{ "directive": { "header": { "namespace": "Alexa.Discovery", "name": "Discover", "payloadVersion": "3", "messageId": "8a2ecfe8-97d3-4e5a-a697-aac199a845b7" }, "payload": { "scope": { "type": "BearerToken", "token": "..." } } } }
Discovery Response
(Sent async, basically a power-, mode-, speed-controller)
{ "event": { "header": { "namespace": "Alexa.Discovery", "name": "AddOrUpdateReport", "payloadVersion": "3", "messageId": "8a2ecfe8-97d3-4e5a-a697-aac199a845b7", "correlationToken": "24d33011-343a-4ccc-a0b1-ae73f12a9c4d" }, "payload": { "scope": { "type": "BearerToken", "token": "..." }, "endpoints": [ { "endpointId": "84fd2782a19a", "manufacturerName": "REMOVED", "description": "Purifier", "friendlyName": "OLX3", "additionalAttributes": { "manufacturer": "REMOVED", "model": "SmallPurifier", "serialNumber": "84fd2782a19a", "firmwareVersion": "1.2.2", "softwareVersion": "256" }, "displayCategories": [ "AIR_PURIFIER" ], "cookie": {}, "capabilities": [ { "type": "AlexaInterface", "interface": "Alexa.PowerController", "version": "3", "properties": { "supported": [ { "name": "powerState" } ], "proactivelyReported": true, "retrievable": true } }, { "type": "AlexaInterface", "interface": "Alexa.RangeController", "version": "3", "instance": "Purifier.Speed", "properties": { "supported": [ { "name": "rangeValue" } ], "retrievable": true, "proactivelyReported": true }, "configuration": { "supportedRange": { "minimumValue": 0, "maximumValue": 100, "precision": 1 }, "presets": [ { "rangeValue": 100, "presetResources": { "friendlyNames": [ { "@type": "asset", "value": { "assetId": "Alexa.Value.Maximum" } }, { "@type": "asset", "value": { "assetId": "Alexa.Value.High" } } ] } }, { "rangeValue": 50, "presetResources": { "friendlyNames": [ { "@type": "asset", "value": { "assetId": "Alexa.Value.Medium" } } ] } }, { "rangeValue": 5, "presetResources": { "friendlyNames": [ { "@type": "asset", "value": { "assetId": "Alexa.Value.Minimum" } }, { "@type": "asset", "value": { "assetId": "Alexa.Value.Low" } } ] } } ] }, "capabilityResources": { "friendlyNames": [ { "@type": "asset", "value": { "assetId": "Alexa.Setting.FanSpeed" } }, { "@type": "text", "value": { "text": "Speed", "locale": "en-US" } }, { "@type": "text", "value": { "text": "Geschwindigkeit", "locale": "de-DE" } } ] } }, { "type": "AlexaInterface", "interface": "Alexa.ModeController", "instance": "Purifier.Mode", "version": 3, "properties": { "supported": [ { "name": "mode" } ], "retrievable": true, "proactivelyReported": true }, "configuration": { "ordered": false, "supportedModes": [ { "value": "Purifier.Auto", "modeResources": { "friendlyNames": [ { "@type": "text", "value": { "text": "Auto", "locale": "de-DE" } }, { "@type": "text", "value": { "text": "Automatisch", "locale": "de-DE" } }, { "@type": "text", "value": { "text": "auto", "locale": "en-US" } }, { "@type": "text", "value": { "text": "automatic", "locale": "en-US" } } ] } }, { "value": "Purifier.Night", "modeResources": { "friendlyNames": [ { "@type": "asset", "value": { "assetId": "Alexa.Setting.Night" } } ] } }, { "value": "Purifier.Boost", "modeResources": { "friendlyNames": [ { "@type": "text", "value": { "text": "Boost", "locale": "de-DE" } }, { "@type": "text", "value": { "text": "Boost", "locale": "en-US" } } ] } }, { "value": "Purifier.Manual", "modeResources": { "friendlyNames": [ { "@type": "text", "value": { "text": "Manuell", "locale": "de-DE" } }, { "@type": "text", "value": { "text": "Manual", "locale": "en-US" } } ] } } ] }, "capabilityResources": { "friendlyNames": [ { "@type": "asset", "value": { "assetId": "Alexa.Setting.Mode" } } ] } }, { "type": "AlexaInterface", "interface": "Alexa.EndpointHealth", "version": "3", "properties": { "supported": [ { "name": "connectivity" } ], "proactivelyReported": true, "retrievable": true } } ] } ] } } }
State Report Request,
{ "directive": { "header": { "namespace": "Alexa", "name": "ReportState", "payloadVersion": "3", "messageId": "546142c4-fdcd-4b2d-bb0f-ce1eb34db41c", "correlationToken": "..." }, "endpoint": { "scope": { "type": "BearerToken", "token": "..." }, "endpointId": "84fd2782a19a", "cookie": {} }, "payload": {} } }
State Report Response
{ "event": { "header": { "namespace": "Alexa", "name": "StateReport", "payloadVersion": "3", "messageId": "546142c4-fdcd-4b2d-bb0f-ce1eb34db41c", "correlationToken": "..." }, "endpoint": { "scope": { "type": "BearerToken", "token": "..." }, "endpointId": "84fd2782a19a" }, "payload": {} }, "context": { "properties": [ { "namespace": "Alexa.ModeController", "instance": "Purifier.Mode", "name": "mode", "value": "Purifier.Auto", "timeOfSample": "2021-11-15T20:27:37.361Z", "uncertaintyInMilliseconds": 0 }, { "namespace": "Alexa.RangeController", "instance": "Purifier.Speed", "name": "rangeValue", "value": 0, "timeOfSample": "2021-11-15T20:27:37.362Z", "uncertaintyInMilliseconds": 0 }, { "namespace": "Alexa.PowerController", "name": "powerState", "value": "ON", "timeOfSample": "2021-11-15T20:27:37.362Z", "uncertaintyInMilliseconds": 0 }, { "namespace": "Alexa.EndpointHealth", "name": "connectivity", "value": { "value": "OK" }, "timeOfSample": "2021-11-15T20:27:37.362Z", "uncertaintyInMilliseconds": 0 } ] } }
Since the device is already unresponsive even when opening the app or interacting with the user interface I assume the problem resides in either the lambda function or in one of the two responses mentioned above. I also implemented the ChangeReport message. However, I think it is not the root of the problem. I will happily provide if need be.
Thanks in advance