온도 조절기

모든 Google Nest Thermostat 모델은 Smart Device Management (SDM) API에서 지원됩니다. 이러한 기기는 온도 조절기 기기 유형을 반환합니다.

sdm.devices.types.THERMOSTAT

특성

참조

다음 특성, 명령어 또는 이벤트가 이 그룹과 관련이 있습니다.

특성설명명령어
연결이 특성은 연결 정보가 있는 모든 기기에 속합니다.
이 특성은 시스템을 팬을 제어하는 기능이 있는 모든 기기에 속합니다.Set타이머
습도이 특성은 습도를 측정하는 센서가 있는 기기에 속합니다.
정보이 특성은 기기 관련 정보를 얻을 수 있는 기기에 속합니다.
설정이 특성은 기기 관련 설정 정보를 제공하는 모든 기기에 속합니다.
온도이 특성은 온도를 측정하는 센서가 있는 기기에 속합니다.
온도 조절기 환경이 특성은 ECO 모드를 지원하는 온도 조절기의 기기 유형에 속합니다.설정 모드
온도 조절기 온도 설정이 특성은 HVAC 세부정보를 보고할 수 있는 온도 조절기 기기 유형에 속합니다.
온도 조절기 모드이 특성은 다양한 온도 조절기 모드를 지원하는 온도 조절기의 기기 유형에 속합니다.설정 모드
온도 조절기 온도 설정 지점이 특성은 목표 온도와 온도 범위를 설정할 수 있는 온도 조절기 기기 유형에 속합니다.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로 설정할 수 없습니다. 사용자가 현재 설정한 온도 범위를 확인하려면설정 속성을 사용하세요.

모드 변경

온도 조절기 모드는온도 조절기 모드온도 조절기 Eco라는 두 가지 특성으로 관리됩니다.

표준 모드

온도 조절기 모드를 HEAT, COOL 또는 HEATCOOL로 변경하려면 ThermostatMode 특성의 SetMode 명령어를 사용합니다.

이 명령어는 온도 조절기 모드를 끄기로 전환하는 데에도 사용할 수 있습니다. 절전 모드를 켜는 데는 사용할 수 없습니다.

예를 들어 표준 온도 조절기 모드 중 하나를 변경하려면 다음 단계를 따르세요.

요청

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

응답

{}

절전 모드

절전 모드를 사용 설정하려면 ThermostatEco 특성의 SetMode 명령어를 사용하여 모드로 MANUAL_ECO를 사용합니다.

요청

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

응답

{}

이 명령어는 절전 모드의 현재 상태 또는 변경된 변경사항에 따라 다른 특성에 영향을 미칩니다.

  • 절전 모드가 사용 중지된 경우 온도 조절기 모드는 마지막으로 활성화된 표준 모드 (HEAT, COOL, HEATCOOL 또는 OFF)로 설정됩니다.
  • 절전 모드가 MANUAL_ECO인 경우:

온도 설정값 변경

온도 설정값은 온도 조절기가 난방, 냉방 또는 난방 모드일 때만 허용되며 설정 가능 온도는 온도 조절기의 현재 모드에 해당하는 경우에만 변경할 수 있습니다. 온도가 꺼져 있거나 절전 모드가 MANUAL_ECO로 설정된 경우에는 온도 설정값을 변경할 수 없습니다.

온도 조절기가 온도 설정값을 변경하기 전에 호출되는 명령에 해당하는 모드여야 합니다. 설정값을 변경하는 명령어와 필드는 온도 조절기 모드에 따라 다릅니다.

예를 들어 SetHeat 명령어를 실행하려면 먼저 온도 조절기가 HEAT 모드여야 합니다.

모드 명령어 필드
난방 SetHeat heatCelsius
SetCool coolCelsius
난방 SetRange heatCelsius, coolCelsius

Google Nest Thermostat은 온도를 섭씨 또는 화씨로 표시할 수 있지만, 설정 명령어에서는 섭씨 온도만 매개변수로 사용합니다.

온도 조절기가 절전 모드인 경우

