Схема заданного значения температуры термостата

Термостат Nest

sdm.devices.traits.ThermostatTemperatureSetpoint

Эта характеристика относится к типу устройств ТЕРМОСТАТ, которые поддерживают установку целевой температуры и диапазона температур.

Поля

Поле Описание Тип данных
heatCelsius Целевая температура в градусах Цельсия для режимов термостата HEAT и HEATCOOL. 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
HEATCOOL SetRange heatCelsius , coolCelsius

Обратите внимание, что команды задания значений принимают в качестве параметра только градусы Цельсия, хотя термостат Google Nest может отображать температуру как в градусах Цельсия, так и в градусах Фаренгейта.

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 Минимальная целевая температура, которую следует установить, когда термостат находится в режиме HEATCOOL. number
Пример: 20.0
coolCelsius Максимальная целевая температура, которую можно установить, когда термостат находится в режиме HEATCOOL. number
Пример: 22.0

Ошибки

В отношении этого признака могут быть возвращены следующие коды ошибок:

Сообщение об ошибке RPC Поиск неисправностей
Команда не разрешена в текущем режиме термостата. FAILED_PRECONDITION Некоторые модели термостатов не поддерживают изменение режима Eco, когда режим термостата выключен, согласно Режим термостата Перед изменением режима Eco необходимо изменить режим термостата на HEAT, COOL или HEATCOOL.
Значение холода должно быть больше значения тепла. INVALID_ARGUMENT Убедитесь, что поле heatCelsius меньше поля coolCelsius в вашей команде.
Команда не допускается, когда термостат находится в режиме MANUAL_ECO. FAILED_PRECONDITION Заданное значение температуры невозможно задать, если термостат находится в ручном режиме Eco.

Полный список кодов ошибок API см. в Справочнике кодов ошибок API.