Termostat

Semua model Termostat Google Nest didukung di Smart Device Management (SDM) API. Perangkat ini menampilkan jenis perangkat THERMOSTAT:

sdm.devices.types.THERMOSTAT

Sifat

Referensi

Ciri, perintah, atau peristiwa berikut terkait dengan grup ini:

SifatDeskripsiPerintah
KonektivitasTrait ini digunakan untuk perangkat apa pun yang memiliki informasi konektivitas.
FanTrait ini digunakan untuk perangkat apa pun yang memiliki kemampuan sistem untuk mengontrol kipas.SetTimer
KelembapanTrait ini digunakan untuk perangkat apa pun yang memiliki sensor untuk mengukur kelembapan.
InfoTrait ini digunakan untuk perangkat apa pun untuk informasi terkait perangkat.
SetelanTrait ini digunakan untuk perangkat apa pun yang memiliki informasi setelan terkait perangkat.
SuhuTrait ini digunakan untuk perangkat apa pun yang memiliki sensor untuk mengukur suhu.
ThermostatEcoTrait ini digunakan untuk jenis perangkat THERMOSTAT yang mendukung mode ECO.SetMode
ThermostatHvacTrait ini termasuk dalam jenis perangkat THERMOSTAT yang dapat melaporkan detail HVAC.
ThermostatModeTrait ini digunakan untuk jenis perangkat THERMOSTAT yang mendukung berbagai mode termostat.SetMode
ThermostatTemperatureSetpointTrait ini digunakan untuk jenis perangkat THERMOSTAT yang mendukung penyetelan suhu target dan rentang suhu.SetHeat
SetCool
SetRange

JSON

Tidak adanya trait dalam respons GET menunjukkan bahwa trait atau fitur saat ini tidak tersedia untuk perangkat. Lihat Jenis perangkat untuk mengetahui informasi selengkapnya.

{
  "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
    }
  }
}

Suhu dan kelembapan

Untuk membaca suhu sekitar termostat, gunakan Temperature trait. Suhu sekitar diukur di perangkat.

Untuk membaca kelembapan sekitar termostat, gunakan trait Humidity . Kelembapan sekitar diukur di perangkat.

Skala suhu

Termostat Google Nest dapat menampilkan suhu dalam derajat Celsius atau Fahrenheit, tetapi skala tidak dapat disetel oleh SDM API. Untuk menentukan skala suhu yang saat ini ditetapkan oleh pengguna, gunakan traitSettings .

Mengubah mode

Mode termostat dikelola oleh dua sifat yang berbeda: ThermostatMode dan ThermostatEco.

Mode standar

Untuk mengubah mode termostat ke HEAT, COOL, atau HEATCOOL, gunakan perintah SetMode dari trait ThermostatMode.

Perintah ini juga dapat digunakan untuk mengubah mode termostat ke NONAKTIF. Perintah ini tidak dapat digunakan untuk mengaktifkan mode Hemat Energi.

Misalnya, untuk mengubah salah satu mode termostat standar:

Permintaan

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

Respons

{}

Mode Hemat Energi

Untuk mengaktifkan mode Hemat Energi, gunakan MANUAL_ECO sebagai mode dengan perintah SetMode dari trait ThermostatEco:

Permintaan

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

Respons

{}

Perintah ini memengaruhi sifat lainnya, berdasarkan status saat ini, atau perubahan pada mode Eco:

  • Jika mode Hemat Energi NONAKTIF, mode termostat akan ditetapkan secara default ke mode standar terakhir (PANAS, SEJUK, PANAS/SEJUK, atau NONAKTIF) yang aktif.
  • Jika mode Hemat energi adalah MANUAL_ECO:

Mengubah titik penyetelan suhu

Titik penyetelan suhu hanya dapat diubah saat termostat dalam mode HEAT, COOL, atau HEATCOOL, dan titik penyetelan yang diizinkan sesuai dengan mode termostat saat ini. Titik setel suhu tidak dapat diubah jika mode adalah OFF atau jika mode Eco disetel ke MANUAL_ECO.

Termostat harus dalam mode yang sesuai dengan perintah yang dipanggil sebelum mengubah titik setel suhu. Perintah dan kolom untuk mengubah titik penyetelan bervariasi menurut mode termostat.

Misalnya, untuk mengeluarkan perintah SetHeat, termostat harus dalam mode HEAT terlebih dahulu:

