智能家居烹饪 trait 架构

action.devices.traits.Cook - 此特征属于可根据各种食物预设和支持的烹饪模式烹饪食物的设备。

这些设备类型的示例包括 MulticookerPressure cookerBlenderMicrowave。烹饪命令可能包含食物的数量和名称,例如“两杯糙米”,其中“糙米”是设备的预设食物。

此 trait 不处理烹饪时间或烹饪温度。 如需了解详情,请参阅 TimerTemperatureControl

设备属性

具有此特征的设备可能会在 SYNC 操作中报告以下属性。如需详细了解如何处理 SYNC intent,请参阅intent 执行方式

属性 类型 说明
supportedCookingModes 数组

必填。

此设备支持的烹饪模式。

[item, ...] String

烹饪模式。

支持的值:

UNKNOWN_COOKING_MODE
BAKE
BEAT
BLEND
BOIL
BREW
BROIL
CONVECTION_BAKE
COOK
DEFROST
DEHYDRATE
FERMENT
FRY
GRILL
KNEAD
MICROWAVE
MIX
PRESSURE_COOK
PUREE
ROAST
SAUTE
SLOW_COOK
SOUS_VIDE
STEAM
STEW
STIR
WARM
WHIP
foodPresets 数组

适用于特定类型食物的预设。

[item, ...] 对象

食物预设。

food_preset_name String

必填。

食物预设的内部名称,将用于指令和状态。此名称可能不太方便用户使用,并且会在所有语言版本中共享。

supported_units 数组

必填。

包含设备针对特定食物支持的所有单位。

[item, ...] String

支持的单位。

支持的值:

UNKNOWN_UNITS
NO_UNITS
CENTIMETERS
CUPS
DECILITERS
FEET
FLUID_OUNCES
GALLONS
GRAMS
INCHES
KILOGRAMS
LITERS
METERS
MILLIGRAMS
MILLILITERS
MILLIMETERS
OUNCES
PINCH
PINTS
PORTION
POUNDS
QUARTS
TABLESPOONS
TEASPOONS
food_synonyms 数组

必填。

每种支持的语言中预设的食物名称同义词。

[item, ...] 对象

食物名称。

synonym 数组

必填。

预设的同义词,应同时包含单数和复数形式(如果适用)。

[item, ...] String

预设同义词名称。

lang String

必填。

语言代码 (ISO 639-1)。查看支持的语言

示例

只有一种烹饪模式且没有预设温度的设备。

{
  "supportedCookingModes": [
    "BAKE"
  ]
}

具有多种烹饪模式和食物预设的设备。

{
  "supportedCookingModes": [
    "COOK",
    "WARM"
  ],
  "foodPresets": [
    {
      "food_preset_name": "white_rice",
      "supported_units": [
        "CUPS"
      ],
      "food_synonyms": [
        {
          "synonym": [
            "White Rice",
            "Rice"
          ],
          "lang": "en"
        }
      ]
    },
    {
      "food_preset_name": "brown_rice",
      "supported_units": [
        "CUPS"
      ],
      "food_synonyms": [
        {
          "synonym": [
            "Brown Rice"
          ],
          "lang": "en"
        }
      ]
    }
  ]
}

设备状态

具有此 trait 的实体可能会在 QUERY 操作期间报告以下状态。如需详细了解如何处理 QUERY intent,请参阅intent 执行方式

类型 说明
currentCookingMode String

必填。

通过 supportedCookingModes 属性描述设备上设置的当前烹饪模式。只能报告一种模式。如果当前未选择任何模式,则应将此值设为 NONE。

currentFoodPreset String

设备中当前正在烹饪的食物的 food_preset_name(来自 foodPresets 属性)。只能报告一种食物。如果当前未选择食物,应将其设置为“无”。

currentFoodQuantity 编号

定义与 currentFoodUnit 关联的当前烹饪食物量(如果指定了量)。如果目前没有任何食物正在烹饪,或者与此食物预设关联的数量为 0,则不应报告此值。

currentFoodUnit String

currentFoodQuantity 关联的单位,来自预设的 supported_units 列表。

示例

我的烤箱是否正在烹饪?

{
  "currentCookingMode": "BAKE"
}

我电饭锅里现在在煮什么?

{
  "currentCookingMode": "COOK",
  "currentFoodPreset": "brown_rice",
  "currentFoodQuantity": 2,
  "currentFoodUnit": "CUPS"
}

设备命令

具有此 trait 的设备可能会在 EXECUTE 操作期间响应以下命令。如需详细了解如何处理 EXECUTE intent,请参阅intent 执行方式

action.devices.commands.Cook

开始或停止烹饪。

参数

参数 类型 说明
start 布尔值

必填。

设为 true 表示开始烹饪,设为 false 表示停止当前烹饪模式。

cookingMode String

通过 supportedCookingModes 属性请求了设备的烹饪模式。

foodPreset String

用户请求的食物预设的名称,来自 foodPresets 属性。

quantity 编号

用户要求的食物数量。

unit String

quantity 关联的单位(来自 supported_units 属性)。

示例

开始在烤箱中烘烤。

{
  "command": "action.devices.commands.Cook",
  "params": {
    "start": true,
    "cookingMode": "BAKE"
  }
}

别在我的烤箱里烤了。

{
  "command": "action.devices.commands.Cook",
  "params": {
    "start": false,
    "cookingMode": "BAKE"
  }
}

开始在电饭煲中煮 2 杯白米饭。

{
  "command": "action.devices.commands.Cook",
  "params": {
    "start": true,
    "cookingMode": "COOK",
    "foodPreset": "white_rice",
    "quantity": 2,
    "unit": "CUPS"
  }
}

设备错误

查看错误和异常的完整列表。
  • deviceDoorOpen - 设备的门是开着的。
  • deviceLidOpen - 设备的盖子已打开。
  • fractionalAmountNotSupported - 用户要求为预设的食物分配分数,但此设备不支持。
  • amountAboveLimit - 用户请求的数量超出上限。
  • unknownFoodPreset - 用户请求的食物预设不受设备支持。