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:

CiriDeskripsiPerintah
KonektivitasCiri ini dimiliki oleh perangkat apa pun yang memiliki informasi konektivitas.
FanTrait ini dimiliki oleh perangkat apa pun yang memiliki kemampuan sistem untuk mengontrol kipas.SetTimer
KelembapanCiri ini dimiliki oleh perangkat apa pun yang memiliki sensor untuk mengukur kelembapan.
InfoCiri ini termasuk dalam perangkat apa pun untuk informasi terkait perangkat.
SetelanCiri ini termasuk dalam perangkat apa pun untuk informasi setelan terkait perangkat.
SuhuCiri ini dimiliki oleh perangkat apa pun yang memiliki sensor untuk mengukur suhu.
ThermostatEcoCiri ini termasuk dalam jenis perangkat THERMOSTAT yang mendukung mode ECO.SetMode
ThermostatHvacTrait ini termasuk dalam jenis perangkat THERMOSTAT yang dapat melaporkan detail HVAC.
ThermostatModeCiri ini termasuk dalam jenis perangkat THERMOSTAT yang mendukung berbagai mode termostat.SetMode
ThermostatTemperatureSetpointTrait ini termasuk dalam 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 Humidity trait. 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 karakteristik 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 OFF. 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 hemat energi:

  • Jika mode Hemat Energi dinonaktifkan, mode termostat akan kembali ke mode standar terakhir (HEAT, COOL, HEATCOOL, atau OFF) yang aktif.
  • Jika mode Hemat energi adalah MANUAL_ECO:

Mengubah titik penyetelan suhu

Titik penyetelan suhu hanya dapat diubah saat termostat berada 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 NONAKTIF atau jika mode Hemat Energi disetel ke MANUAL_ECO.

Termostat harus berada 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
KEREN SetCool coolCelsius
HEATCOOL SetRange heatCelsius, coolCelsius

Perhatikan bahwa perintah titik penyetelan hanya menggunakan derajat dalam Celsius sebagai parameter, meskipun Google Nest Thermostat 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 berjalan, 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.

Memeriksa konektivitas perangkat

Jika perangkat tidak merespons perintah atau mengirim peristiwa, atau Anda menerima error dari API terkait 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" : "31a9759c-21a6-47d7-acbc-8e854f1000a7",
  "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 karakteristik akan menghasilkan peristiwa. Misalnya, Anda akan menerima peristiwa resourceUpdate berikut jika status HVAC termostat berubah menjadi HEATING:

Payload

{
  "eventId" : "20388ec2-1a03-4eba-b2fc-aa30616108be",
  "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 trait yang terkait dengan jenis perangkat ini. Aktifkan peristiwa jika Anda perlu bereaksi terhadapnya dengan cara tertentu sebagai bagian dari integrasi.

Waktu acara

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 mengirim peristiwa untuk perubahan trait ThermostatMode dan ThermostatTemperatureSetpoint pada awalnya, dengan perubahan trait ThermostatHvac dikirim nanti sebagai peristiwa terpisah setelah sistem benar-benar menyala. Jika tidak ada penundaan dalam mengaktifkan sistem HVAC, ketiga peristiwa akan dikirim secara bersamaan.

Error

Kode error berikut dapat ditampilkan terkait perangkat ini:

Pesan Error PPK Pemecahan masalah
Nilai dingin harus lebih besar daripada 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 HEAT, COOL, atau HEATCOOL sebelum mengubah mode Hemat Energi.
Kipas termostat tidak tersedia. FAILED_PRECONDITION Termostat tidak memiliki kemampuan kipas. Perintah dan karakteristik 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 Referensi Kode Error API untuk mengetahui daftar lengkap kode error API.