Smart Home StartStop Trait Schema

action.devices.traits.StartStop - This trait belongs to devices that support starting and stopping operations.

Starting and stopping a device serves a similar function to turning it on and off. Devices that inherit this trait function differently when turned on and when started. Certain washing machines, for instance, are able to be turned on and have their settings modified before actually starting operation.

Unlike devices that simply have an on and off state, some devices that can start and stop are also able to pause while performing an operation. Devices that can pause will cease operation, but upon resume will continue in the same state as when they were paused. Unpausing differs from starting/restarting as regardless of the current state of the device, this will begin operation from the beginning.

Some devices may support running in certain zones. For example, a sprinkler may have various watering zones and support the ability to water particular zones separately, while a vacuum may support cleaning specific rooms.

Device ATTRIBUTES

Devices with this trait may report the following attributes as part of the SYNC operation. To learn more about handling SYNC intents, see Intent fulfillment.

Attributes Type Description
pausable Boolean

(Default: false)

Indicates whether the device can be paused during operation.

availableZones Array

Indicates supported zone names. Strings should be localized as set by the user. This list is not exclusive; users can report any names they want.

[item, ...] String

Name of a zone where starting device is supported.

Examples

Device that can be paused and supports operating in multiple zones.

{
  "pausable": true,
  "availableZones": [
    "kitchen",
    "living room",
    "office",
    "bedroom"
  ]
}

Device STATES

Devices with this trait may report the following states as part of the QUERY operation. To learn more about handling QUERY intents, see Intent fulfillment.

States Type Description
isRunning Boolean

Required.

Indicates if the device is currently in operation.

isPaused Boolean

Indicates if the device is explicitly paused. If this value is true, it implies isRunning is false but can be resumed.

activeZones Array

Indicates zones in which the device is currently running, from list of availableZones.

[item, ...] String

The zone name.

Examples

Is the device paused?

{
  "isRunning": false,
  "isPaused": true
}

Is the device paused?

{
  "isRunning": true,
  "isPaused": false
}

Is the device running?

{
  "isRunning": true,
  "isPaused": false,
  "activeZones": [
    "kitchen",
    "living room"
  ]
}

Device COMMANDS

Devices with this trait may respond to the following commands as part of the EXECUTE operation. To learn more about handling EXECUTE intents, see Intent fulfillment.

action.devices.commands.StartStop

Start or stop the device.

Parameters

Parameters Type Description
start Boolean

Required.

True to start device operation, false to stop.

zone String

Indicates zone in which to start running.

multipleZones Array

Indicates two or more zones in which to start running. Will be set instead of zone parameter.

[item, ...] String

Name of a zone to start device in.

Examples

Start the device.

{
  "command": "action.devices.commands.StartStop",
  "params": {
    "start": true
  }
}

Stop the device.

{
  "command": "action.devices.commands.StartStop",
  "params": {
    "start": false
  }
}

Start the device in the office.

{
  "command": "action.devices.commands.StartStop",
  "params": {
    "start": true,
    "zone": "office"
  }
}

Start device in the kitchen, dining room, and living room.

{
  "command": "action.devices.commands.StartStop",
  "params": {
    "start": true,
    "multipleZones": [
      "kitchen",
      "dining room",
      "living room"
    ]
  }
}

action.devices.commands.PauseUnPause

Pause or unpause device operation.

This command requires the following attributes:
{
  "pausable": true
}

Parameters

Parameters Type Description
pause Boolean

Required.

True to pause, false to unpause.

Examples

Pause the device.

{
  "command": "action.devices.commands.PauseUnPause",
  "params": {
    "pause": true
  }
}

The user tried to pause a device, but the device is in some state where it cannot be paused.

Supported values:

unpausableState

Device ERRORS

See the full list of errors and exceptions.