Schéma des traits du spectre couleur de la maison connectée

action.devices.traits.ColorSpectrum : cette caractéristique appartient à tout appareil capable de définir un spectre de couleurs. Cela s'applique aux ampoules pleine couleur qui acceptent des plages de couleurs RVB. Les éclairages peuvent avoir n'importe quelle combinaison de ColorSpectrum et de ColorTemperature. Les ampoules d'accentuation et les bandes LED peuvent simplement utiliser Spectrum, tandis que certaines ampoules de lecture n'ont que la température. Les ampoules de base ou les systèmes d'éclairage passifs sur les prises connectées n'ont pas non plus accès.

Attributs d'appareil

Attribut Définition
colorModel Facultatif. Peut être défini sur la chaîne hsv pour indiquer les préférences d'appareil pour le modèle de couleur HSV (teinte, saturation, valeur). La valeur par défaut est rgb.

Exemple de requête et de réponse SYNC

Demander
{
    "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"
        }
      }
    ]
  }
}
Outil de validation

Device STATES

État Définition
color Objet. Paramètre de couleur actuel. Étant donné qu'une lumière donnée est en mode spectre OU température, cet objet inclut les paramètres de couleur actuels dans le mode approprié.
  • Chaîne name. Si le point de couleur (Spectre ou Température) correspond à un nom prédéfini dans la liste de couleurs du partenaire, renvoyez le nom.
  • spectrumRGB Entier. Valeur du spectre en RVB (valeur hexadécimale sous forme de nombre entier).

COMMANDS d'appareil

Commande Paramètres/Définition
action.devices.commands.ColorAbsolute Objet color. Obligatoire. Inclut le code RVB ou température, et éventuellement un nom.
  • Chaîne name. Nom de couleur (en anglais) tel que fourni dans la commande de l'utilisateur. Pas toujours disponible (pour les commandes relatives).
  • spectrumRGB Entier. Valeur du spectre en RVB (valeur hexadécimale sous forme de nombre entier).

Exemple de requête et de réponse EXECUTE

Règle ma lumière sur rouge.
Demander
{
  "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
          }
        }
      }
    ]
  }
}
Voici d'autres exemples d'appels :
  • Règle mes lumières sur vert.
  • Règle la lampe de bureau sur rouge.