Device TYPE
action.devices.types.OVEN
Interaction with ovens involves the ability to bake or broil at
certain temperatures. The physical temperature inside the oven differs as the oven is heating, so
this may also be monitored. The oven has a cook time that limits the duration of baking.
This type indicates that the device gets the oven icon and some oven-type synonyms/aliases.
Recommended TRAITS
action.devices.traits.Cook
action.devices.traits.TemperatureControl
action.devices.traits.StartStop
action.devices.traits.OnOff
action.devices.traits.Modes
action.devices.traits.Toggles
These are our recommendations for traits on this type of
device, however you are free to mix and match from all available traits to best match your existing
product functionality.
Please see each individual trait document for implementation details like required attributes,
EXECUTE and QUERY.
Sample SYNC Request and Response
This is an example using the device type and traits above. It is intended to give an idea of how to build a SYNC response. If you add or remove traits, this will need to be modified to reflect those changes.
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.SYNC" }] }
Node.js
'use strict'; const {smarthome} = require('actions-on-google'); const functions = require('firebase-functions'); const app = smarthome(); app.onSync((body, headers) => { return { requestId: body.requestId, payload: { agentUserId: '1836.15267389', devices: [{ id: '123', type: 'action.devices.types.OVEN', traits: [ 'action.devices.traits.TemperatureControl', 'action.devices.traits.StartStop' ], name: { defaultNames: ['AAA Smart Oven'], name: 'Oven', nicknames: ['conventional oven'] }, willReportState: true, attributes: { temperatureRange: { minThresholdCelsius: 65.5, maxThresholdCelsius: 288 }, temperatureUnitForUX: 'F', pausable: false }, deviceInfo: { manufacturer: 'Smart Oven Manufacturers', model: 'F600G', hwVersion: '3.2', swVersion: '11.4' }, customData: { fooValue: 74, barValue: true, bazValue: 'lambtwirl' } }] } }; }); // ... exports.smarthome = functions.https.onRequest(app);
Java
@NotNull @Override public SyncResponse onSync(@NotNull SyncRequest syncRequest, @Nullable Map<?, ?> headers) { SyncResponse.Payload payload = new SyncResponse.Payload(); payload.setAgentUserId("1836.15267389"); payload.setDevices(new SyncResponse.Payload.Device[] { new SyncResponse.Payload.Device.Builder() .setId("123") .setType("action.devices.types.OVEN") .addTrait("action.devices.traits.Cook") .addTrait("action.devices.traits.StartStop") .addTrait("action.devices.traits.TemperatureControl") .setName( Collections.singletonList("AAA Smart Oven"), "Oven", Collections.singletonList("conventional oven") ) .setWillReportState(true) .setAttributes(new JSONObject() .put("temperatureRange", new JSONObject() .put("minThresholdCelsius", 65.5) .put("maxThresholdCelsius", 288) ) .put("temperatureUnitForUX", "F") .put("pausable", false) .put("supportedCookingModes", new String[] { "BAKE", "CONVECTION_BAKE", "ROAST" }) ) .setDeviceInfo("Smart Oven Manufacturers", "F600G", "3.2", "11.4") .setCustomData(new JSONObject() .put("fooValue", 74) .put("barValue", true) .put("bazValue", "lambtwirl") .toString() ) .build() }); return new SyncResponse(syncRequest.getRequestId(), payload); }
JSON
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [ { "id": "123", "type": "action.devices.types.OVEN", "traits": [ "action.devices.traits.TemperatureControl", "action.devices.traits.StartStop" ], "name": { "defaultNames": [ "AAA Smart Oven" ], "name": "Oven", "nicknames": [ "conventional oven" ] }, "willReportState": true, "attributes": { "temperatureRange": { "minThresholdCelsius": 65.5, "maxThresholdCelsius": 288 }, "temperatureUnitForUX": "F", "pausable": false }, "deviceInfo": { "manufacturer": "Smart Oven Manufacturers", "model": "F600G", "hwVersion": "3.2", "swVersion": "11.4" }, "customData": { "fooValue": 74, "barValue": true, "bazValue": "lambtwirl" } } ] } }
Device ERRORS
See the full list of errors and exceptions.
Device GRAMMAR
Ovens have type-based grammar for action.devices.traits.OnOff
and
action.devices.traits.TemperatureControl
:
- If the device supports
OnOff
, Preheat the oven will send anaction.devices.commands.OnOff
command. - If the device supports
TemperatureControl
, Preheat the oven to 350 degrees will send a command to set the oven to that temperature.