Termostat

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

sdm.devices.types.THERMOSTAT

Sifat

Referensi

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

SifatDeskripsiPerintah
KonektivitasSifat ini dimiliki oleh perangkat apa pun yang memiliki informasi konektivitas.
PenggemarSifat ini milik perangkat apa pun yang memiliki kemampuan sistem untuk mengontrol kipas.SetTimer
KelembapanSifat ini milik perangkat apa pun yang memiliki sensor untuk mengukur kelembapan.
InfoSifat ini milik perangkat apa pun untuk informasi terkait perangkat.
SetelanSifat ini milik perangkat apa pun untuk informasi setelan terkait perangkat.
SuhuSifat ini milik perangkat apa pun yang memiliki sensor untuk mengukur suhu.
ThermostatEcoSifat ini termasuk dalam jenis perangkat THERmostAT yang mendukung mode ECO.SetMode
ThermostatHvacSifat ini termasuk dalam jenis perangkat THERmostAT yang dapat melaporkan detail HVAC.
ThermostatModeSifat ini termasuk dalam jenis perangkat THERmostAT yang mendukung berbagai mode termostat.SetMode
ThermostatTemperatureSetpointSifat ini termasuk dalam jenis perangkat THERmostAT yang mendukung setelan suhu dan rentang suhu target.SetHeat
SetCool
SetRange

JSON

Tidak adanya karakteristik dalam respons GET menunjukkan bahwa karakteristik atau saat ini tidak tersedia untuk perangkat. Lihat Jenis perangkat untuk mengetahui info selengkapnya tidak akurat atau tidak sesuai.

{
  "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 Sifatsuhu . Suasana suhu diukur di perangkat.

Untuk membaca kelembapan ruangan termostat, gunakan SifatKelembapan . Suasana kelembapan akan diukur di perangkat.

Skala suhu

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

Ubah mode

Mode termostat dikelola oleh dua karakteristik yang berbeda: ThermostatMode and TermostatEco.

Mode standar

Untuk mengubah mode termostat ke HEAT, COOL, atau HEATCOOL, gunakan perintah SetMode pada karakteristik ThermostatMode.

Perintah ini juga dapat digunakan untuk mematikan mode termostat. Alat itu tidak bisa digunakan untuk mengubah dalam 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 untuk fitur 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, 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 saat termostat berada Mode HEAT, COOL, atau HEATCOOL, dan titik penyetelan yang diizinkan sesuai dengan mode termostat saat ini. Temperatur titik penyetelan tidak dapat diubah saat mode NONAKTIF atau ketika Mode Hemat Energi disetel ke MANUAL_ECO.

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

Misalnya, untuk menerbitkan SetHeat termostat harus berada dalam mode HEAT terlebih dahulu:

Mode Perintah Kolom
Hangat SetHeat heatCelsius
KEREN SetCool coolCelsius
{i>HEATCOOL<i} SetRange heatCelsius, coolCelsius

Perhatikan bahwa perintah {i>setpoint<i} hanya mengambil derajat dalam Celcius sebagai parameter, meskipun Google Nest Thermostat dapat menampilkan suhu dalam derajat Celsius atau Fahrenheit.

Misalnya, untuk mengubah titik penyetelan suhu saat termostat berada mode HEAT, gunakan Perintah SetHeat dari karakteristik 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 disetel oleh pengguna, dan tidak dapat diubah melalui SDM API.

Menyalakan atau mematikan kipas

Jika termostat mendukung kipas, gunakan perintah SetTimer pada karakteristik Kipas untuk mengaktifkan atau menonaktifkannya. Saat menyalakan, Anda dapat menentukan berapa lama Anda ingin kipas berjalan, 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 peristiwa pengiriman, atau Anda menerima error dari API yang terkait dengan perangkat, gunakan Konektivitas untuk memeriksa konektivitas perangkat untuk status OFFLINE. Periksa koneksi ke internet dan pastikan Nest Layanan meningkat.

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

Payload

{
  "eventId" : "0425a61d-a026-4608-8d8d-d76351d444a4",
  "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 HVAC termostat status diubah menjadi HEATING:

Payload

{
  "eventId" : "24b17b95-a286-4471-901f-5bdd4a05be28",
  "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 dikaitkan dengan jenis perangkat ini. Aktifkan peristiwa jika perlu menanggapi kepada mereka 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 a penundaan saat memulai mode penghangat atau pendingin termostat untuk melindungi HVAC sistem file. Dalam skenario ini, mengubah mode termostat mungkin hanya akan mengirim peristiwa untuk ThermostatMode and Perubahan sifat ThermostatTemperatureSetpoint , dengan ThermostatHvac Perubahan sifat yang dikirim nanti sebagai perubahan terpisah setelah sistem benar-benar aktif. Jika tidak ada penundaan saat menyalakan sistem HVAC, tiga peristiwa akan dikirim pada saat yang sama.

Error

Kode error berikut mungkin ditampilkan sehubungan dengan perangkat ini:

Pesan Error PPK Pemecahan masalah
Nilai dingin harus lebih besar dari nilai panas. INVALID_ARGUMENT Pastikan kolom heatCelsius lebih kecil dari kolom coolCelsius di 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 yang terkait dengan 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 daftar lengkap kode error API.