You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Alexa智能家居技能亮度控制自动化测试问题咨询

Alexa智能家居灯光技能亮度控制测试问题咨询

场景1:返回原亮度值导致测试报错

初始亮度为75,收到SetBrightness设为0的指令(该操作会同时关闭灯光),我保留原亮度值75作为响应,测试报错:

"The endpoint could not be set to the Initial States required by the Test Case."

请求指令

{"directive":{"header":{"namespace":"Alexa.BrightnessController","name":"SetBrightness","messageId":"fed54fb1-a40e-42c5-819d-53894fb19fd8","correlationToken":"ctooken","payloadVersion":"3","endpoint":{"scope":{"type":"BearerToken","token":"token","endpointId":"b38d964c-0b55-4b9a-8c0c-c537721bd2e5","cookie":{},"payload":{"brightness":0}}}}}

我的响应

{"event":{"header":{"namespace":"Alexa","name":"Response","messageId":"fed54fb1-a40e-42c5-819d-53894fb19fd8-R","correlationToken":"ctoken","payloadVersion":"","endpoint":{"endpointId":"b38d964c-0b55-4b9a-8c0c-c537721bd2e5","scope":{"token":"token","type":"BearerToken"},"payload":{},"context":{"properties":[{"namespace":"Alexa.BrightnessController","value":75,"name":"brightness","timeOfSample":"2023-09-08T05:30:10.410Z","uncertaintyInMilliseconds":3000},{"namespace":"Alexa.PowerController","value":"OFF,","name":"powerState","timeOfSample":"2023-09-08T05:30:10.410Z","uncertaintyInMilliseconds":3000}]}}}}}

场景2:返回亮度0导致TurnOn用例失败

初始亮度为100,收到SetBrightness设为0的指令,我返回亮度0并关闭灯光,测试中DevRe_9.1用例失败:预期执行TurnOn指令后亮度回到100,实际为0。

请求指令

{"directive": {"header": {"namespace": "Alexa.BrightnessController","name": "SetBrightness","messageId": "fed54fb2-a40e-42c5-819d-53894fb19fd8","correlationToken": "ctooken","payloadVersion": "3","endpoint": {"scope": {"type": "BearerToken","token": "token-","endpointId": "b38d964c-0b55-4b9a-8c0c-c537721bd2e5","cookie": {},"payload": {"brightness": 0}}}}}

我的响应

{"event": {"header": {"namespace": "Alexa","name": "Response","messageId": "fed54fb1-a40e-42c5-819d-53894fb19fd8-R","correlationToken": "ctoken","payloadVersion": "3","endpoint": {"endpointId": "b38d964c-0b55-4b9a-8c0c-c537721bd2e5","scope": {"token": "token","type": "BearerToken"},"payload": {},"context": {"properties": [{"namespace": "Alexa.BrightnessController","value": 0,"name": "brightness","timeOfSample": "2023-09-08T05:30:10.410Z","uncertaintyInMilliseconds": 3000},{"namespace": "Alexa.PowerController","value": "OFF","name": "powerState","timeOfSample": "2023-09-08T05:30:10.410Z","uncertaintyInMilliseconds": 3000}]}}}}}

测试错误结果

{"name": "DevRe_9.1","status": "FAILED","expectedCapabilityStates": [{"namespace": "Alexa.BrightnessController","name": "brightness","value": 100}],"directive": {"header": {"namespace": "Alexa.PowerController","name": "TurnOn"},"payload": {}},"actualCapabilityStates": [{"namespace": "Alexa.BrightnessController","name": "brightness","value": 0}]}

核心咨询问题

  1. 当收到SetBrightness设为0的指令时,正确的响应应该是什么?
  2. 后续收到ReportState指令时,预期返回的亮度值是多少?

解决方案与规范说明

1. 收到SetBrightness(0)指令的正确处理逻辑

根据Alexa智能家居技能规范,调用SetBrightness设置为0时,设备需执行以下操作:

  • 将Alexa.PowerController的powerState设置为OFF
  • 保留执行该指令前的非零亮度值作为设备的“记忆亮度”,而非将亮度更新为0
  • 响应的context中,Alexa.BrightnessController的value返回记忆亮度值,同时Alexa.PowerController的value为OFF

另外场景1的响应存在格式错误:payloadVersion为空字符串,且powerState的值多了逗号("OFF,"),这也是测试报错的原因之一,需修正。

2. 收到ReportState指令的返回规则

  • 若设备处于OFF状态,ReportState应返回记忆亮度值(即执行SetBrightness(0)之前的非零亮度)
  • 后续收到TurnOn指令时,设备需自动恢复到记忆亮度值,此时BrightnessController返回该记忆值,PowerState设为ON

对两个场景的修正建议

  • 场景1:修正响应格式错误(补全payloadVersion为3,修正powerState为"OFF"),保留返回亮度75的逻辑,即可通过测试
  • 场景2:收到SetBrightness(0)时,返回亮度100而非0,同时设置PowerState为OFF;后续收到TurnOn指令时恢复亮度100,即可通过DevRe_9.1用例

内容的提问来源于stack exchange,提问作者Fabrice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:50:57