スマートホーム TemperatureSetting トレイトのスキーマ

action.devices.traits.TemperatureSetting - このトレイトは、設定温度とモードに対応しています。

デバイスの属性

属性 定義
availableThermostatModes この特定のデバイスでサポートされているモードのカンマ区切りのリスト。現在、以下のリストから特定の既知のモードをサポートします。必要に応じて、その他のモードやカスタムのモードも追加されます。これらのモードにはすべて局所展開エイリアスがあります(off == "standby" など)。
  • off 暖房 / 冷房動作が無効になっている
  • heat デバイスは暖房をサポートしている
  • cool デバイスは冷房をサポートしている
  • on オフの場合、on でデバイスの以前のモードを復元する
  • heatcool デバイスは目標の温度範囲がある暖房 / 冷房をサポートしている
  • auto デバイスは、スケジュール、学習した動作、AI、その他の関連メカニズムに基づいて温度が設定される「自動」モードをサポートしている
  • fan-only デバイスは送風のみのモードをサポートしている(送風と cool などの他のモードの両方ではなく)
  • purifier デバイスが空気清浄モードをサポートしている
  • eco デバイスが「エコ」(省エネ)モードをサポートしている
  • dry デバイスが除湿モードをサポートしている
thermostatTemperatureUnit C または F。デバイスに設定されているデフォルトの単位。デバイスはデバイスの表示単位を使用して「話し」ます。
bufferRangeCelsius 倍精度。省略可。設定しない場合、デフォルトの摂氏 2 度です。heatcool モードがサポートされている場合、冷暖房設定温度間の最小オフセットを摂氏で設定します。
commandOnlyTemperatureSetting ブール値。省略可。デバイスがコマンドのみの実行をサポートしている場合、必須。この属性は、デバイスが一方向または双方向の通信をサポートしているかどうかを示します(たとえば、コントローラがリクエストの送信後に新しいステータスを通知する場合は双方向がサポートされています)。デバイスがステータスの通知を受けてリクエストの成功を確認できない場合は、true に設定する必要があります。
queryOnlyTemperatureSetting ブール値。省略可。デバイスが問い合わせのみの実行をサポートしている場合、必須。デバイスが、ステータス情報の問い合わせができるだけで、制御はできないかどうかを示します。温度のみを通知できるセンサーは、このフィールドを true に設定する必要があります。このフィールドが true の場合、availableThermostatModes 属性は省略可能です。

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.THERMOSTAT',
        traits: [
          'action.devices.traits.TemperatureSetting'
        ],
        name: {
          defaultNames: ['Honeywell Thermostat T-1000'],
          name: 'Homer Simpson Thermostat',
          nicknames: ['living room thermostat']
        },
        willReportState: false,
        attributes: {
          availableThermostatModes: 'off,heat,cool,on',
          thermostatTemperatureUnit: 'F'
        },
        deviceInfo: {
          manufacturer: 'honeywell',
          model: 't-1000',
          hwVersion: '3.2',
          swVersion: '11.4'
        },
        customData: {
          fooValue: 74,
          barValue: true,
          bazValue: 'lambtwirl'
        }
      }]
    }
  };
});

// ...

exports.smarthome = functions.https.onRequest(app);
JSONレスポンス
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "123",
        "type": "action.devices.types.THERMOSTAT",
        "traits": [
          "action.devices.traits.TemperatureSetting"
        ],
        "name": {
          "defaultNames": [
            "Honeywell Thermostat T-1000"
          ],
          "name": "Homer Simpson Thermostat",
          "nicknames": [
            "living room thermostat"
          ]
        },
        "willReportState": false,
        "attributes": {
          "availableThermostatModes": "off,heat,cool,on",
          "thermostatTemperatureUnit": "F"
        },
        "deviceInfo": {
          "manufacturer": "honeywell",
          "model": "t-1000",
          "hwVersion": "3.2",
          "swVersion": "11.4"
        },
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "lambtwirl"
        }
      }
    ]
  }
}
検証ツール

