关于Google智能家居Modes trait的洗衣机SYNC.response技术问询
解决洗衣机Modes特性的SYNC响应配置问题
看起来你已经搭建了支持OnOff和Modes特性的洗衣机设备,但在attributes字段的配置上可能遇到了困惑——毕竟这是Modes特性生效的核心部分。我来结合洗衣机的典型场景,给你一份完整的SYNC响应示例,并拆解关键配置点:
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [ { "id": "311_washer_1", "type": "action.devices.types.WASHER", "traits": ["action.devices.traits.Modes", "action.devices.traits.OnOff"], "name": { "name": "Laboratory Washer 1", "nicknames": ["Laboratory Washer"] }, "willReportState": false, "attributes": { "availableModes": [ { "name": "washCycle", "name_values": [ { "name_synonym": ["洗涤模式", "洗衣程序"], "lang": "zh" }, { "name_synonym": ["wash cycle", "program"], "lang": "en" } ], "settings": [ { "setting_name": "normal", "setting_values": [ { "setting_synonym": ["标准洗", "常规"], "lang": "zh" }, { "setting_synonym": ["normal", "regular"], "lang": "en" } ] }, { "setting_name": "quick", "setting_values": [ { "setting_synonym": ["快洗", "速洗"], "lang": "zh" }, { "setting_synonym": ["quick wash", "fast"], "lang": "en" } ] }, { "setting_name": "heavy", "setting_values": [ { "setting_synonym": ["强洗", "大件洗"], "lang": "zh" }, { "setting_synonym": ["heavy duty", "bulky"], "lang": "en" } ] } ], "ordered": true }, { "name": "temperature", "name_values": [ { "name_synonym": ["水温"], "lang": "zh" }, { "name_synonym": ["water temperature"], "lang": "en" } ], "settings": [ { "setting_name": "cold", "setting_values": [ { "setting_synonym": ["冷水"], "lang": "zh" }, { "setting_synonym": ["cold"], "lang": "en" } ] }, { "setting_name": "warm", "setting_values": [ { "setting_synonym": ["温水"], "lang": "zh" }, { "setting_synonym": ["warm"], "lang": "en" } ] }, { "setting_name": "hot", "setting_values": [ { "setting_synonym": ["热水"], "lang": "zh" }, { "setting_synonym": ["hot"], "lang": "en" } ] } ], "ordered": true } ] } } ] } }
关键配置点拆解
availableModes数组:每个元素对应洗衣机的一类可调节模式(比如洗涤程序、水温),是Modes特性的核心配置:name:模式的内部唯一标识符,要和你的设备后端逻辑对应,不能重复。name_values:配置语音交互的模式同义词,支持多语言,覆盖用户可能用到的口语化表达(比如“洗衣程序”“wash cycle”)。settings:该模式下的可选设置项,每个设置同样需要配置多语言同义词,确保语音指令能准确识别。ordered:设为true表示设置项有逻辑顺序(比如水温从冷到热),用户可以用“调高水温”“切换到下一个洗涤模式”这类指令操作。
willReportState:如果你的设备支持主动上报状态,建议改为true,这样Google Home能实时同步设备的模式状态;如果仅支持被动查询,保持false即可。
额外注意事项
- 同义词配置要尽可能贴近用户日常用语,比如“大件洗”对应
heavy设置,避免语音指令无法触发的情况。 - 内部标识符(
name和setting_name)要和设备后端的指令解析逻辑一致,确保收到action.devices.commands.SetModes指令时能正确执行模式切换。
内容的提问来源于stack exchange,提问作者Haohao Chang




