调用Google Home Graph reportStateAndNotification上报TV设备状态遇内部错误
问题定位与修复方案
直接触发报错的核心问题
- InputSelector配置与上报值不匹配:你在SYNC响应的
availableInputs配置项中,HDMI1输入源的唯一key为hdmi1,但你在homegraph.devices.reportStateAndNotification上报内容、Query接口返回值中填写的currentInput均为hdmi_1,两者key不一致,Home Graph在校验状态合法性时无法找到对应输入源配置,触发无明细日志的内部错误。 - 冗余属性与声明Trait不匹配:你在SYNC响应的attributes中配置了
availableApplications参数,但设备的traits列表未声明action.devices.traits.AppSelector,非法的冗余属性会导致状态校验失败。
修复后仍报错的补充排查步骤
- 校验调用权限:确认调用
homegraph.devices.reportStateAndNotification接口使用的服务账号,已被授予HomeGraph API对应的调用权限,且上报使用的agentUserId与SYNC响应返回的agentUserId完全一致,无拼写、格式错误。 - 逐步裁剪上报字段:先仅上报
online、on两个基础状态字段,确认接口调用成功后再逐个添加其他状态属性,定位具体触发校验失败的字段。 - 校验状态枚举值合法性:确认所有上报的状态值均符合Google官方定义的格式要求,你当前上报的
playbackState值为STOP、currentVolume值为0,均符合规范要求。
内容的提问来源于stack exchange,提问作者kakopappa
相关产品推荐
相关产品推荐

