智能家居模式特征架构
action.devices.traits.Modes
- 此特征涵盖设备的所有可用模式和特定于模式的设置。
此特征属于具有任意数量的“n-way”模式的任何设备,其中每种模式的模式和设置对于每个设备或设备类型都是任意的且唯一的。 每种模式都有多种可能的设置,但一次只能选择一种;烘干机不能同时处于“精细”“正常”和“强力”模式。只需开启或关闭的设置属于 Toggles 特征。
例如,洗衣机可以有洗衣量和温度设置。 这两个变量都是模式,因为它们彼此独立,但每个变量一次只能处于一种状态。用户可以通过命令(例如“将洗衣机的温度设置为冷水”)明确设置温度等模式。
某些模式是“有序”的,也可以通过“调高/调低”“增加/减少”等措辞进行调整。例如,负载大小(小、中、大)和温度是明确有序的(请注意,温度不是具有数字目标值的实际温控器,与其他设备上的温控器不同),但负载类型(精细、标准、羊毛等)可能不是。
此特征涵盖用户可设置的一种或多种单独模式。一般来说,这些模式应用于与其他设备行为无关的功能。关联的行为(例如开启或关闭设备本身)应使用更具体的特征(例如,特征 TemperatureSetting 中的 thermostatMode
)。
设备属性
具有此特征的设备可能会在 SYNC
操作中报告以下属性。如需详细了解如何处理 SYNC
intent,请参阅意图实现。
属性 | 类型 | 说明 |
---|---|---|
availableModes |
数组 |
必填。 可用模式列表。 |
[item, ...] |
对象 |
“有空”模式。 |
name |
String |
必填。 模式的内部名称,将用于命令和状态。这可能不太方便用户,并且会以所有语言显示。 |
name_values |
数组 |
必填。 每种支持的语言中模式的同义词。 |
[item, ...] |
对象 |
指定语言的模式同义词。为了提供语言回退,至少需要一个 |
name_synonym |
数组 |
必填。 模式的同义词。此列表中的第一个字符串用作相应语言的级别规范名称。 |
[item, ...] |
String |
同义词名称。为了提供语言回退,至少需要一个 |
lang |
String |
必填。 语言代码 (ISO 639-1)。请参阅支持的语言。 |
settings |
数组 |
必填。 此模式支持的设置。 |
[item, ...] |
对象 |
支持的设置。 需要至少 2 项。 |
setting_name |
String |
必填。 模式设置的内部名称,将用于命令和状态。这可能不太方便用户,并且会以所有语言显示。 |
setting_values |
数组 |
必填。 每种受支持语言中相应设置的同义词。 |
[item, ...] |
对象 |
指定语言的设置同义词。 |
setting_synonym |
数组 |
必填。 相应设置的同义词。此列表中的第一个字符串用作相应语言的级别规范名称。 |
[item, ...] |
String |
同义词名称。 |
lang |
String |
必填。 语言代码 (ISO 639-1)。请参阅支持的语言。 |
ordered |
布尔值 |
(默认值: 如果设置为 true,则会应用额外的增加/减少逻辑语法,顺序与设置数组的顺序(递增)一致。 |
commandOnlyModes |
布尔值 |
(默认值: 指示设备是否支持单向 (true) 或双向 (false) 通信。如果设备无法响应此特征的 QUERY intent 或报告状态,请将此属性设置为 true。 |
queryOnlyModes |
布尔值 |
(默认值: 如果设备支持仅查询执行,则为必需。此属性用于指示设备是否只能查询状态信息,而无法控制。 |
示例
具有多种模式和设置的设备。
{ "availableModes": [ { "name": "load_mode", "name_values": [ { "name_synonym": [ "Load", "Size", "Load size" ], "lang": "en" } ], "settings": [ { "setting_name": "small_load", "setting_values": [ { "setting_synonym": [ "Small", "Half" ], "lang": "en" } ] }, { "setting_name": "medium_load", "setting_values": [ { "setting_synonym": [ "Medium", "Normal" ], "lang": "en" } ] }, { "setting_name": "large_load", "setting_values": [ { "setting_synonym": [ "Large", "Full" ], "lang": "en" } ] } ], "ordered": true }, { "name": "temp_mode", "name_values": [ { "name_synonym": [ "Temperature", "Temp" ], "lang": "en" } ], "settings": [ { "setting_name": "hot_temp", "setting_values": [ { "setting_synonym": [ "Hot", "White" ], "lang": "en" } ] }, { "setting_name": "warm_temp", "setting_values": [ { "setting_synonym": [ "Warm", "Color" ], "lang": "en" } ] }, { "setting_name": "cold_temp", "setting_values": [ { "setting_synonym": [ "Cold", "Delicate" ], "lang": "en" } ] } ], "ordered": false } ] }
仅支持命令模式的设备。
{ "availableModes": [ { "name": "light_mode", "name_values": [ { "name_synonym": [ "Light", "Lighting" ], "lang": "en" } ], "settings": [ { "setting_name": "day_light", "setting_values": [ { "setting_synonym": [ "Day", "Bright" ], "lang": "en" } ] }, { "setting_name": "night_light", "setting_values": [ { "setting_synonym": [ "Night", "Dark" ], "lang": "en" } ] }, { "setting_name": "reading_light", "setting_values": [ { "setting_synonym": [ "Reading", "Ambiant" ], "lang": "en" } ] } ], "ordered": false } ], "commandOnlyModes": true, "queryOnlyModes": false }
设备状态
具有此特征的实体可能会在 QUERY
操作中报告以下状态。如需详细了解如何处理 QUERY
intent,请参阅意图实现。
州 | 类型 | 说明 |
---|---|---|
currentModeSettings |
对象 |
必填。 键值对,其中设备的模式 |
<string> |
String |
目前气温为 |
示例
设备处于什么模式?
{ "currentModeSettings": { "load_mode": "small_load", "temp_mode": "cold_temp" } }
设备命令
具有此特征的设备可能会响应以下命令,作为 EXECUTE
操作的一部分。如需详细了解如何处理 EXECUTE
intent,请参阅意图实现。
action.devices.commands.SetModes
更新模式设置。
参数
参数 | 类型 | 说明 |
---|---|---|
updateModeSettings |
对象 |
必填。 键值对,其中设备的模式 |
<string> |
String |
新 |
示例
设置为大负荷。
{ "command": "action.devices.commands.SetModes", "params": { "updateModeSettings": { "load_mode": "large_load" } } }
示例话语
de-DE
- Stelle den Staubsauger auf Ruhemodus
en-US
- set the vacuum to energy saver mode
es-ES
- pon la lavadora en modo frío
fr-FR
- mets l'aspirateur en silencieux
hi-IN
- वैक्यूम पर कार्पेट मोड लगाएं
it-IT
- imposta l'aspirapolvere su silenzioso
ja-JP
- 掃除機 を 静音 モードに設定して
ko-KR
- 세탁기 세탁량 많음 으로 설정해
pt-BR
- acionar a função autolimpeza do aspirador
- ligar o modo de aquecimento