Semua model Google Nest Thermostat 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 | Sifat ini dimiliki oleh perangkat apa pun yang memiliki informasi konektivitas. | |
Penggemar | Sifat ini dimiliki oleh perangkat apa pun yang memiliki kemampuan sistem untuk mengontrol kipas. | SetTimer |
Kelembapan | Sifat ini dimiliki oleh perangkat apa pun yang memiliki sensor untuk mengukur kelembapan. | |
Info | Sifat ini dimiliki oleh perangkat apa pun untuk informasi terkait perangkat. | |
Setelan | Sifat ini dimiliki oleh perangkat apa pun untuk informasi setelan terkait perangkat. | |
Suhu | Sifat ini dimiliki oleh perangkat apa pun yang memiliki sensor untuk mengukur suhu. | |
ThermostatEco | Sifat ini termasuk dalam jenis perangkat THERMOSTAT yang mendukung mode ECO. | SetMode |
ThermostatHvac | Sifat ini termasuk dalam jenis perangkat THERmostAT yang dapat melaporkan detail HVAC. | |
ThermostatMode | Sifat ini termasuk dalam jenis perangkat THERmostAT yang mendukung berbagai mode termostat. | SetMode |
ThermostatTemperatureSetpoint | Sifat ini termasuk dalam jenis perangkat THERMOSTAT yang mendukung setelan suhu target dan rentang suhu. | SetHeat SetCool SetRange |
JSON
Tidak adanya karakteristik dalam respons GET menunjukkan bahwa karakteristik 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 ambien termostat, gunakan propertiTemperature . Suhu sekitar diukur di perangkat.
Untuk membaca kelembapan ruangan termostat, gunakan sifatHumidity . Kelembapan lingkungan diukur di perangkat.
Skala suhu
Termostat Google Nest dapat menampilkan suhu dalam derajat Celsius atau Fahrenheit, tetapi skalanya tidak dapat ditetapkan oleh SDM API. Untuk menentukan skala suhu yang saat ini disetel oleh pengguna, gunakan fitur Setelan .
Mengubah mode
Mode termostat dikelola oleh dua karakteristik yang berbeda: ThermostatMode dan ThermostatEco.
Mode standar
Untuk mengubah mode termostat ke HEAT, COOL, atau HEATCOOL, gunakan perintah SetMode dari atribut 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 atribut ThermostatEco:
Permintaan
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Respons
{}
Perintah ini memengaruhi karakteristik lain, berdasarkan status saat ini, atau perubahan pada mode Hemat Energi:
- Jika mode Hemat Energi NONAKTIF, mode termostat akan ditetapkan secara default ke mode standar terakhir (HANGAT, SEJUK, HANGAT-SEJUK, atau NONAKTIF) yang aktif.
- Jika mode Hemat Energi adalah MANUAL_ECO:
- Perintah untuk atribut ThermostatTemperatureSetpoint ditolak.
- Setpoint suhu tidak ditampilkan oleh atribut 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. Setpoint suhu tidak dapat diubah saat mode NONAKTIF atau saat mode Hemat Energi disetel ke MANUAL_ECO.
Termostat harus dalam mode yang sesuai dengan perintah yang dipanggil sebelum mengubah titik setel suhu. Perintah dan kolom untuk mengubah setpoint bervariasi menurut mode termostat.
Misalnya, untuk mengeluarkan perintah SetHeat, termostat harus berada dalam mode HEAT terlebih dahulu:
Mode | Perintah | Kolom |
---|---|---|
Hangat | SetHeat | heatCelsius |
SEJUK | SetCool | coolCelsius |
HEATCOOL | SetRange | heatCelsius , coolCelsius |
Perhatikan bahwa perintah setpoint hanya menggunakan derajat dalam Celsius sebagai parameter, meskipun Google Nest Thermostat dapat menampilkan suhu dalam derajat Celsius atau Fahrenheit.
Misalnya, untuk mengubah titik setel suhu saat termostat dalam mode PANAS, gunakan perintah SetHeat dari atribut ThermostatTemperatureSetpoint:
Permintaan
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat
",
"params" : {
"heatCelsius" : 22.0
}
}
Respons
{}
Setpoint mode hemat energi
Setpoint heatCelsius
dan coolCelsius
yang ditampilkan oleh
sifat ThermostatEco ditetapkan oleh pengguna, dan
tidak dapat diubah melalui SDM API.
Mengaktifkan atau menonaktifkan kipas angin
Jika termostat mendukung kipas, gunakan perintah SetTimer dari atribut Kipas untuk mengaktifkan atau menonaktifkannya. Saat mengaktifkan, Anda dapat menentukan durasi waktu yang Anda inginkan untuk dijalankan kipas, 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
dihilangkan, kipas akan berjalan selama waktu default 15 menit.
Memeriksa 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 apakah ada status OFFLINE. Periksa koneksi perangkat ke internet dan pastikan Layanan Nest aktif.
Jika peristiwa diaktifkan, Anda juga akan menerima peristiwa resource yang menunjukkan bahwa perangkat telah offline:
Payload
{
"eventId" : "366dcbfb-2b0d-4c8c-9ad9-2ff7434f1dc7",
"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" : "1e9d0340-7543-4a6f-b498-7c12a77f0b27",
"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 karakteristik yang terkait dengan jenis perangkat ini. Aktifkan peristiwa jika Anda perlu bereaksi terhadapnya dengan cara tertentu sebagai bagian dari integrasi.
Waktu peristiwa
Perhatikan bahwa peristiwa untuk perubahan status HVAC mungkin tidak dikirim bersamaan dengan peristiwa untuk perubahan mode termostat.
Misalnya, terkadang ada keterlambatan dalam memulai mode penghangat atau pendingin termostat untuk melindungi sistem HVAC. Dalam skenario ini, perubahan mode termostat pada awalnya hanya dapat mengirim peristiwa untuk ThermostatMode dan ThermostatTemperatureSetpoint berubah, dengan perubahan ThermostatMode dan ThermostatTemperatureSetpoint akan berubah, dengan peristiwa ThermostatHvac{/19 yang dikirim setelahnya sistem akan dikirim secara terpisah} Jika tidak ada penundaan dalam mengaktifkan sistem HVAC, ketiga peristiwa tersebut akan dikirim secara bersamaan.
Error
Kode error berikut dapat ditampilkan sehubungan dengan perangkat ini:
Pesan Error | PPK | 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 NONAKTIF, sesuai dengan karakteristik ThermostatMode . Mode termostat harus diubah ke mode PANAS, SEJUK, atau PANAS-SEJUK sebelum mengubah mode Hemat Energi. |
Kipas termostat tidak tersedia. | FAILED_PRECONDITION |
Termostat tidak memiliki kemampuan kipas. Ciri dan perintah terkait kipas tidak dapat digunakan untuk perangkat ini. |
Perintah tidak diizinkan saat termostat dalam mode MANUAL_ECO. | FAILED_PRECONDITION |
Titik penyetelan suhu tidak dapat disetel saat termostat dalam mode Hemat Energi manual. |
Lihat Referensi Kode Error API untuk mengetahui daftar lengkap kode error API.