Esta é a Central do desenvolvedor do Google Home, o novo destino para aprender a desenvolver ações de casa inteligente. Observação:você continuará criando ações no Console do Actions.

Esquema de características do SmartSpec Color Home

action.devices.traits.ColorSpectrum: esta característica pertence a qualquer dispositivo capaz de definir um espectro de cores. Isso se aplica a lâmpadas de cores "completas" que aceitam intervalos de cores RGB. As luzes podem ter qualquer combinação de ColorSpectrum e ColorTemperature. As luzes de destaque e as tiras de LED podem ter apenas o Spectrum, enquanto algumas lâmpadas de leitura só têm temperatura. As lâmpadas básicas ou burros em plugues inteligentes também 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 para o modelo de cor 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 (em inglês)
'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 (link em inglês)
{
  "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 de 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, retorne o nome.
  • spectrumRGB inteiro. Valor do espectro em RGB (valor hexadecimal como um número inteiro).

Dispositivo COMMANDS

Comando Parâmetros/definição
action.devices.commands.ColorAbsolute 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 está disponível (para comandos relativos).
  • spectrumRGB inteiro. Valor do espectro em RGB (valor hexadecimal como um número inteiro).

Exemplo de solicitação e resposta de EXECUÇÃO

Definir minha luz para vermelho.
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 (em inglês)
'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 (link em inglês)
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "color": {
            "name": "red",
            "spectrumRGB": 12655639
          }
        }
      }
    ]
  }
}
Veja outros exemplos de invocações:
  • Deixar minhas luzes verdes.
  • Mude a luminária para vermelho.