谷歌智能家居特质-风扇速度-speed_synonym不起作用



我尝试使用Codelab中的示例代码,并修改了设备类型。 当我尝试将风扇设备添加到谷歌智能家居应用程序时,我收到错误响应。

前任: (问:将风扇调低速度( (响应:确定,将风扇速度降低到速度慢

app.onSync(async (body, headers) => {
console.log('onSync');
return {
requestId: body.requestId,
payload: {
agentUserId: agentId,
devices: [{
id: 'fan',
type: 'action.devices.types.FAN',
traits: [
'action.devices.traits.OnOff',
'action.devices.traits.FanSpeed',
//'action.devices.traits.Mode',
],
name: {
name: 'Fan',
},
deviceInfo: {
manufacturer: 'AAA',
model: 'BBB-Fan1',
hwVersion: '1.0',
swVersion: '1.0.1',
},
willReportState: true,
attributes: {
availableFanSpeeds: {
speeds: [{
speed_name: 'Low',
speed_values: [{
speed_synonym: ['speedslow','speedlow','speedsmall','slow','low','small','minimum'],
lang: 'en'
}]
},{
speed_name: 'Medium',
speed_values: [{
speed_synonym: ['medium','speed medium'],
lang: 'en'
}]
},{
speed_name: 'High',
speed_values: [{
speed_synonym: ['speed fast','speed high','speed big','fast','high','big','maximum'],
lang: 'en'
}]
}],
ordered: true
},
reversible: true,

问1: "速度慢"是我低于speed_name"低"的speed_synonym。 我认为它需要响应诸如"好的,将风扇速度降低到低"之类的答案。右?

问2: 在特征页面中,它不支持中文。我发现我可以使用一些中文单词来控制设备行为,例如通过谷歌助理应用程序用中文"打开风扇"。但我也发现我不能使用一些中文单词,如"将风扇速度设置为低"来更改我的设备状态。所以看起来中文不支持吧?

关于您的问题,我不相信您会收到错误响应。availableFanSpeeds的工作方式是为每种模式创建一个key,并为每种语言创建一组适合该模式的synonyms。因此,"低"speed_name意味着在您支持的每种语言中普遍使用。这意味着平台不一定能在任何地方都使用键"低"。

在法语中,它会说:

OK, diminution de la vitesse du ventilateur à low

这对法国用户来说听起来很奇怪。因此,使用"同义词"字段,该字段被设计为在每种语言中表示相同内容的单词数组。使用同义词数组的第一个元素可用于创建更好的本地化输出。

该文档没有显示对中文的支持,但即使支持,您也需要创建第二个数组,以显示该语言中特定风扇速度的同义词。平台不会为您翻译这些密钥,应为每种语言提供这些密钥。这允许您提供的值可能是常用词(如"低"(,但也包括任何特定于设备的名称(如"不快速™模式"(,这些名称可能无法翻译。

您必须修改数组以添加新的语言代码。下面我添加法语的同义词。

speeds: [{
speed_name: 'Low',
speed_values: [{
speed_synonym: ['speedslow','speedlow','speedsmall','slow','low','small','minimum'],
lang: 'en'
}, {
speed_synonym: ['faible', 'petite', 'petit'],
lang: 'fr'
}]
},

最新更新