Google Home风扇Toggle trait异常:误触发OnOff trait而非指定Toggle功能
问题:Google Home误将Fan设备的Toggle trait指令触发为OnOff trait,响应不符合预期
问题详情
我有一台类型为Fan的设备,在使用同义词「Fan power, spin」测试Toggle trait时,Google Home返回结果不准确。查看Google Cloud Function日志后发现,设备执行的是OnOff trait功能而非Toggle trait功能。仅FanPower/Spin功能存在问题,另一项Toggle功能MoodLightPower测试结果符合预期。
SYNC Intent Payload
{ "id": "...some device id...", "name": { "defaultNames": ["Bedroom Fan"], "name": "Bedroom Fan", "nicknames": ["Bedroom Fan"] }, "willReportState": true, "attributes": { "availableToggles": [ { "name": "FanPower", "name_values": [ { "name_synonym": [ "spin", "fan power" ], "lang": "en" } ] }, { "name": "MoodLightPower", "name_values": [ { "name_synonym": [ "mood light", "mood light power" ], "lang": "en" } ] } ] } }
预期与实际结果
预期结果(en-US)
用户指令:Hey Google, switch/turn off fan power/spin on
Google响应:Sure, Turning off the fan power/spin on
实际结果(en-US)
用户指令:Hey Google, switch/turn off fan power/spin on
Google响应:Sure, Turning off the
参考解决方案
- 补全Toggle trait的声明:你提供的SYNC payload中缺少
traits字段,必须明确将action.devices.traits.Toggle加入设备的traits列表。如果设备同时声明了OnOff和Toggle trait,需要确保Toggle的配置没有被主类型的默认逻辑覆盖。示例补充后的traits字段:"traits": [ "action.devices.traits.OnOff", "action.devices.traits.Toggle" ] - 修改FanPower的同义词:"fan power"、"spin"和Fan设备默认OnOff trait的触发词高度重合,Google Assistant会优先匹配主类型的指令。建议替换为更独特的同义词,比如「fan rotation」、「spin control」,避免歧义。
- 调整指令表述逻辑:引导用户使用包含"toggle"关键词的明确指令,比如「Hey Google, toggle fan rotation on Bedroom Fan」,强制触发Toggle trait的处理逻辑。
- 检查设备类型的默认行为:Fan类型设备的OnOff trait默认控制设备主电源,若你的FanPower Toggle实际也是控制主电源,建议合并逻辑到OnOff trait,避免冗余配置;若FanPower是独立的子功能,需确保同义词完全避开主电源相关的表述。
内容的提问来源于stack exchange,提问作者Havanika Bhimagoni
相关产品推荐
相关产品推荐

