
Все модели термостатов Google Nest поддерживаются в API управления интеллектуальными устройствами (SDM). Для следующих устройств возвращается тип устройства THERMOSTAT:
sdm.devices.types.THERMOSTAT
Черты
Ссылка
К этой группе относятся следующие черты, команды или события:
| Черта | Описание | Команды |
|---|---|---|
| Подключение | Эта характеристика присуща любому устройству, обладающему информацией о подключении. | |
| Вентилятор | Эта особенность присуща любому устройству, обладающему возможностью управления вентилятором. | SetTimer |
| Влажность | Эта особенность присуща любому устройству, оснащенному датчиком для измерения влажности. | |
| Информация | Эта характеристика присуща любому устройству, предоставляющему информацию, связанную с устройством. | |
| Настройки | Эта функция доступна для любого устройства и содержит информацию о настройках, связанных с устройством. | |
| Температура | Эта особенность присуща любому устройству, оснащенному датчиком для измерения температуры. | |
| ТермостатЭко | Эта особенность характерна для термостатов, поддерживающих режим ECO. | SetMode |
| Термостат системы отопления, вентиляции и кондиционирования | Эта характеристика присуща термостатам, способным передавать подробные сведения о системе отопления, вентиляции и кондиционирования воздуха (ОВК). | |
| Режим термостата | Эта особенность характерна для типов термостатов, поддерживающих различные режимы работы. | SetMode |
| ТермостатУстановленная температура | Эта функция характерна для термостатов, поддерживающих установку целевой температуры и температурного диапазона. | 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 может отображать температуру как в градусах Цельсия, так и в градусах Фаренгейта, но шкала не может быть установлена с помощью API SDM. Чтобы определить шкалу температуры, установленную в данный момент пользователем, используйте...Настройки черта.
Изменить режим
Режим работы термостата регулируется двумя различными параметрами:Режим термостата иТермостатЭко.
Стандартные режимы
Чтобы изменить режим работы термостата на ОБОГРЕВ, ОХЛАЖДЕНИЕ или ОБОГРЕВ ОХЛАЖДЕНИЕ, используйте команду SetMode в трейте ThermostatMode.
Эта команда также может использоваться для выключения режима работы термостата. Она не может использоваться для включения экономичного режима.Например, чтобы изменить один из стандартных режимов работы термостата:
Запрос
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}
Ответ
{}
Эко-режим
Чтобы включить экономичный режим, используйте MANUAL_ECO в качестве режима с помощью команды SetMode в трейте ThermostatEco:
Запрос
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Ответ
{}
Эта команда влияет на другие параметры в зависимости от текущего состояния или изменений в экономичном режиме:
- Если режим Eco выключен, термостат по умолчанию будет использовать последний активный стандартный режим (обогрев, охлаждение, обогрев-охлаждение или выключено).
- Если режим Eco установлен на MANUAL_ECO:
- Команды для ТермостатУстановленная температура Признаки отклоняются.
- Указанные значения температуры не возвращаются. ТермостатУстановленная температура черта.
Измените заданные значения температуры.
Изменять заданные значения температуры можно только в режимах ОБОГРЕВ, ОХЛАЖДЕНИЕ или ОБОГРЕВ ОХЛАЖДЕНИЕ, при этом допустимые значения соответствуют текущему режиму работы термостата. Изменять заданные значения температуры нельзя, если режим выключен или если режим Eco установлен в положение MANUAL_ECO.
Перед изменением заданных значений температуры термостат должен находиться в режиме, соответствующем вызываемой команде. Команда и поля для изменения заданных значений различаются в зависимости от режима работы термостата.
Например, для выполнения команды SetHeat термостат должен сначала быть переведен в режим HEAT:
| Режим | Командование | Поле(а) |
|---|---|---|
| НАГРЕВАТЬ | SetHeat | heatCelsius |
| ПРОХЛАДНЫЙ | SetCool | coolCelsius |
| ТЕПЛОХОХЛАД | SetRange | heatCelsius , coolCelsius |
Обратите внимание, что команды установки температуры принимают в качестве параметра только градусы Цельсия, хотя термостат Google Nest может отображать температуру как в градусах Цельсия, так и в градусах Фаренгейта.
Например, чтобы изменить заданную температуру, когда термостат находится в режиме ОБОГРЕВА, используйте команду SetHeat из свойства ThermostatTemperatureSetpoint:
Запрос
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
"params" : {
"heatCelsius" : 22.0
}
}
Ответ
{}
Уставки в экономичном режиме
Параметры heatCelsius и coolCelsius , возвращаемые свойством ThermostatEco, задаются пользователем и не могут быть изменены через API SDM.
Включите или выключите вентилятор
Если термостат поддерживает вентилятор, используйте команду SetTimer в свойстве Fan, чтобы включить или выключить его. При включении вы можете указать желаемое время работы вентилятора в секундах.
Например, чтобы вентилятор работал в течение часа:
Запрос
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "ON",
"duration" : "3600s"
}
}
Ответ
{}
Если поле duration не указано, вентилятор будет работать по умолчанию в течение 15 минут.
Проверьте подключение устройства.
Если устройство не отвечает на команды или не отправляет события, или вы получаете ошибки от API, связанные с устройством, используйте...Подключение Функция проверки подключения устройства к интернету для определения статуса OFFLINE. Проверьте подключение устройства к интернету и убедитесь, что служба Nest запущена.
Если у вас включены события, вы также должны были получить событие, указывающее на то, что устройство отключилось от сети:
Полезная нагрузка
{
"eventId" : "6ac04910-dab8-40c0-8d16-63645e9b801c",
"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 :
Полезная нагрузка
{
"eventId" : "1dc5ae6d-7334-4a71-8bb1-3e50d452a322",
"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"
]
}События срабатывают для всех характеристик, связанных с этим типом устройства. Включите события, если вам необходимо каким-либо образом реагировать на них в рамках интеграции.
Хронология событий
Обратите внимание, что событие, связанное с изменением состояния системы отопления, вентиляции и кондиционирования воздуха, может быть доставлено не одновременно с событиями, связанными с изменением режима работы термостата.
Например, иногда возникает задержка при включении режима обогрева или охлаждения термостата для защиты системы отопления, вентиляции и кондиционирования воздуха (ОВК). В этом случае изменение режима работы термостата может первоначально отправлять события только для Режим термостата и ТермостатУстановленная температура изменения признаков, с Термостат системы отопления, вентиляции и кондиционирования Изменение характеристик будет отправлено позже в виде отдельного события, как только система фактически включится. Если бы не было задержки с включением системы отопления, вентиляции и кондиционирования, все три события были бы отправлены одновременно.
Ошибки
В связи с данным устройством могут быть возвращены следующие коды ошибок:
| Сообщение об ошибке | РПК | Поиск неисправностей |
|---|---|---|
| Холодостойкость должна быть выше теплотворной способности. | INVALID_ARGUMENT | Убедитесь, что значение поля heatCelsius меньше значения поля coolCelsius в вашей команде. |
| В текущем режиме работы термостата выполнение команды запрещено. | FAILED_PRECONDITION | Согласно информации от производителя, некоторые модели термостатов не поддерживают переключение в режим Eco, когда основной режим работы термостата выключен. Режим термостата Особенность. Перед изменением режима Eco необходимо переключить термостат в режим HEAT, COOL или HEATCOOL. |
| Вентилятор термостата недоступен. | FAILED_PRECONDITION | Термостат не имеет функции управления вентилятором. Для данного устройства нельзя использовать функции и команды, связанные с вентилятором. |
| Команда не допускается, если термостат находится в режиме MANUAL_ECO. | FAILED_PRECONDITION | В режиме ручного энергосбережения термостат нельзя установить заданную температуру. |
Полный список кодов ошибок API см. в Справочнике кодов ошибок API.