Alexa заявляет, что устройство в настоящее время не реагирует на NO_SUCH_ENDPOINT, а устройство недоступно - PullRequest
0 голосов
/ 07 января 2019

Я развиваю навык Alexa SmartHome. Если устройство больше не доступно, но Alexa хочет запустить его, я отвечаю с ошибкой NO_SUCH_ENDPOINT. Однако в звуковом ответе Alexa говорится, что устройство в данный момент не отвечает, а устройство больше не доступно.

Связь с навыком обычно работает нормально, и существующие устройства могут быть оценены должным образом.

Рассмотрим следующий пример. Alexa отправляет директиву (маркеры области видимости удаляются на этапе предварительной обработки, поэтому здесь они не показаны):

{
    "directive": {
        "header": {
            "namespace": "Alexa.PowerController",
            "name": "TurnOn",
            "payloadVersion": "3",
            "messageId": "72fd470b-3cf5-44cc-aeb2-e173a286a8b2",
            "correlationToken": "AAAAAAAAAQAaieQVQqSUvTlNNIhWgfO7DAIAAAAAAAAQ2kRZ2tWZo+nCF1MbKxBLEECYxPfytOiyDYkatx+IIPveE0AvXnS2buopCXtXhjQnLd75guvqBpPTlEXptFat5BlG4Ml2CLdShb9QFJpAtEyXF3Cp6RgrKLxHH0AkFKMahGGwt4hE7HhO807Kl+8YCmFE2eF6t5iwQr\/hooRQi64CgKPGMkH1UlIM45v\/yXOGm6pmtyrXHe8nJ2Qxu5LFZjx+q1hfvWDqYkiFio+CD2IEANPHLT2Fh70DirBVcIKrpRQRC2OQqxyZiIPy+Pw5LFbawuGiDX1IqGysB8kVylOs1Fyx\/WDizFYykwBLONk3CWnAlJmxEnuvmiXH46dt5vLc0tse+fORARS0Zf7AHgtI3RoV9LZxoCA7a2xe7VkMQVuEm\/F6n8H\/JScqrWAqUTvRrfBUTCKFBhcvWt+\/Oka4itUUffbqHwu9qQfH\/UJXCO7g1tqSqnkdnJ\/p0s1WCDjdIBlj1LhBszLt2FesQEFeBFrr9SQlunkYYm1r7wUfdtqs\/pgWDFI0nTsf2pLgKYRiumom\/0w4eCO5Fo\/VDMwVGRaXxn5jumS19jW0aKACrDsciq\/OalxHx8eyTtoKGheBBAyucPUwcL4XtBYxd5J5ZHg0XTpZR2huLaRtdmgEvPXWEhzet\/VG4q7fD29iu6I7vBKa1SSX3eaBkPALF+Aze1hmVTH3mo5WBg=="
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken"
            },
            "endpointId": "2",
            "cookie": []
        },
        "payload": []
    }
}

Если что-то выходит из строя и запрошенное устройство больше не существует, умение отвечает

{
    "event": {
        "header": {
            "namespace": "Alexa",
            "name": "ErrorResponse",
            "payloadVersion": "3",
            "messageId": "30987551-6385-414d-8227-949cb50ac561",
            "correlationToken": "AAAAAAAAAQAaieQVQqSUvTlNNIhWgfO7DAIAAAAAAAAQ2kRZ2tWZo+nCF1MbKxBLEECYxPfytOiyDYkatx+IIPveE0AvXnS2buopCXtXhjQnLd75guvqBpPTlEXptFat5BlG4Ml2CLdShb9QFJpAtEyXF3Cp6RgrKLxHH0AkFKMahGGwt4hE7HhO807Kl+8YCmFE2eF6t5iwQr\/hooRQi64CgKPGMkH1UlIM45v\/yXOGm6pmtyrXHe8nJ2Qxu5LFZjx+q1hfvWDqYkiFio+CD2IEANPHLT2Fh70DirBVcIKrpRQRC2OQqxyZiIPy+Pw5LFbawuGiDX1IqGysB8kVylOs1Fyx\/WDizFYykwBLONk3CWnAlJmxEnuvmiXH46dt5vLc0tse+fORARS0Zf7AHgtI3RoV9LZxoCA7a2xe7VkMQVuEm\/F6n8H\/JScqrWAqUTvRrfBUTCKFBhcvWt+\/Oka4itUUffbqHwu9qQfH\/UJXCO7g1tqSqnkdnJ\/p0s1WCDjdIBlj1LhBszLt2FesQEFeBFrr9SQlunkYYm1r7wUfdtqs\/pgWDFI0nTsf2pLgKYRiumom\/0w4eCO5Fo\/VDMwVGRaXxn5jumS19jW0aKACrDsciq\/OalxHx8eyTtoKGheBBAyucPUwcL4XtBYxd5J5ZHg0XTpZR2huLaRtdmgEvPXWEhzet\/VG4q7fD29iu6I7vBKa1SSX3eaBkPALF+Aze1hmVTH3mo5WBg=="
        },
        "endpoint": {
            "endpointId": "2"
        },
        "payload": {
            "type": "NO_SUCH_ENDPOINT"
        }
    }
}

Согласно схеме JSON Alexa SmartHome, найденной здесь https://github.com/alexa/alexa-smarthome/blob/master/validation_schemas/alexa_smart_home_message_schema.json, ответ действителен. Я ожидаю, что Алекса заявит что-то вроде «Запрошенная конечная точка не существует». вместо этого «Устройство в настоящее время не отвечает». (Я использую немецкий Alexa, поэтому точное выражение может быть другим)

Понятия не имею, что происходит не так. Алекса обычно реагирует по-разному на NO_SUCH_ENDPOINT, и я делаю что-то не так? Или это предполагаемый ответ по умолчанию от Alexa, и я просто ожидал, что она ошибочно предоставит другой ответ пользователю?

...