デバイスのステータス

ステータス 定義
thermostatMode デバイスの現在のモード、属性と同じ値
thermostatTemperatureSetpoint 現在の設定温度(単一目標)、単位は摂氏
thermostatTemperatureAmbient 現在の気温(摂氏)
thermostatTemperatureSetpointHigh 冷暖房モードの場合、温度範囲の現在の最高温度
thermostatTemperatureSetpointLow 冷暖房モードの場合、温度範囲の現在の最低温度
thermostatHumidityAmbient 浮動小数点。0~100。デバイスから取得可能な場合に使用

QUERY リクエストとレスポンスの例

リクエスト
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [{
    "intent": 'action.devices.QUERY',
    "payload": {
      "devices": [{
        "id": "123",
        "customData": {
          "fooValue": 74,
          "barValue": true,
          "bazValue": "foo"
        }
      }]
    }
  }]
}
Node.jsレスポンス
'use strict';

const {smarthome} = require('actions-on-google');
const functions = require('firebase-functions');

const app = smarthome();

app.onQuery((body, headers) => {
  return {
    requestId: body.requestId,
    payload: {
      devices: {
        123: {
          online: true,
          thermostatMode: 'cool',
          thermostatTemperatureSetpoint: 23.0,
          thermostatTemperatureAmbient: 25.1,
          thermostatHumidityAmbient: 45.3
        }
      }
    }
  };
});

// ...

exports.smarthome = functions.https.onRequest(app);
JSONレスポンス
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "devices": {
      "123": {
        "online": true,
        "thermostatMode": "cool",
        "thermostatTemperatureSetpoint": 23,
        "thermostatTemperatureAmbient": 25.1,
        "thermostatHumidityAmbient": 45.3
      }
    }
  }
}

デバイスのコマンド

コマンド パラメータ / 定義
action.devices.commands.ThermostatTemperatureSetpoint thermostatTemperatureSetpoint 浮動小数点(音声では、摂氏ユーザーの場合、通常は小数点以下 1 桁です)
action.devices.commands.ThermostatTemperatureSetRange thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
浮動小数点(複数)。設定温度範囲の最高値と最低値。デバイスが冷暖房モードをサポートしている場合に限り有効で、範囲が要求されている場合、Google がこのモードを設定します。
action.devices.commands.ThermostatSetMode thermostatMode デバイスでサポートされているモードの 1 つ。
action.devices.commands.TemperatureRelative

このコマンドは、デバイスの commandOnlyTemperatureSetting 属性が true に設定されている場合にのみ使用可能です。次のパラメータのうち 1 つのみが設定されます。

  • thermostatTemperatureRelativeDegree 浮動小数点。変更する温度の正確な度数(たとえば、「5 度下げて」)。

  • thermostatTemperatureRelativeWeight -5 以上、5 以下の整数。小さな変化(「少し下げて」)から大きな変化(「もっと暖かく」)までのあいまいな温度変化の量を示します。

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.ThermostatTemperatureSetpoint",
          "params": {
            "thermostatTemperatureSetpoint": 22.0
          }
        }]
      }]
    }
  }]
}
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: {
          thermostatMode: 'cool',
          thermostatTemperatureSetpoint: 22.0,
          thermostatTemperatureAmbient: 25.1,
          thermostatHumidityAmbient: 43.2
        }
      }]
    }
  };
});

// ...

exports.smarthome = functions.https.onRequest(app);
JSONレスポンス
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "commands": [
      {
        "ids": [
          "123"
        ],
        "status": "SUCCESS",
        "states": {
          "thermostatMode": "cool",
          "thermostatTemperatureSetpoint": 22,
          "thermostatTemperatureAmbient": 25.1,
          "thermostatHumidityAmbient": 43.2
        }
      }
    ]
  }
}