Схема характеристик цветового спектра умного дома

action.devices.traits.ColorSpectrum — эта черта принадлежит любому устройству, которое может устанавливать цветовой спектр. Это относится к «полноцветным» лампам, работающим в цветовом диапазоне RGB. Источники света могут иметь любую комбинацию ColorSpectrum и ColorTemperature . Акцентные лампы и светодиодные ленты могут иметь только спектр, тогда как некоторые лампы для чтения имеют только температуру. Обычные лампочки или тупые фонари на умных розетках не имеют ни того, ни другого.

АТРИБУТЫ устройства

Атрибут Определение
colorModel Необязательный. Может быть установлен в строку hsv , чтобы указать предпочтения устройства для цветовой модели HSV (оттенок, насыщенность, значение). По умолчанию — rgb .

Пример запроса и ответа SYNC

Запрос
{
    "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"
        }
      }
    ]
  }
}
Валидатор

СОСТОЯНИЯ устройства

Состояние Определение
color Объект. Текущая настройка цвета. Поскольку данный источник света находится в режиме спектра ИЛИ температуры, этот объект включает текущие настройки цвета в соответствующем режиме.
  • name Строка. Если цветовая точка (спектр или температура) соответствует заданному имени в списке цветов партнера, верните имя.
  • spectrumRGB Целое число. Значение спектра в RGB (шестнадцатеричное значение как целое число).

КОМАНДЫ устройства

Команда Параметры/Определение
action.devices.commands.ColorAbsolute color объект. Необходимый. Будет включать RGB или температуру и, при необходимости, имя.
  • name Строка. Название цвета (на английском языке), указанное в команде пользователя. Не всегда доступен (для относительных команд).
  • spectrumRGB Целое число. Значение спектра в RGB (шестнадцатеричное значение как целое число).

Пример запроса и ответа EXECUTE

Установите мой свет на красный.
Запрос
{
  "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
          }
        }
      }
    ]
  }
}
Другие примеры вызовов включают следующее:
  • Поставь мне зеленый свет.
  • Поменяй настольную лампу на красную.