# 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`](https://developers.home.google.com/cloud-to-cloud/intents/sync) operation. To learn
more about handling `SYNC` intents, see
[Intent fulfillment](https://developers.home.google.com/cloud-to-cloud/integration/sync).

| 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

Entities with this trait may report the following
states as part of the [`QUERY`](https://developers.home.google.com/cloud-to-cloud/intents/query) operation. To learn
more about handling `QUERY` intents, see
[Intent fulfillment](https://developers.home.google.com/cloud-to-cloud/integration/query-execute).

| 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. This field should not exist if the `pausable` attribute is false. |
| `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`](https://developers.home.google.com/cloud-to-cloud/intents/execute) operation. To learn
more about handling `EXECUTE` intents, see
[Intent fulfillment](https://developers.home.google.com/cloud-to-cloud/integration/query-execute#handle_execute_intents).

### `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
  }
}
```

#### Related errors

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

Supported values:

`unpausableState`

## Sample utterances

> [!NOTE]
> This is a sample of the utterances supported by this device trait, make sure to also review other [supported languages](https://developers.home.google.com/cloud-to-cloud/traits#supported-languages).

### de-DE

- Bitte starte *den Staubsauger* *im Wohnzimmer* .
- *Geschirrspüler* wieder anstellen
- *Staubsauger* abschalten
- *Staubsauger* pausieren
- bitte starte *die Waschmaschine*
- ist *die Waschmaschine* fertig

### en-US

- I need *my roomba* to start running in *the den*
- is *the vacuum* running
- pause *the dryer* now
- start *the dryer* now
- stop *the dishwasher*
- unpause *the dishwasher*

### es-ES

- dime si ha acabado *el lavavajillas*
- parar *la lavadora*
- pon *el lavavajillas* en pausa
- quiero usar *el friegaplatos*
- vuelve a encender *la aspiradora*

### fr-FR

- Allumer *l'aspirateur* dans *le salon* .
- Continuer *l'aspirateur* .
- arrête *l'aspirateur*
- est-ce que *l'aspirateur* est en marche
- lance *la machine à laver*
- mets *l'aspirateur* en pause

### hi-IN

- *कमरे* में *वैक्यूम* चलाओगी
- क्या *वैक्यूम* चल रहा है?
- *डिशवॉशर* को कुछ देर रोको
- *वैक्यूम* को अनपॉज़ करो
- *वैक्यूम* को चालू कर दो
- *वैक्यूम* को बंद कर दो

### it-IT

- Mi accendi *l'aspirapolvere* *in cucina* ?
- fa' partire *aspirapolvere*
- fai ripartire *l'aspirapolvere*
- *la lavatrice* è in funzione
- metti in pausa *l'aspirapolvere*
- stoppa *l'aspirapolvere*

### ja-JP

- *お掃除ロボット* を *リビング* で動かして
- *台所の食洗機* を一時停止してください
- *掃除機* は作動してる
- *掃除機* を停止して
- *掃除機* を再開してください
- *洗濯機* をスタートさせて

### ko-KR

- *거실* 에서 *청소기* 돌려
- *건조기* 돌아가고 있나
- *세탁기* 좀 돌려 줘
- *식기 세척기* 다시 시작해
- *청소기* 일시 정지
- *청소기* 작동 멈춰 줘

### nl-NL

- *De schoonmaakrobot* inschakelen in *de keuken* .
- Is *de stofzuiger* klaar
- hervat *de stofzuiger*
- pauzeer *de stofzuiger*
- start *mijn stofzuiger*
- stop *de stofzuiger*

### pt-BR

- Inicia *o aspersor* no *jardim*
- Iniciar *o aspirador de pó* na *sala* .
- iniciar *a máquina de lavar*
- *o aspirador* está parado?
- parar a pausa na *máquina de lavar roupa*
- parar *o aspirador de pó*
- pausar *o aspirador de pó*

### sv-SE

- Kör igång *sprinklern* på *gräsmattan* .
- har *dammsugaren i vardagsrummet* startat?
- kör igång *dammsugaren* igen
- pausa *dammsugaren*
- starta *tvättmaskinen*
- stoppa *dammsugaren*

## Device ERRORS

See the full list of [errors and exceptions](https://developers.home.google.com/cloud-to-cloud/intents/errors-exceptions).