סכימת תכונות ColorSpectrum לבית חכם

action.devices.traits.ColorSpectrum – התכונה הזו שייכת לכל מכשיר שיכול להגדיר קשת צבעים. האפשרות הזו רלוונטית בנורות צבעוניות "מלאות" עם טווחי צבעי RGB. התאורה יכולה לכלול כל שילוב של ColorSpectrum ו-ColorTemperature. מנורות בולטות ורצועות LED עשויות לכלול רק את 'ספקטרום', וחלק מנורות קריאה מסוימות יש רק טמפרטורה. נורות בסיסיות או נורות טיפשיות בשקעים חכמים אין להן אף אחת מהן.

מאפייני המכשיר

מאפיין הגדרה
colorModel אופציונלי. אפשר להגדיר את המחרוזת hsv כדי לציין העדפת מכשיר למודל הצבע של HSV (גוון, רוויה, ערך). ברירת המחדל היא 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"
        }
      }
    ]
  }
}
מאמת

מכשיר STATES

ארץ הגדרה
color אובייקט. הגדרת הצבע הנוכחית. מכיוון שאור נתון נמצא במצב ספקטרום או טמפרטורה, האובייקט הזה כולל את הגדרות הצבעים הנוכחיות במצב הרלוונטי.
  • מחרוזת name. אם נקודת הצבע (Spectrum או Temperature) תואמת לשם שהוגדר מראש ברשימת הצבעים של השותף, צריך להחזיר את השם.
  • מספר שלם אחד (spectrumRGB). ערך ספקטרום ב-RGB (ערך הקסדצימלי כמספר שלם).

COMMANDS של מכשיר

Command פרמטרים/הגדרה
action.devices.commands.ColorAbsolute אובייקט color. חובה. יכלול את ה-RGB או את 'טמפרטורה', ואפשר גם גם את השם.
  • מחרוזת 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
          }
        }
      }
    ]
  }
}
הפעלות לדוגמה נוספות כוללות:
  • הגדרת הנורות לירוק.
  • שינוי מנורות שולחן לאדום.