【问题标题】:Test Suite for Actions on Google Smart Home Error针对 Google Smart Home 错误采取措施的测试套件
【发布时间】:2019-09-30 03:42:04
【问题描述】:

我正在实施智能家居操作,并且在 Test Suite 上运行测试时,在亮度特性测试期间收到以下错误消息:

Starting test...
  Utterance (1/1): Ok Google. Set the Dimmer brightness to 75 percent . . . . . . . . . . . . . . . . . . . . FAIL
AssertionError: Expected state to include: {"brightness":{"xRange":[55,95]}}, actual state: {"on":true}: expected false to be true

所有onoff 请求都运行良好,测试套件也没有抱怨,只需按应有的方式说“PASS”即可。

BrightnessAbsolute 请求已被我的后端应用程序成功接收并处理(我什至可以看到在 Test Suite 运行时更改了灯),返回 JSON 响应文档中描述的格式。

请求:

{
   "inputs":{
      "0":{
         "context":{
            "locale_country":"CA",
            "locale_language":"en"
         },
         "intent":"action.devices.EXECUTE",
         "payload":{
            "commands":{
               "0":{
                  "devices":{
                     "0":{
                        "id":"xxxxxxxx"
                     }
                  },
                  "execution":{
                     "0":{
                        "command":"action.devices.commands.BrightnessAbsolute",
                        "params":{
                           "brightness":75
                        }
                     }
                  }
               }
            }
         }
      }
   },
   "requestId":"12608597522424949295"
}

回复:

{
   "requestId":"12608597522424949295",
   "payload":{
      "commands":{
         "0":{
            "ids":{
               "0":"xxxxxxxx"
            },
            "status":"SUCCESS",
            "states":{
               "on":true,
               "brightness":75,
               "online":true
            }
         }
      }
   }
}

有没有人知道如何让这个测试通过 Test Suite?谢谢。

【问题讨论】:

  • 您是否在操作中实施报告状态?
  • 嗨尼克!我确实实现了报告状态,但我只在设备被其他应用程序而不是 Google 助理更改时才向 HomeGraph 发送报告,而不是在 Google 助理提出任何请求之后。那么,在这种情况下,我是否应该始终在 EXECUTE 意图之后发送报告状态?

标签: node.js actions-on-google google-smart-home


【解决方案1】:

测试套件根据Home Graph 中报告的状态为每个被测设备验证命令。请务必注意,EXECUTE 响应仅用于将直接结果返回给用户(即通过 Google 助理或 Home 应用中的 UI 发出语音)并且这些响应不会更新 Home Graph 状态。目前,只有Report State API 更新给定设备的 Home Graph。

由于更新 Home Graph 需要 Report State,因此调用 SYNC 之后的 API 为 Home Graph 提供设备的初始状态是有益的。如果您仅在更改时调用报告状态(即不是当设备被命令进入其已经处于的状态时),这一点尤其重要。这可能是您遇到的情况,因为测试套件报告 Home Graph 中的亮度没有价值。

如果您不遵循此模式,则在每个 EXECUTE 之后调用 Report State 也可以确保 Home Graph 是最新的,但它需要您进行更多的 API 调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多