ThermostatTemperatureSetpoint 結構定義

Nest Thermostat 

sdm.devices.traits.ThermostatTemperatureSetpoint

這個特徵屬於支援設定目標溫度和溫度範圍的溫度控制器裝置類型。

欄位

欄位 說明 資料類型
heatCelsius 溫度控制器的暖氣和暖氣模式的目標溫度 (以攝氏為單位)。 number
示例:20.0
coolCelsius 溫度控制器 COOL 和 HEATCOOL 模式的目標溫度 (攝氏)。 number
示例:22.0

GET 要求和回應範例 - HEAT

要求

GET /enterprises/project-id/devices/device-id

回應

{
  "name" : "enterprises/project-id/devices/device-id",
  "traits" : {
    "sdm.devices.traits.ThermostatTemperatureSetpoint" : {
      "heatCelsius" : 20.0,
    }
  }
}

範例 GET 要求和回應 - COOL

要求

GET /enterprises/project-id/devices/device-id

回應

{
  "name" : "enterprises/project-id/devices/device-id",
  "traits" : {
    "sdm.devices.traits.ThermostatTemperatureSetpoint" : {
      "coolCelsius" : 22.0
    }
  }
}

GET 要求與回應範例 - HEATCOOL

要求

GET /enterprises/project-id/devices/device-id

回應

{
  "name" : "enterprises/project-id/devices/device-id",
  "traits" : {
    "sdm.devices.traits.ThermostatTemperatureSetpoint" : {
      "heatCelsius" : 20.0,
      "coolCelsius" : 22.0
    }
  }
}

指令

溫度控制器必須處於與在變更溫度設定點前呼叫的指令相對應的模式下。變更設定點的指令和欄位會因溫度控制器模式而異。

舉例來說,如要發出 SetHeat 指令,溫度控制器必須先處於 HEAT 模式:

模式 指令 欄位
加熱 SetHeat heatCelsius
冷氣 SetCool coolCelsius
熱源 SetRange heatCelsiuscoolCelsius

請注意,設定點指令只會使用攝氏為參數,但 Google Nest Thermostat 可以顯示攝氏或華氏溫度。

SetHeat

設定溫度控制器處於暖氣模式時的目標溫度。

SetHeat 要求與回應

要求

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

回應

{}

SetHeat 要求欄位

欄位 說明 資料類型
heatCelsius 溫度控制器處於暖氣模式時,要設定的目標溫度。 number
示例:22.0

SetCool

設定溫度控制器處於冷氣模式時的目標溫度。

SetCool 要求和回應

要求

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetCool",
  "params" : {
    "coolCelsius" : 20.0
  }
}

回應

{}

SetCool 要求欄位

欄位 說明 資料類型
coolCelsius 溫度控制器處於冷氣模式時要設定的目標溫度。 number
示例:20.0

SetRange

設定溫度控制器處於 HEATCOOL 模式時的最低和最高溫度。

SetRange 要求和回應

要求

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

回應

{}

SetRange 要求欄位

欄位 說明 資料類型
heatCelsius 溫度控制器處於暖氣模式時要設定的最低目標溫度。 number
示例:20.0
coolCelsius 溫度控制器處於 HEATCOOL 模式時,要設定的最高目標溫度。 number
示例:22.0

錯誤

系統可能會傳回下列與此特徵相關的錯誤代碼:

錯誤訊息 單次點擊收益 疑難排解
在目前的溫度控制器模式下,不允許執行這項指令。 FAILED_PRECONDITION 根據 ThermostatMode 特徵,部分溫度控制器型號在溫度控制器模式為「關閉」時,不支援變更節能模式。必須先將溫度控制器模式變更為 HEAT、COOL 或 HEATCOOL,才能變更節能模式。
冷值必須大於熱值。 INVALID_ARGUMENT 請確認 heatCelsius 欄位小於指令中的 coolCelsius 欄位。
溫度自動調節器處於 MANUAL_ECO 模式時,無法執行這項指令。 FAILED_PRECONDITION 溫度控制器採用手動節能模式時,無法設定溫度設定點。

如需 API 錯誤代碼的完整清單,請參閱 API 錯誤代碼參考資料