question

newuser-8891a6eb-2fbe-4558-966f-39920e39ba34 avatar image
newuser-8891a6eb-2fbe-4558-966f-39920e39ba34 asked ·

Smart Home Skill error response

Hello there!

I am using a Smart Home Skill in german. I want to give an error response, if my device is currently busy.
For this, my device (aws IoT Thing) is updating its shadow with a "busy" property, either true or false.
In my lambda function, I get the Thing Shadow and if the busy property is true, I want to send an error response like "ENDPOINT_BUSY". Error Response Values


No matter what error response I send, I always get "... is not responding". Now I am not sure if I am doing something wrong, or if the feedback from Alexa ist always "... is not responding".

In StackOverflow i found a thread which indicates, that the response is always "... is not responding". The thread is already 2 years old, so I'm hoping something has changed. StackOverflow thread
I can't find any other source with information, what Alexa is going to say for the response values.

My code looks like this:

[...]
return iotdata.getThingShadow(thingNameParams, (err, data) => {
    if(err){
        console.log(err);
    }
    else{
        var dataPayload = JSON.parse(data.payload);
        if(dataPayload.state.reported.busy){
            var errorResponse = {
                "event": {
                    "header": {
                        "namespace": "Alexa",
                        "name": "ErrorResponse",
                        "payloadVersion": "3",
                        "messageId": responseHeader.messageId,
                        "correlationToken": responseHeader.correlationToken
                    },
                    "endpoint": {
                        "endpointId": "MyDevice"
                    },
                    "payload": {
                        "type": "ENDPOINT_BUSY",
                        "message": "Endpoint is busy"
                    }
                }
            }
            callback(errorResponse);
        } else {
            iotdata.publish(params, (err, data) => {
                if(err){
                    console.log(err);
                    callback(err);
                }
                else{
                    log("DEBUG ", "Publish ", "Success, I guess.");
                    callback(errorResponse, response);
                }
            });
        }
    }
});

The iotdata.publish is working fine, it publishes if the shadow device is busy = false.

The automatic log that cloudwatch receives, looks like this:

{
    "errorMessage": "[object Object]"
}

---

So, the question is:
Do I make something wrong, or does each error response value get translated to "... is not responding" (in german)?

Greetings,
Jascha

alexa smart homeresponsesmart homeaws iot
10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

roy-1 avatar image
roy-1 answered ·

Hi Jascha,
Thanks for posting. Currently, not all Error Response Types map to unique responses that are spoken by Alexa. If there are any Error Response Types that you'd like to return a unique error message to the user, please feel free to request this through our Alexa uservoice page here:

alexa.uservoice.com

10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.