サーモスタット

すべての Google Nest Thermostat モデルは Smart Device Management(SDM)APIこれらのデバイスは device type:

sdm.devices.types.THERMOSTAT

トレイト

リファレンス

このグループに関連するトレイト、コマンド、イベントは次のとおりです。

トレイト説明コマンド
接続性このトレイトは、接続情報を持つデバイスに使用します。
ファンこのトレイトは、システムがファンを制御する機能を備えているデバイスに使用します。SetTimer
湿度このトレイトは、湿度を測定するセンサーを備えたデバイスに使用します。
情報このトレイトはどのデバイスにも属し、デバイス関連の情報に使用します。
設定このトレイトはどのデバイスにも属し、デバイス関連の設定情報に使用します。
温度このトレイトは、温度を測定するセンサーを備えたデバイスに使用します。
ThermostatEcoこのトレイトは、ECO モードをサポートする THERMOSTAT のデバイスタイプに使用します。SetMode
ThermostatHvacこのトレイトは、暖房換気空調システムの詳細をレポートできる THERMOSTAT のデバイスタイプに属します。
ThermostatModeこのトレイトは、さまざまなサーモスタット モードに対応する THERMOSTAT デバイスタイプに使用します。SetMode
ThermostatTemperatureSetpointこのトレイトは、設定温度と温度範囲の設定をサポートする THERMOSTAT のデバイスタイプに使用します。SetHeat
SetCool
SetRange

JSON

GET レスポンスにトレイトが存在しない場合、そのトレイトまたは この機能は現在デバイスでは利用できません。詳しくは、 デバイスの種類: 詳細 情報です。

{
  "type" : "sdm.devices.types.THERMOSTAT",
  "traits" : {
    "sdm.devices.traits.Connectivity" : {
      "status" : "ONLINE"
    },
    "sdm.devices.traits.Fan" : {
      "timerMode" : "ON",
      "timerTimeout" : "2019-05-10T03:22:54Z"
    },
    "sdm.devices.traits.Humidity" : {
      "ambientHumidityPercent" : 35.0
    },
    "sdm.devices.traits.Info" : {
      "customName" : "My device"
    },
    "sdm.devices.traits.Settings" : {
      "temperatureScale" : "CELSIUS"
    },
    "sdm.devices.traits.Temperature" : {
      "ambientTemperatureCelsius" : 23.0
    },
    "sdm.devices.traits.ThermostatEco" : {
      "availableModes" : ["MANUAL_ECO", "OFF"],
      "mode" : "MANUAL_ECO",
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    },
    "sdm.devices.traits.ThermostatHvac" : {
      "status" : "HEATING"
    },
    "sdm.devices.traits.ThermostatMode" : {
      "availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"],
      "mode" : "COOL"
    },
    "sdm.devices.traits.ThermostatTemperatureSetpoint" : {
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    }
  }
}

温度と湿度

サーモスタットの気温を読み取るには、 温度 特性。アンビエント 温度はデバイスで測定されます。

サーモスタットの周囲の湿度を読み取るには、 湿度 の特性。アンビエント 湿度はデバイスで測定されます。

温度目盛り

Google Nest Thermostat では、温度を摂氏または摂氏で表示できます。 華氏。ただし、SDM API では縮尺を設定できません。確認する ユーザーが現在設定されている温度目盛りを使用する場合は、 設定 トレイト。

モードを変更する

サーモスタットのモードは、次の 2 種類のトレイトで管理されます。 ThermostatMode and ThermostatEco

Standard モード

サーモスタットのモードを HEAT、COOL、または HEATCOOL に変更するには、 ThermostatMode トレイトの SetMode コマンドを使用します。

このコマンドは サーモスタットのモードをオフにします。これを使用して エコモードになります。

たとえば、標準のサーモスタットのモードを変更するには:

リクエスト

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatMode.SetMode",
  "params" : {
    "mode" : "HEAT"
  }
}

レスポンス

{}

エコモード

エコモードをオンにするには、 ThermostatEco トレイトの SetMode コマンドを使用します。

リクエスト

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatEco.SetMode",
  "params" : {
    "mode" : "MANUAL_ECO"
  }
}

レスポンス

{}

このコマンドは、エコモードの現在のステータスまたはエコモードへの変更に基づいて、他のトレイトに影響します。

  • エコモードがオフの場合、サーモスタット モードは前回使用した標準モード(暖房、冷房、暖房、オフ)にデフォルトで設定されます。
  • エコモードが MANUAL_ECO の場合:

温度設定値を変更する

設定温度を変更できるのは、サーモスタットが次の場合のみです。 暖房モード、冷房モード、暖房換気空調モード 許可される設定点が、サーモスタットの現在のモードに対応している。体温 モードが OFF になっているとき、または エコモードが MANUAL_ECO に設定されています。

サーモスタットは、変更する前に呼び出すコマンドに対応するモードになっている必要があります。 温度設定値を調整します。設定値を変更するコマンドとフィールドは、サーモスタットによって異なります モードです。

たとえば、 SetHeat サーモスタットを暖房モードにする必要があります。