Mode Perintah Kolom
PANAS SetHeat heatCelsius
COOL SetCool coolCelsius
HEATCOOL SetRange heatCelsius, coolCelsius

Perhatikan bahwa perintah titik penyetelan hanya menggunakan derajat dalam Celsius sebagai parameter, meskipun Termostat Google Nest dapat menampilkan suhu dalam derajat Celsius atau Fahrenheit.

Perintah

Misalnya, untuk mengubah titik penyetelan suhu saat termostat dalam mode HEAT, gunakan perintah SetHeat dari trait ThermostatTemperatureSetpoint:

Permintaan

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

Respons

{}

Titik setel mode hemat energi

Titik setel heatCelsius dan coolCelsius yang ditampilkan oleh trait ThermostatEco ditetapkan oleh pengguna, dan tidak dapat diubah melalui SDM API.

Menyalakan atau mematikan kipas angin

Jika termostat mendukung kipas, gunakan perintah SetTimer dari trait Kipas untuk menyalakan atau mematikannya. Saat menyalakan, Anda dapat menentukan durasi waktu yang Anda inginkan agar kipas beroperasi, dalam detik.

Misalnya, untuk menjalankan kipas selama satu jam:

Permintaan

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

Respons

{}

Jika kolom duration tidak ada, kipas akan berjalan selama waktu default 15 menit.

Periksa konektivitas perangkat

Jika perangkat tidak merespons perintah atau mengirim peristiwa, atau Anda menerima error dari API yang terkait dengan perangkat, gunakan karakteristik Konektivitas untuk memeriksa konektivitas perangkat dengan status OFFLINE. Periksa koneksi perangkat ke internet dan pastikan Layanan Nest aktif.

Jika mengaktifkan peristiwa, Anda juga akan menerima peristiwa resource yang menunjukkan bahwa perangkat telah offline:

Payload

{
  "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"
  ]
}

Merespons peristiwa perangkat

Setiap perubahan pada kolom sifat akan menghasilkan peristiwa. Misalnya, Anda akan menerima peristiwa resourceUpdate berikut jika status HVAC termostat berubah menjadi HEATING:

Payload

{
  "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"
  ]
}

Peristiwa dipicu untuk semua sifat yang terkait dengan jenis perangkat ini. Aktifkan peristiwa jika Anda perlu bereaksi terhadapnya dengan cara tertentu sebagai bagian dari integrasi.

Pengaturan waktu peristiwa

Perhatikan bahwa peristiwa untuk perubahan status HVAC mungkin tidak dikirimkan pada saat yang sama dengan peristiwa untuk perubahan mode termostat.

Misalnya, terkadang ada penundaan dalam memulai mode pemanasan atau pendinginan termostat untuk melindungi sistem HVAC. Dalam skenario ini, mengubah mode termostat hanya akan mengirimkan peristiwa untuk perubahan trait ThermostatMode dan ThermostatTemperatureSetpoint pada awalnya, dengan perubahan trait ThermostatHvac dikirimkan nanti sebagai peristiwa terpisah setelah sistem benar-benar aktif. Jika tidak ada penundaan dalam mengaktifkan sistem HVAC, ketiga peristiwa akan dikirim secara bersamaan.

Error

Kode error berikut dapat ditampilkan terkait dengan perangkat ini:

Pesan Error RPC Pemecahan masalah
Nilai dingin harus lebih besar dari nilai panas. INVALID_ARGUMENT Pastikan kolom heatCelsius kurang dari kolom coolCelsius dalam perintah Anda.
Perintah tidak diizinkan dalam mode termostat saat ini. FAILED_PRECONDITION Beberapa model termostat tidak mendukung perubahan mode Hemat Energi saat mode termostat adalah NONAKTIF, menurut trait ThermostatMode . Mode termostat harus diubah ke mode HANGAT, SEJUK, atau HANGAT-SEJUK sebelum mengubah mode Hemat Energi.
Kipas termostat tidak tersedia. FAILED_PRECONDITION Termostat tidak memiliki kemampuan kipas. Trait dan perintah terkait kipas tidak dapat digunakan untuk perangkat ini.
Perintah tidak diizinkan saat termostat dalam mode MANUAL_ECO. FAILED_PRECONDITION Titik setel suhu tidak dapat disetel saat termostat dalam mode Hemat Energi manual.

Lihat API Error Code Reference untuk mengetahui daftar lengkap kode error API.