Termostat

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

sdm.devices.types.THERMOSTAT

Sifat

Referensi

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

SifatDeskripsiPerintah
KonektivitasCiri ini milik setiap perangkat yang memiliki informasi konektivitas.
PenggemarCiri ini milik perangkat apa pun yang memiliki kemampuan sistem untuk mengontrol kipas.SetTimer
KelembapanCiri ini termasuk dalam perangkat apa pun yang memiliki sensor untuk mengukur kelembapan.
InfoSifat ini milik perangkat apa pun untuk informasi terkait perangkat.
SetelanCiri ini dimiliki setiap perangkat untuk informasi setelan terkait perangkat.
SuhuSifat ini milik setiap perangkat yang memiliki sensor untuk mengukur suhu.
ThermostatEcoFitur ini termasuk dalam jenis perangkat THERMOSTAT yang mendukung mode ECO.SetMode
ThermostatHvacCiri ini termasuk dalam jenis perangkat THERMOSTAT yang dapat melaporkan detail HVAC.
ThermostatModeFitur ini termasuk dalam jenis perangkat THERpalingAT yang mendukung mode termostat yang berbeda.SetMode
ThermostatTemperatureSetpointFitur ini termasuk dalam jenis perangkat THERMOSTAT yang mendukung penyetelan suhu dan rentang suhu target.SetHeat
SetCool
SetRange

JSON

Tidak adanya trait dalam respons GET menunjukkan bahwa karakteristik atau fitur saat ini tidak tersedia untuk perangkat. Lihat Jenis perangkat untuk 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 ruangan termostat, gunakan fitur Suhu . Suhu sekitar diukur di perangkat.

Untuk membaca kelembapan ruangan termostat, gunakan fitur Kelembapan . Kelembapan sekitar diukur di perangkat.

Skala suhu

Google Nest Thermostat dapat menampilkan suhu dalam derajat Celsius atau Fahrenheit, tetapi skalanya tidak dapat disetel oleh SDM API. Untuk menentukan skala suhu yang saat ini disetel oleh pengguna, gunakan fitur Setelan .

Mengubah mode

Mode termostat dikelola dengan dua karakteristik yang berbeda: ThermostatMode dan ThermostatEco.

Mode standar

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

Perintah ini juga dapat digunakan untuk menonaktifkan mode termostat. 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 karakteristik ThermostatEco:

Permintaan

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

Respons

{}

Perintah ini memengaruhi fitur lainnya, berdasarkan status saat ini dari, atau perubahan pada, mode Hemat Energi:

  • Jika mode Hemat Energi NONAKTIF, mode termostat akan ditetapkan secara default 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 jika 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 berada dalam mode yang sesuai dengan perintah yang dipanggil sebelum mengubah titik penyetelan 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
PANAS SetHeat heatCelsius
KEREN SetCool coolCelsius
BERAT SetRange heatCelsius, coolCelsius

Perlu diperhatikan 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 setpoint suhu saat termostat dalam mode HEAT, gunakan perintah SetHeat pada fitur 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 fitur ThermostatEco ditetapkan oleh pengguna, dan tidak dapat diubah melalui SDM API.

Menyalakan atau mematikan kipas angin

Jika termostat mendukung kipas, gunakan perintah SetTimer pada fitur Kipas untuk mengaktifkan atau menonaktifkannya. Saat diaktifkan, Anda dapat menentukan durasi 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 dihilangkan, kipas akan berjalan selama waktu default 15 menit.

Memeriksa konektivitas perangkat

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

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

Payload

{
  "eventId" : "b7705246-9224-46af-b5f2-b2af8437cd0e",
  "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 ciri akan menghasilkan peristiwa. Misalnya, Anda akan menerima peristiwa resourceUpdate berikut jika status HVAC termostat diubah menjadi HEATING:

Payload

{
  "eventId" : "849df9a2-9a28-452e-9b34-5490fc93d88b",
  "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 perubahan mode termostat.

Misalnya, terkadang ada penundaan dalam memulai mode penghangat atau pendingin termostat untuk melindungi sistem HVAC. Dalam skenario ini, mengubah mode termostat awalnya mungkin hanya mengirim peristiwa untuk ThermostatMode dan ThermostatTemperatureSetpoint perubahan karakteristik, dengan ThermostatHvac kemudian, peristiwa terpisah akan dikirim sebagai perubahan terpisah nanti. Jika tidak ada penundaan dalam menyalakan sistem HVAC, ketiga peristiwa tersebut akan dikirim bersamaan.

Error

Kode error berikut mungkin ditampilkan terkait dengan perangkat ini:

Pesan Error RPC Pemecahan masalah
Nilai pendingin harus lebih besar dari nilai kalor. INVALID_ARGUMENT Pastikan kolom heatCelsius lebih kecil 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 HEAT, COOL, atau HEATCOOL sebelum mengubah mode Hemat Energi.
Kipas termostat tidak tersedia. FAILED_PRECONDITION Termostat tidak memiliki kemampuan kipas. Sifat 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.

Baca Referensi Kode Error API untuk mengetahui daftar lengkap kode error API.