Google Assistant控制AC_UNIT设备无法设置温度问题咨询
问题原因
- 指令匹配逻辑问题:你下达的是没有指定具体设备的泛控制指令
set aircondition temperature to 22℃,Google Assistant会将指令下发给所有匹配AC_UNIT类型的设备,而不是仅下发给名称含「中央空调」的设备。 - 设备运行模式冲突:「i7-温控器-中弘」当前正处于你自定义的
Sleep或Airsupply模式,这两个模式不在你配置的可支持调温的温控模式列表availableThermostatModes(仅支持heat、cool)范围内,平台校验模式不匹配时就会返回「not support this mode」错误。 - 配置字段冲突:你自定义的
Modestrait的名称为mode,和TemperatureSettingtrait内置的thermostatMode字段存在识别混淆,Google Assistant会误将自定义模式当成温控模式做合法性校验,进一步提升了报错概率。
解决方案
- 优化设备识别配置:给两台设备的名称同义词做差异化配置,给「i7-中央空调」的同义词补充
aircondition、空调等关键词,给「i7-温控器-中弘」的同义词补充温控器、温度面板等关键词,避免泛空调控制指令误下发给温控器设备。 - 调整模式执行逻辑:要么在自定义的
Sleep、Airsupply模式下增加调温支持能力,要么在收到调温指令时自动将设备切换到heat/cool模式后再执行温度调整操作,避免模式不匹配问题。 - 修正配置冲突:将自定义
Modestrait的name字段从mode修改为custom_ac_mode等不会和内置字段冲突的名称,避免Google Assistant的识别混淆。 - 开启状态上报:将
willReportState属性改为true,主动上报设备当前的运行模式、温度等状态,Google Assistant会在校验到设备当前模式不支持调温时直接提示用户切换模式,不会直接下发无效指令。
内容的提问来源于stack exchange,提问作者user6139816
相关产品推荐
相关产品推荐

