# Smart Home ColorSpectrum Trait Schema

> [!NOTE]
> This trait has been deprecated. Use [ColorSetting](https://developers.home.google.com/cloud-to-cloud/traits/colorsetting) instead.

`action.devices.traits.ColorSpectrum` - This trait belongs to any device
that is able to set a color spectrum. This applies to "full" color bulbs that take RGB color
ranges. Lights may have any combination of ColorSpectrum and
[ColorTemperature](https://developers.home.google.com/cloud-to-cloud/traits/colortemperature). Accent lights and LED strips may just have Spectrum,
whereas some reading bulbs just have Temperature. Basic bulbs, or dumb lights on smart plugs, have
neither.

## Device ATTRIBUTES

| Attribute | Definition |
|---|---|
| `colorModel` | Optional. Can be set to string `hsv` to indicate device preference for the HSV (hue, saturation, value) color model. Default is `rgb`. |

## Sample SYNC Request and Response

Request

```
{
    "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.LIGHT',
        traits: [
          'action.devices.traits.ColorSpectrum'
        ],
        name: {
          defaultNames: ['AAA bulb A19 color hyperglow'],
          name: 'lamp1',
          nicknames: ['reading lamp']
        },
        willReportState: true,
        attributes: {
          colorModel: 'rgb'
        },
        deviceInfo: {
          manufacturer: 'AAA',
          model: 'hg11',
          hwVersion: '1.2',
          swVersion: '5.4'
        },
        customData: {
          fooValue: 12,
          barValue: false,
          bazValue: 'dancing alpaca'
        }
      }]
    }
  };
});

// ...

exports.smarthome = functions.https.onRequest(app);
```

##### JSON

```
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.ColorSpectrum"
        ],
        "name": {
          "defaultNames": [
            "AAA bulb A19 color hyperglow"
          ],
          "name": "lamp1",
          "nicknames": [
            "reading lamp"
          ]
        },
        "willReportState": true,
        "attributes": {
          "colorModel": "rgb"
        },
        "deviceInfo": {
          "manufacturer": "AAA",
          "model": "hg11",
          "hwVersion": "1.2",
          "swVersion": "5.4"
        },
        "customData": {
          "fooValue": 12,
          "barValue": false,
          "bazValue": "dancing alpaca"
        }
      }
    ]
  }
}
```
Validator Paste the SYNC JSON in the text area below. <button id="runbutton" class="gc-analytics-event" data-category="sh-traits" data-action="validate" data-label="action.devices.traits.ColorSpectrum">Validate</button>

{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": \[ { "id": "123", "type": "action.devices.types.LIGHT", "traits": \[ "action.devices.traits.ColorSpectrum" \], "name": { "defaultNames": \[ "AAA bulb A19 color hyperglow" \], "name": "lamp1", "nicknames": \[ "reading lamp" \] }, "willReportState": true, "attributes": { "colorModel": "rgb" }, "deviceInfo": { "manufacturer": "AAA", "model": "hg11", "hwVersion": "1.2", "swVersion": "5.4" }, "customData": { "fooValue": 12, "barValue": false, "bazValue": "dancing alpaca" } } \] } }

## Device STATES

| State | Definition |
|---|---|
| `color` | Object. Current color setting. Since a given light is in spectrum OR temperature mode, this object includes the current color settings in the relevant mode. - `name` String. If the color point (Spectrum or Temperature) matches a preset name on the partner's color list, return the name. - `spectrumRGB` Integer. Spectrum value in RGB (hex value as an integer). |

## Device COMMANDS

| Command | Parameters/Definition |
|---|---|
| `action.devices.commands.ColorAbsolute` | `color` Object. Required. Will include RGB or Temperature and optionally, a name. - `name` String. Color name (in English) as provided in the user's command. Not always available (for relative commands). - `spectrumRGB` Integer. Spectrum value in RGB (hex value as an integer). |

### Sample EXECUTE Request and Response

*Set my light to red.* Request

```
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": "action.devices.EXECUTE",
    "payload": {
      "commands": [{
        "devices": [{
          "id": "123",
          "customData": {
            "fooValue": 74,
            "barValue": true,
            "bazValue": "sheepdip"
          }
        }],
        "execution": [{
          "command": "action.devices.commands.ColorAbsolute",
          "params": {
            "color": {
            "name": "red",
            "spectrumRGB": 16711680
            }
          }
        }]
      }]
    }
  }]
}
```

##### Node.js

```
'use strict';

const {smarthome} = require('actions-on-google');
const functions = require('firebase-functions');

const app = smarthome();

app.onExecute((body, headers) => {
  return {
    requestId: body.requestId,
    payload: {
      commands: [{
        ids: ['123'],
        status: 'SUCCESS',
        states: {
          color: {
            name: 'red',
            spectrumRGB: 12655639
          }
        }
      }]
    }
  };
});

// ...

exports.smarthome = functions.https.onRequest(app);
```

##### JSON

```
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "color": {
            "name": "red",
            "spectrumRGB": 12655639
          }
        }
      }
    ]
  }
}
```
Other example invocations include the following:

- *Set my lights to green.*
- *Change my desk lamp to red.*