Alexa.Cooking interface in your Alexa add-on so that users can control cooking appliances. All smart home add-ons that control cooking appliances must implement the Alexa.Cooking interface. For details about cooking add-ons, see Build Smart Home Add-ons for Cooking Appliances.
For the list of languages that the Alexa.Cooking interface supports, see List of Alexa Interfaces and Supported Languages. For the definitions of the message properties, see Alexa Interface Message and Property Reference.
Utterances
TheAlexa.Cooking interface uses the pre-built voice interaction model. The following examples show some user utterances:
- English (All)
Reportable properties
The following table shows the reportable properties that theAlexa.Cooking interface defines. You identify that you support the property in your discovery response.
| Property | Description | Type |
|---|---|---|
cookingMode | Mode for a cooking session, such as REHEAT. | CookingMode string |
foodItem | Describe the food to cook. | FoodItem object |
cookingTimeInterval | Time when cooking begins, and the time when the user expects cooking to complete. If the appliance needs to preheat before cooking begins, report the preheat time separately through the preheatTimeInterval property. | Time interval object |
cookingStatus | State of your appliance or the food cooking in the appliance, such as COOKING_COMPLETED. If your device supports proactive announcements for cooking, include this property. | CookingStatus. |
Announcements for cooking status
You can enable announcements to notify the user when the cooking appliance or the food needs attention. For example, and To enable announcements, implement theAlexa.ProactiveNotificationSource interface in your Alexa add-on. To indicate the cooking statuses that your appliance supports, include the supportedCookingStatuses property in your discovery response. You trigger announcements by sending ChangeReport to report a change in the cooking status.
For details, see Alexa.ProactiveNotificationSource.
Discovery
You describe endpoints that supportAlexa.Cooking by using the standard discovery mechanism described in Alexa.Discovery.
Set retrievable to true for all the interfaces and properties that you report when Alexa sends your add-on a state report request. Set proactivelyReported to true for interfaces and properties that you proactively report to Alexa in a change report.
For the full list of display categories, see display categories.
To let Alexa know the health of your device, also implement the Alexa.EndpointHealth interface.
Configuration object
In addition to the usual discovery response fields, for theAlexa.Cooking interface, include a configuration object that contains the following fields.
| Property | Description | Type | Required |
|---|---|---|---|
supportsRemoteStart | True if Alexa can start the device after a voice command. When false, Alexa prompts the user to push start on the device. The default is false. | Boolean | No |
supportedCookingModes | Cooking modes that the device supports through this interface. Use other interfaces to specify cooking modes for the same appliance. | Array of CookingMode values | Yes |
supportedCookingStatuses | To enable announcements, include the cooking statuses that the device supports. You must include at least two cooking statuses. | Array of CookingStatus string values | No |
Discover response example
The following example shows aDiscover.Response message for a microwave that supports the Alexa.Cooking, TimeController, PresetController, and ProactiveNotificationSource interfaces.
Directives
Alexa sends the followingAlexa.Cooking interface directives to your add-on.
SetCookingMode directive
Support theSetCookingMode directive so that customers can set the cooking mode for a device.
The following examples show some customer utterances:
- English (All)
SetCookingMode directive example
The following example shows aSetCookingMode directive that Alexa sends to your add-on.
SetCookingMode directive example to turn off a device
The following example shows aSetCookingMode directive that Alexa sends to your add-on to turn off a device.
SetCookingMode directive payload
| Property | Description | Type | Required |
|---|---|---|---|
cookingMode | Mode for the cooking session, such as DEFROST. | CookingMode object | Yes |
foodItem | Food to cook. The directive includes this field only if the user specifies it. | FoodItem | No |
SetCookingMode response
If you handle aSetCookingMode directive successfully, respond with an Alexa.Response event. In the context object, include the values of all relevant properties.
The following example shows a response to a SetCookingMode directive. The context object contains the values of all properties relevant to the current cooking action, even those properties defined by other interfaces.
SetCookingMode directive error handling
If you can’t handle aSetCookingMode directive successfully, respond with an Alexa.Cooking.ErrorResponse event. If your error is generic, and not specific to cooking, you can also respond with a generic Alexa.ErrorResponse event.
State reporting
Alexa sends aReportState directive to request information about the state of an endpoint. When Alexa sends a ReportState directive, you send a StateReport event in response. The response contains the current state of all retrievable properties in the context object. You identify your retrievable properties in your discovery response. For details about state reports, see Understand State and Change Reporting.
StateReport response example
Change reporting
You send anAlexa.ChangeReport event to report changes proactively in the state of an endpoint. You identify the properties that you proactively report in your discovery response. For details about change reporting, see Understand State and Change Reporting.
For an example Alexa.ChangeReport to trigger a notification to the user, see Alexa.ProactiveNotificationSource.