예를 들어 온도 조절기가 난방 모드일 때 온도 설정값을 변경하려면 ThermostatTemperatureSetpoint 특성의 SetHeat 명령어를 사용합니다.

요청

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

응답

{}

절전 모드 설정값

ThermostatEco 특성이 반환하는 heatCelsiuscoolCelsius setpoint는 사용자가 설정하며 SDM API를 통해 변경할 수 없습니다.

팬 켜기/끄기

온도 조절기가 팬을 지원하는 경우 팬 특성의 Set타이머 명령어를 사용하여 팬을 켜거나 끕니다. 팬을 가동할 시간을 초 단위로 지정할 수 있습니다.

예를 들어 한 시간 동안 팬을 실행하려면 다음 안내를 따르세요.

요청

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

응답

{}

duration 필드가 생략되면 팬은 기본 시간인 15분 동안 실행됩니다.

기기 연결 확인

기기가 명령어에 응답하지 않거나 이벤트를 전송하는 경우 또는 기기와 관련된 API에서 오류를 수신하는 경우Connectivity 특성을 사용하여 기기의 연결 상태가 오프라인 상태인지 확인합니다. 기기의 인터넷 연결 상태를 확인하고 Nest 서비스가 켜져 있는지 확인하세요.

이벤트를 사용 설정했다면 기기가 오프라인 상태임을 나타내는 리소스 이벤트도 수신했을 것입니다.

페이로드

{
  "eventId" : "dd05ec21-82db-46f0-8878-4fedcf1af200",
  "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"
  ]
}

기기 이벤트에 반응

특성 필드를 변경하면 이벤트가 생성됩니다. 예를 들어 온도 조절기의 HVAC 상태가 HEATING(변경됨)으로 변경된 경우 다음 resourceUpdate 이벤트가 수신됩니다.

페이로드

{
  "eventId" : "d9d86df5-407f-4917-8286-fe07d5c3dd3b",
  "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"
  ]
}

이 기기 유형과 연결된 모든 특성에 대해 이벤트가 트리거됩니다. 통합의 일환으로 어떤 식으로든 반응해야 하는 경우 이벤트를 사용 설정하세요.

이벤트 시간

HVAC 상태 변경 이벤트는 온도 조절기 모드 변경 이벤트와 동시에 전송되지 않을 수 있습니다.

예를 들어 HVAC 시스템을 보호하기 위해 온도 조절기의 난방 또는 냉방 모드 시작이 지연되는 경우가 있습니다. 이 시나리오에서 온도 조절기 모드를 변경하면 처음에 ThermostatModeThermostatTemperatureSetpoint 특성 변경사항이 있는 이벤트가 전송될 수 있습니다. 이때 온도 조절기가 한 번 실행된 시스템 분리는{/19 as}{/19/}{/19로 설정되어 있습니다. HVAC 시스템을 켜는 데 지연이 없다면 세 개의 이벤트가 모두 동시에 전송됩니다.

오류

이 기기와 관련하여 다음 오류 코드가 반환될 수 있습니다.

오류 메시지 RPC 문제 해결
냉방 값이 난방 값보다 커야 합니다. INVALID_ARGUMENT heatCelsius 필드가 명령어의 coolCelsius 필드보다 작아야 합니다.
현재 온도 조절기 모드에서는 허용되지 않는 명령어입니다. FAILED_PRECONDITION 온도 조절기 모드 의 특성에 따라 일부 온도 조절기 모델은 온도 조절기 모드가 꺼져 있을 때 절전 모드 변경을 지원하지 않습니다. 절전 모드를 변경하기 전에 온도 조절기 모드를 난방, 냉방 또는 난방으로 변경해야 합니다.
온도 조절기를 사용할 수 없습니다. FAILED_PRECONDITION 온도 조절기에 팬 기능이 없습니다. 이 기기에서는 팬 관련 특성과 명령어를 사용할 수 없습니다.
온도 조절기가 MANUAL_ECO 모드일 때는 명령어가 허용되지 않습니다. FAILED_PRECONDITION 온도 조절기가 수동 절전 모드인 경우 온도를 설정할 수 없습니다.

API 오류 코드의 전체 목록은 API 오류 코드 참조를 확인하세요.