Schema dei tratti dello spettro dei colori per la smart home

action.devices.traits.ColorSpectrum. Questa trait appartiene a qualsiasi dispositivo in grado di impostare uno spettro di colori. Questo vale per le lampadine a colori "completi" che utilizzano intervalli di colore RGB. Le luci possono avere qualsiasi combinazione di ColorSpectrum e ColorTemperature. Le luci d'accento e le strisce LED potrebbero avere solo lo spettro, mentre alcune lampadine da lettura hanno solo la temperatura. Le lampadine semplici o le luci stupide sulle prese smart non ne hanno nessuna.

ATTRIBUTES del dispositivo

Attributo Definizione
colorModel Campo facoltativo. Può essere impostato sulla stringa hsv per indicare la preferenza del dispositivo per il modello di colore HSV (tonalità, saturazione, valore). Il valore predefinito è rgb.

Esempio di richiesta e risposta SYNC

Richiesta
{
    "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"
        }
      }
    ]
  }
}
Convalidatore

Dispositivo STATES

Stato Definizione
color oggetto. Impostazione colore corrente. Poiché una determinata luce si trova in modalità spettro O temperatura, questo oggetto include le attuali impostazioni di colore nella modalità pertinente.
  • Stringa name. Se il punto di colore (Spettro o Temperatura) corrisponde a un nome preimpostato nell'elenco di colori del partner, restituisci il nome.
  • spectrumRGB Numero intero. Valore dello spettro in RGB (valore esadecimale come un numero intero).

COMMANDS dispositivo

Comando Parametri/Definizione
action.devices.commands.ColorAbsolute Oggetto color. Obbligatorio. Includerà RGB o Temperatura e facoltativamente un nome.
  • Stringa name. Nome del colore (in inglese) fornito nel comando dell'utente. Non sempre disponibile (per i comandi relativi).
  • spectrumRGB Numero intero. Valore dello spettro in RGB (valore esadecimale come un numero intero).

Esempio di richiesta e risposta EXECUTE

Imposta la luce sul rosso.
Richiesta
{
  "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
          }
        }
      }
    ]
  }
}
Altre chiamate di esempio includono quanto segue:
  • Imposta le luci sul verde.
  • Cambia la lampada da tavolo su rossa.