Schemat Trait kolorów w inteligentnym domu

action.devices.traits.ColorSpectrum – ta cecha należy do każdego urządzenia, które może ustawiać spektrum kolorów. Dotyczy to „pełnych” żarówek kolorów, które wykorzystują zakresy kolorów RGB. Światła mogą mieć dowolną kombinację parametrów ColorSpectrum i ColorTemperature. Lampy dekoracyjne i paski LED mogą mieć po prostu Spectrum, a niektóre żarówki do odczytu mają tylko temperaturę. Zwykłe żarówki ani tłuste oświetlenie na inteligentnych wtyczkach.

Urządzenie ATTRIBUTES

Atrybut Definicja
colorModel Opcjonalnie. Można go ustawić na ciąg hsv, aby wskazać, jakie urządzenia są preferowane w przypadku modelu koloru HSV (kolor, nasycenie, wartość). Wartość domyślna to rgb.

Przykładowe żądanie i odpowiedź SYNC

Prośba
{
    "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"
        }
      }
    ]
  }
}
Walidator

Urządzenie STATES

Stan Definicja
color Obiekt. Bieżące ustawienie koloru. Ponieważ światło jest w trybie widma LUB temperatury, ten obiekt uwzględnia bieżące ustawienia kolorów w odpowiednim trybie.
  • Ciąg tekstowy name. Jeśli punkt koloru (Widmo lub Temperatura) jest zgodny z nazwą gotowego ustawienia na liście kolorów partnera, zwróć nazwę.
  • Liczba całkowita: spectrumRGB. Wartość widma w RGB (wartość szesnastkowa jako liczba całkowita).

CommandS na urządzeniu

Polecenie Parametry/definicja
action.devices.commands.ColorAbsolute Obiekt color. Wymagany. Obejmuje RGB lub temperaturę i opcjonalnie nazwę.
  • Ciąg tekstowy name. Nazwa koloru (w języku angielskim) podana w poleceniu użytkownika. Niedostępne (w przypadku poleceń względnych).
  • Liczba całkowita: spectrumRGB. Wartość widma w RGB (wartość szesnastkowa jako liczba całkowita).

Przykładowe żądanie i odpowiedź EXECUTE

Ustaw diodę na czerwony.
Prośba
{
  "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
          }
        }
      }
    ]
  }
}
Inne przykładowe wywołania:
  • Ustaw zielone światło na zielone.
  • Zmień kolor lampy biurkowej na czerwony.