モード コマンド フィールド
暖房 SetHeat heatCelsius
寒色 SetCool coolCelsius
HEATCOOL SetRange heatCelsiuscoolCelsius

なお、setpoint コマンドは、パラメータとして°C の度数のみ受け取りますが、 Google Nest Thermostat では、温度を摂氏または華氏で表示できます。

たとえば、サーモスタットが次の状態のときに設定温度を変更する場合です。 暖房モードでは、 ThermostatTemperatureSetpoint トレイトの SetHeat コマンドを使用できます。

リクエスト

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
  "params" : {
    "heatCelsius" : 22.0
  }
}

レスポンス

{}

エコモードの設定値

heatCelsius 設定値と coolCelsius 設定値 ThermostatEco トレイトはユーザーが設定します。 SDM API では変更できません

ファンのオンとオフを切り替える

サーモスタットがファンに対応している場合は、ファン トレイトの SetTimer コマンドを使用して、ファンのオンとオフを切り替えます。 オンにするときは、ファンの運転時間を指定できます。 秒です。

たとえば、ファンを 1 時間運転するには、次のようにします。

リクエスト

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.Fan.SetTimer",
  "params" : {
    "timerMode" : "ON",
    "duration" : "3600s"
  }
}

レスポンス

{}

duration フィールドを省略すると、ファンはデフォルトの 15 時間稼働します できます。

デバイスの接続を確認する

デバイスがコマンドに反応しない、イベントを送信しない場合、または デバイスに関連する API のエラーを確認するには、 接続 トレイトを確認して、 オフライン ステータスに関するデバイスの接続性を評価しています。デバイスの インターネットに接続されて、Google Nest が サービスが稼働しています。

イベントを有効にしている場合は、リソース イベントも受信しているはずです。 は、デバイスがオフラインになったことを示します。

ペイロード

{
  "eventId" : "bb233e2f-7dd2-4111-8576-689548155bff",
  "timestamp" : "2019-01-01T00:00:01Z",
  "resourceUpdate" : {
    "name" : "enterprises/project-id/devices/device-id",
    "traits" : {
      "sdm.devices.traits.Connectivity" : {
        "status" : "OFFLINE"
      }
    }
  },
  "userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
  "resourceGroup" : [
    "enterprises/project-id/devices/device-id"
  ]
}

デバイスのイベントに反応する

トレイト フィールドが変更されると、イベントが生成されます。 たとえば、 サーモスタットの暖房換気空調システムがresourceUpdate ステータスが HEATING に変更:

ペイロード

{
  "eventId" : "b7fe3ec6-1688-4944-800a-9f18ea2e5590",
  "timestamp" : "2019-01-01T00:00:01Z",
  "resourceUpdate" : {
    "name" : "enterprises/project-id/devices/device-id",
    "traits" : {
      "sdm.devices.traits.ThermostatHvac" : {
        "status" : "HEATING"
      }
    }
  },
  "userId": "AVPHwEuBfnPOnTqzVFT4IONX2Qqhu9EJ4ubO-bNnQ-yi",
  "resourceGroup" : [
    "enterprises/project-id/devices/device-id"
  ]
}

このデバイスタイプに関連付けられたすべてのトレイトでイベントがトリガーされます。有効化 対応する必要がある場合 統合の一部としてなんらかの方法で 統合する必要があります

イベントのタイミング

暖房換気空調システムのステータス変更のイベントは、イベントと同時に配信されない場合があります。 サーモスタットのモード変更などです

たとえば 暖房換気空調システムを保護するため、サーモスタットの暖房モードまたは冷房モードの開始を遅らせる。 ありませんこの場合、サーモスタットのモードを変更しても、最初のうちは ThermostatMode and ThermostatTemperatureSetpointThermostatHvac トレイトの変更が別途 イベントを記録します。暖房換気空調システムをオンにするのに遅延がない場合、すべて 3 つのイベントが同時に送信されます

エラー

このデバイスに関連して、以下のエラーコードが返される可能性があります。

エラー メッセージ RPC トラブルシューティング
冷房値は熱値よりも大きくする必要があります。 INVALID_ARGUMENT コマンドの heatCelsius フィールドが coolCelsius フィールドよりも小さいことを確認します。
現在のサーモスタット モードではコマンドを使用できません。 FAILED_PRECONDITION 一部のサーモスタット モデルは、 ThermostatMode トレイトに従って、サーモスタット モードがオフのときにエコモードを変更できません。エコモードを変更する前に、サーモスタット モードを [暖房]、[冷房]、[暖房換気空調] に変更する必要があります。
サーモスタットのファンを利用できません。 FAILED_PRECONDITION サーモスタットにファン機能はありません。ファン関連のトレイトやコマンドはこのデバイスでは使用できません。
サーモスタットが MANUAL_ECO モードのときはコマンドを使用できません。 FAILED_PRECONDITION サーモスタットが手動エコモードの場合は、温度設定値を設定できません。

詳しくは、API エラーコード リファレンスをご覧ください。 API エラーコードの完全なリスト。