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

Google Action测试套件Turn off执行与查询报错问题排查咨询

Google Action 关闭指令校验失败问题说明

我们的项目在Google Action测试套件中,「开启」指令的执行与查询校验均已通过,但「关闭」指令的执行和查询全部失败,目前暂未定位到我方侧问题。我方处理「关闭」执行请求时已经返回on属性值为false,但报错提示实际状态为{"on":true,"online":true},以下为完整交互数据及报错详情:

1. Google Action 执行请求

{"inputs":[{"context":{"locale_country":"US","locale_language":"en"},"intent":"action.devices.EXECUTE","payload":{"commands":[{"devices":[{"id":"eg_cam_87901"}],"execution":[{"command":"action.devices.commands.OnOff","params":{"on":false}}]}]}}],"requestId":"960820806239759768"}

2. 我方执行响应

{"requestId":"960820806239759768","payload":{"commands":[{"ids":["eg_cam_87901"],"status":"SUCCESS","state":{"online":false,"on":false,"currentToggleSettings":null}}]}}

3. Google Action 执行报错

Turn off the bedroom
AssertionError: Expected state to include: {"on":false}, actual state: {"on":true,"online":true}: expected false to be true

4. Google Action 查询请求

{"inputs":[{"intent":"action.devices.QUERY","payload":{"devices":[{"id":"eg_cam_87901"}]}}],"requestId":"4409204964431192716"}

5. 我方查询响应

{"requestId":"4409204964431192716","payload":{"devices":{"eg_cam_87901":{"online":false,"status":"SUCCESS","on":false,"currentToggleSettings":null}}}}

6. Google Action 查询报错

Query after 'Turn off the bedroom'
Error: the string "Error from HA: deviceOffline" was thrown, throw an Error :) at new f (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18143:10) at Runner.fail (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:4491:11) at js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:4802:18 at done (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:4189:5) at js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:4236:11 at w.Ic (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18137:24) at r.run (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18129:169) at js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18171:310 at w.Jl (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18137:454) at r.Ms (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18130:301) at h (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18126:375) at y.Jl [as Ic] (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18139:326) at q (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18167:89) at e (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18158:235) at XMLHttpRequest.w (js/app_compiled.js?f77b3b67-f1c5-4a38-8a20-fe5eafbc2c40:18167:241)

问题排查与修复方案

核心冲突点

两个异常直接导致校验失败:

  1. 你在关闭指令的执行响应中直接标记设备为online: false,Google测试套件无法拉取最新的开关状态,只会使用之前缓存的on: true状态做校验,触发断言错误
  2. 未声明Toggles特征的前提下返回currentToggleSettings: null,多余空字段会触发平台侧解析异常

修复步骤

  1. 调整执行响应逻辑:执行开关指令后必须保持设备online: true至少10秒,供测试套件完成状态校验,不要执行完关闭指令就立即标记设备离线。
  2. 移除多余字段:如果设备在SYNC阶段没有声明action.devices.traits.Toggles特征,删除所有响应里的currentToggleSettings字段。
  3. 标准响应格式参考:
{
  "requestId": "960820806239759768",
  "payload": {
    "commands": [
      {
        "ids": ["eg_cam_87901"],
        "status": "SUCCESS",
        "state": {
          "online": true,
          "on": false
        }
      }
    ]
  }
}
  1. 查询响应同步调整:前两次查询请求均返回online: true,校验完成后再根据设备实际状态更新离线标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:15:03