Esquema do traço ColorSpectrum da casa inteligente

action.devices.traits.ColorSpectrum: essa característica pertence a qualquer dispositivo capaz de definir um espectro de cores. Isso se aplica a lâmpadas coloridas que usam intervalos de cores RGB. As luzes podem ter qualquer combinação de ColorSpectrum e ColorTemperature. Luzes de destaque e tiras de LED podem ter apenas a opção Spectrum, enquanto algumas lâmpadas de leitura têm apenas a temperatura. Lâmpadas básicas ou luzes musculosas em plugues inteligentes não têm.

ATRIBUTOS do dispositivo

Atributo Definição
colorModel Opcional. Pode ser definido como a string hsv para indicar a preferência de dispositivo pelo modelo de cores HSV (matiz, saturação, valor). O padrão é rgb.

Exemplo de solicitação e resposta de SYNC

Solicitação
{
    "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"
        }
      }
    ]
  }
}
Validador

STATES do dispositivo

Estado Definição
color Objeto Configuração de cor atual. Como uma determinada luz está no modo de espectro OU temperatura, esse objeto inclui as configurações de cor atuais no modo relevante.
  • String name. Se o ponto de cor (Espectro ou temperatura) corresponder a um nome predefinido na lista de cores do parceiro, o nome será retornado.
  • spectrumRGB Número inteiro. Valor do espectro em RGB (valor hexadecimal como um número inteiro).

Comandos do dispositivo

Comando Parâmetros/definição
action.devices.commands.ColorAbsolute Objeto color. Obrigatório. Inclui RGB ou temperatura e, opcionalmente, um nome.
  • String name. Nome da cor (em inglês), conforme fornecido no comando do usuário. Nem sempre disponível (para comandos relativos).
  • spectrumRGB Número inteiro. Valor do espectro em RGB (valor hexadecimal como um número inteiro).

Exemplo de solicitação e resposta de EXECUTE

Mudar a luz para vermelha.
Solicitação
{
  "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
          }
        }
      }
    ]
  }
}
Outras invocações de exemplo incluem:
  • Definir minhas luzes para verde.
  • Mudar minha luminária de mesa para vermelha.