Property Schemas for Alexa.Cooking APIs

The Alexa.Cooking interfaces use property schemas to define cooking information. For details about cooking skills, see Build Smart Home Skills for Cooking Appliances.

Property definition

When you include properties in a cooking interface, you can express the property as an object or a string.

Example property object

{
    "name": "cookingMode",
    "value": "DEFROST"
}

Example property string

"cookingMode": "DEFROST"

CookingMode

CookingMode represents the cooking mode for a cooking appliance, such as a microwave oven. CookingMode can be an object or a string.

Field Description Type
cookingMode A predefined cooking mode, such as BOIL or REHEAT, or a manufacturer's custom mode.
For the list of valid values, see CookingMode Values.
String
customName The manufacturer's name for the predefined or custom cooking mode.
When you use a predefined mode, such as BOIL, you can include this field to specify the manufacturer's custom name for the predefined mode. When you use the CUSTOM mode, you must include this field to specify the manufacturer's custom name for a mode that isn't represented by a predefined mode.
For an example discovery response with a custom mode, see Cooking discovery response
String

CookingMode Object Format

You can use the full object format for the CookingMode. You must use the object format to include the optional customName attribute. Alexa always sends the CookingMode to your lambda function in the object format.

Example object format

"cookingMode":
{
  "value": "BAKE"
}

Example object format with custom name

"cookingMode":
{
  "value": "BOIL",
  "customName": "QUICK_BOIL"
}

Example object format with custom mode

"cookingMode":
{
  "value": "CUSTOM",
  "customName": "ABC_QUICK_REHEAT"
}

CookingMode String Format

You can also abbreviate CookingMode as a string.

Example string format

"cookingMode": "REHEAT"

CookingMode Values

  • Include the cooking mode OFF to indicate when the appliance is off.

  • Use the cooking mode PRESET if your appliance supports preset modes or other automated cooking. For details, see Alexa.Cooking.PresetController.

  • Use the cooking mode CUSTOM for modes that are specific to your appliance, such as trademarked modes. To specify CUSTOM cooking modes, use the object form, and include the customName field.

  • In addition, you can use the following predefined values for CookingMode. The values are strings.

    AIR_FRY, BAKE, BLANCH, BOIL, BREW, BROIL, CONVECTION_BAKE, CONVECTION_BROIL, CONVECTION_ROAST, CONVECTION_STEAM, CURE, DEFROST, DEHYDRATE, FERMENT, FRY, GRILL, INCUBATE, MELT, MICROWAVE, OFF, PRESET, PRESSURE, PROOF, REHEAT, ROAST, SAUTE, SEAR, SLOW_COOK, SMOKE, SOFTEN, SOUS_VIDE, STEAM, STIR_FRY, TOAST, WARM

CookingStatus values

CookingStatus represents the state of your appliance or the state of the food that your appliance is cooking. Some cooking statuses can trigger an announcement to the user.

The following table shows the valid values for CookingStatus.

Cooking status value Description Resulting announcement
COOKING Indicates that the appliance is in use, such as baking, cooking, broiling. No announcement generated.
PREHEATING Indicates the appliance is preheating. No announcement generated.
PREHEATING_COMPLETED Indicates the appliance reached the requested temperature. "Your <appliance friendlyName> has preheated."
FOOD_TARGET_TEMPERATURE_REACHED Indicates the food reached it's target cooking temperature. "Your food in the <appliance friendlyName> has reached target temperature."
COOKING_COMPLETED Indicates the cooking time completed and the food is ready. "Your food in the <appliance friendlyName> is ready."
NOT_IN_USE Indicates the appliance isn't in use. No announcement generated.
READY Indicates the appliance is ready to use. "Your <appliance friendlyName> is ready to use."

FoodItem

FoodItem represents a food item.

Field Description Type
foodName The name of the food, such as steak. String
foodQuantity The amount of the food. A food quantity object.

Example FoodItem

{
  "name": "foodItem",
  "value": {
    "foodName": "Copper river salmon",
    "foodQuantity": {
      "@type": "Weight",
      "value": 2.5,
      "unit": "POUND"
    }
  }
}

FoodQuantity

Use foodQuantity to represent a quantity of food. Use the @type field to indicate the type of quantity: food count, volume, or weight.

Example foodQuantity with count

"foodQuantity":
{
    "@type": "FoodCount",
    "value": 12
}

Example foodQuantity with volume

"foodQuantity":
{
    "@type": "Volume",
    "value": 1.25,
    "unit": "LITER"
},

Example foodQuantity with weight

"foodQuantity":
{
    "@type": "Weight",
    "value": 2.5,
    "unit": "POUND"
},