Termostat

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:

SifatDeskripsiPerintah
KonektivitasSifat ini dimiliki oleh perangkat apa pun yang memiliki informasi konektivitas.
PenggemarSifat ini dimiliki oleh perangkat apa pun yang memiliki kemampuan sistem untuk mengontrol kipas.SetTimer
KelembapanSifat ini dimiliki oleh perangkat apa pun yang memiliki sensor untuk mengukur kelembapan.
InfoSifat ini dimiliki oleh perangkat apa pun untuk informasi terkait perangkat.
SetelanSifat ini dimiliki oleh perangkat apa pun untuk informasi setelan terkait perangkat.
SuhuSifat ini dimiliki oleh 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 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:

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.