Google Home Actions同步负载(Sync Payload)技术咨询
Google Home Actions SYNC意图同步响应负载技术咨询
我针对Google Home Actions的SYNC意图生成了如下同步响应负载,该负载在智能家居验证器(Smart Home Validator)中可正常解析JSON,现就此负载相关问题寻求技术咨询与支持。
原始同步响应负载
{ "payload": { "agentUserId": "myhome", "devices": [ { "traits": [ "action.devices.traits.OnOff" ], "willReportState": false, "name": { "defaultNames": [], "name": "Sky Light", "nicknames": [] }, "attributes": [], "customData": "", "id": "BED_LIGHT", "type": "action.devices.types.LIGHT", "deviceInfo": { "swVersion": "1.0", "model": "Light", "manufacture..." } } ] } }
关键细节优化建议与注意事项
deviceInfo字段完整性:原始负载里的manufacture...是截断内容,完整字段应为manufacturer(设备制造商名称),这是必填项,必须补全具体值,否则实际同步到Google Home服务时大概率会失败。另外可以补充hwVersion(硬件版本)字段,让设备信息更规范。attributes字段类型:该字段要求是JSON对象而非数组,虽然验证器没报错,但不符合Google Home Actions的官方规范,建议改为空对象{};后续如果需要添加灯光的亮度、色温等属性,再在这个对象里补充对应键值对即可。customData字段的实用价值:目前设置为空字符串,如果你需要在后续的EXECUTE、QUERY等意图中获取设备的本地标识、通信参数等自定义信息,可以在这里填充结构化的JSON字符串(比如"{\"localId\": \"bed_sky_light_01\"}"),方便后端业务逻辑处理。willReportState的影响:当前设为false,意味着设备不会主动向Google Home上报状态变化,Google Home会通过QUERY意图拉取设备状态。如果后续要实现状态主动上报(比如设备开关后立即通知Google Home),需要将这个值改为true,同时配置对应的状态上报机制。
修正后的规范示例
{ "payload": { "agentUserId": "myhome", "devices": [ { "traits": [ "action.devices.traits.OnOff" ], "willReportState": false, "name": { "defaultNames": [], "name": "Sky Light", "nicknames": [] }, "attributes": {}, "customData": "{\"localDeviceId\": \"bedroom_skylight_001\"}", "id": "BED_LIGHT", "type": "action.devices.types.LIGHT", "deviceInfo": { "swVersion": "1.0", "model": "Light", "manufacturer": "Your Device Brand", "hwVersion": "1.0" } } ] } }
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

