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.
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

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.

CookingStatus values

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."

FoodDoneness

FoodDoneness represents how cooked a user wants their food, such as a rare steak, crispy bacon, or al dente pasta. You can use the following values for FoodDoneness. The values are strings.

Doneness Eggs Fish Meat Pasta Poultry Vegetables
AL_DENTE Yes Yes
CREAMY Yes
CRISPY Yes
DRY
FIRM Yes Yes
FLAKY Yes
HARD Yes
JUICY Yes
MEDIUM Yes Yes Yes Yes
MEDIUM_RARE Yes Yes
MEDIUM_WELL Yes Yes Yes Yes
MOIST
OPAQUE
OVERCOOKED Yes Yes Yes
RARE Yes Yes
RUNNY Yes
SMOOTH Yes
SOFT Yes Yes
SPRINGY
SUCCULENT
TENDER Yes
UNDERCOOKED Yes Yes
VELVETY Yes
WELL_DONE Yes Yes Yes

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"
},