สคีมาลักษณะของ Smart Home ColorSpectrum

action.devices.traits.ColorSpectrum - ลักษณะนี้เป็นของอุปกรณ์ใดก็ตามที่ตั้งค่าแถบสีได้ การตั้งค่านี้มีผลกับหลอดไฟสี "เต็ม" ที่ใช้ช่วงสี RGB หลอดไฟอาจมีการใช้ ColorSpectrum และ ColorTemperature ร่วมกัน ไฟเฉพาะจุดและแถบ LED อาจมีแค่สเปกตรัม ในขณะที่หลอดไฟอ่านหนังสือบางดวงมีอุณหภูมิ หลอดไฟพื้นฐานหรือไฟใบ้บนปลั๊กอัจฉริยะ ก็ไม่มีเช่นกัน

ATTRIBUTES ของอุปกรณ์

แอตทริบิวต์ คำจำกัดความ
colorModel ไม่บังคับ ตั้งค่าเป็นสตริง hsv ได้เพื่อระบุค่ากำหนดอุปกรณ์สำหรับรูปแบบสี HSV (hue, ความอิ่มตัว, ค่า) โดยมีค่าเริ่มต้นเป็น rgb

ตัวอย่างคำขอและการตอบกลับการซิงค์

คำขอ
{
    "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 (ค่าฐานสิบหกเป็นจำนวนเต็ม)

COMMANDS ของอุปกรณ์

คำสั่ง พารามิเตอร์/คำจำกัดความ
action.devices.commands.ColorAbsolute ออบเจ็กต์ color รายการ ต้องระบุ โดยจะรวมถึง RGB หรือ Temperature และชื่อ (ไม่บังคับ)
  • สตริง name ชื่อสี (เป็นภาษาอังกฤษ) ตามที่ระบุไว้ในคำสั่งของผู้ใช้ ใช้ไม่ได้เสมอไป (สำหรับคำสั่งที่เกี่ยวข้อง)
  • spectrumRGB จำนวนเต็ม ค่าสเปกตรัมเป็น RGB (ค่าฐานสิบหกเป็นจำนวนเต็ม)

ตัวอย่างคำขอและการตอบกลับ

ตั้งค่าไฟของฉันเป็นสีแดง
คำขอ
{
  "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
          }
        }
      }
    ]
  }
}
ตัวอย่างการเรียกใช้อื่นๆ มีดังนี้
  • ตั้งค่าไฟของฉันเป็นสีเขียว
  • เปลี่ยนโคมไฟตั้งโต๊ะเป็นสีแดง