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:
| Sifat | Deskripsi | Perintah |
|---|---|---|
| Konektivitas | Trait ini digunakan untuk perangkat apa pun yang memiliki informasi konektivitas. | |
| Fan | Trait ini digunakan untuk perangkat apa pun yang memiliki kemampuan sistem untuk mengontrol kipas. | SetTimer |
| Kelembapan | Trait ini digunakan untuk perangkat apa pun yang memiliki sensor untuk mengukur kelembapan. | |
| Info | Trait ini digunakan untuk perangkat apa pun untuk informasi terkait perangkat. | |
| Setelan | Trait ini digunakan untuk perangkat apa pun yang memiliki informasi setelan terkait perangkat. | |
| Suhu | Trait ini digunakan untuk perangkat apa pun yang memiliki sensor untuk mengukur suhu. | |
| ThermostatEco | Trait ini digunakan untuk jenis perangkat THERMOSTAT yang mendukung mode ECO. | SetMode |
| ThermostatHvac | Trait ini termasuk dalam jenis perangkat THERMOSTAT yang dapat melaporkan detail HVAC. | |
| ThermostatMode | Trait ini digunakan untuk jenis perangkat THERMOSTAT yang mendukung berbagai mode termostat. | SetMode |
| ThermostatTemperatureSetpoint | Trait 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:
- Perintah untuk trait ThermostatTemperatureSetpoint ditolak.
- Titik setel suhu tidak ditampilkan oleh trait ThermostatTemperatureSetpoint .
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.
PerintahMisalnya, 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.