Termostat

Smart Device Management (SDM) API'de tüm Google Nest Thermostat modelleri desteklenir. Aşağıdaki cihazlar THERMOSTAT cihaz türünü döndürür:

sdm.devices.types.THERMOSTAT

Özellikler

Referans

Aşağıdaki özellikler, komutlar veya etkinlikler bu grupla ilgilidir:

ÖzellikAçıklamaKomutlar
BağlantıBu özellik, bağlantı bilgileri olan tüm cihazlara aittir.
TakipçiBu özellik, fanı kontrol etme sistemi olan tüm cihazlara aittir.SetTimer
NemBu özellik, nemi ölçen bir sensörü olan tüm cihazlara aittir.
BilgiBu özellik, cihazla ilgili bilgiler için herhangi bir cihaza aittir.
AyarlarBu özellik, cihazla ilgili ayar bilgileri için tüm cihazlara aittir.
SıcaklıkBu özellik, sıcaklığı ölçen sensöre sahip tüm cihazlara aittir.
ThermostatEcoBu özellik, ECO modlarını destekleyen TERMOSTAT cihaz türlerine aittir.SetMode
ThermostatHvacBu özellik, Isıtma, Havalandırma ve Soğutma (HVAC) ayrıntılarını bildirebilen TERMOSTAT cihaz türlerine aittir.
ThermostatModeBu özellik, farklı termostat modlarını destekleyen TERMOSTAT cihaz türlerine aittir.SetMode
ThermostatTemperatureSetpointBu özellik, hedef sıcaklık ve sıcaklık aralığı ayarını destekleyen TERMOSTAT cihaz türlerine aittir.SetHeat
SetCool
SetRange

JSON

GET yanıtında bir özelliğin bulunmaması, özelliğin şu anda cihazda kullanılamadığını gösterir. Daha fazla bilgi için Cihaz türleri başlıklı makaleyi inceleyin.

{
  "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
    }
  }
}

Sıcaklık ve nem

Termostatın ortam sıcaklığını okumak içinSıcaklık özelliğini kullanın. Ortam sıcaklığı cihazda ölçülür.

Termostatın ortamdaki nem oranını okumak içinNem özelliğini kullanın. Ortamdaki nem cihazda ölçülür.

Sıcaklık ölçeği

Google Nest Thermostat sıcaklığı santigrat veya Fahrenheit olarak gösterebilir ancak ölçek SDM API tarafından ayarlanamaz. Kullanıcı tarafından ayarlanan sıcaklık ölçeğini belirlemek içinAyarlar özelliğini kullanın.

Modu değiştirme

Termostatın modu iki farklı özellik tarafından yönetilir: ThermostatMode ve ThermostatEco.

Standart modlar

Termostat modunu HEAT, COOL veya HEATCOOL olarak değiştirmek için ThermostatMode özelliğinin SetMode komutunu kullanın.

Bu komut, termostatın modunu KAPALI olarak ayarlamak için de kullanılabilir. Eko modunu açmak için kullanılamaz.

Örneğin, standart termostat modlarından birini değiştirmek için:

İstek

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

Yanıt

{}

Eko modu

Eko modunu açmak için ThermostatEco özelliğinin SetMode komutuyla mod olarak MANUAL_ECO'yu kullanın:

İstek

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

Yanıt

{}

Bu komut, Eco modunun mevcut durumuna veya yapılan değişikliklere bağlı olarak diğer özellikleri etkiler:

  • Eko modu KAPALI ise termostat modu varsayılan olarak etkin olan son standart moda (ISITMA, SOĞUTMA, ISITMA/SOĞUTMA veya KAPALI) ayarlanır.
  • Eko modu MANUAL_ECO ise:

İstenen sıcaklık ayarlarını değiştirme

Sıcaklık ayarları yalnızca termostat ISITMA, SOĞUTMA veya ISITMASOGUTMA modundayken değiştirilebilir ve izin verilen ayarlar termostatın mevcut moduna karşılık gelir. Mod KAPALI olduğunda veya Eco modu MANUAL_ECO olarak ayarlandığında sıcaklık ayarları değiştirilemez.

Sıcaklık ayar noktaları değiştirilmeden önce termostat, çağrılan komuta karşılık gelen modda olmalıdır. Ayar noktalarını değiştirmek için kullanılan komut ve alanlar, termostat moduna göre değişir.

Örneğin, SetHeat komutunu göndermek için termostatın önce ISITMA modunda olması gerekir:

Mod Komut Alanlar
ISITMA SetHeat heatCelsius
SOĞUK SetCool coolCelsius
HEATCOOL SetRange heatCelsius, coolCelsius

Google Nest Thermostat sıcaklığı santigrat veya fahrenhayt cinsinden gösterse de ayar noktası komutlarının parametre olarak yalnızca santigrat dereceyi kabul ettiğini unutmayın.

Örneğin, termostat HEAT modundayken istenen sıcaklık ayarını değiştirmek için ThermostatTemperatureSetpoint özelliğinin SetHeat komutunu kullanın:

İstek

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.ThermostatTemperatureSetpoint.SetHeat",
  "params" : {
    "heatCelsius" : 22.0
  }
}

Yanıt

{}

Eko modu istenen noktalar

ThermostatEco özelliği tarafından döndürülen heatCelsius ve coolCelsius ayar noktaları kullanıcı tarafından belirlenir ve SDM API üzerinden değiştirilemez.

Fanı açma veya kapatma

Termostat fanı destekliyorsa fanı açmak veya kapatmak için Fan özelliğinin SetTimer komutunu kullanın. Açarken fanın saniye cinsinden çalışma süresini belirtebilirsiniz.

Örneğin, fanı bir saat boyunca çalıştırmak için:

İstek

POST /enterprises/project-id/devices/device-id:executeCommand
{
  "command" : "sdm.devices.commands.Fan.SetTimer",
  "params" : {
    "timerMode" : "ON",
    "duration" : "3600s"
  }
}

Yanıt

{}

duration alanı atlanırsa fan varsayılan olarak 15 dakika çalışır.

Cihaz bağlantısını kontrol etme

Cihaz komutlara yanıt vermiyorsa veya etkinlik göndermiyorsa ya da cihazla ilgili API'den hata alıyorsanız cihazın bağlantısının ÇEVRİMDIŞI olup olmadığını kontrol etmek içinBağlantı özelliğini kullanın. Cihazın internet bağlantısını kontrol edin ve Nest Hizmeti'nin açık olduğundan emin olun.

Etkinlikleri etkinleştirdiyseniz cihazın çevrimdışı olduğunu belirten bir kaynak etkinliği de almış olmanız gerekir:

Yük

{
  "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"
  ]
}

Cihaz etkinliklerine tepki verme

Bir özellik alanında yapılan her değişiklik bir etkinlik oluşturur. Örneğin, termostatın HVAC durumu HEATING olarak değişirse şu resourceUpdate etkinliğini alırsınız:

Yük

{
  "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"
  ]
}

Etkinlikler, bu cihaz türüyle ilişkili tüm özellikler için tetiklenir. Bir entegrasyon kapsamında bunlara bir şekilde tepki vermeniz gerekiyorsa etkinlikleri etkinleştirin.

Etkinliklerin zamanlaması

Isıtma, havalandırma ve soğutma durumundaki bir değişiklikle ilgili etkinliğin, termostat modu değişikliğiyle ilgili etkinliklerle aynı anda yayınlanmayabileceğini unutmayın.

Örneğin, bazen HVAC sistemini korumak için termostatın ısıtma veya soğutma modunun başlatılmasında gecikme yaşanabilir. Bu senaryoda, termostat modunun değiştirilmesi başlangıçta yalnızca ThermostatMode ve ThermostatTemperatureSetpoint özellik değişiklikleri için etkinlik gönderebilir. ThermostatHvac özellik değişikliği ise sistem gerçekten açıldığında ayrı bir etkinlik olarak gönderilir. HVAC sisteminin açılmasında gecikme olmazsa üç etkinlik de aynı anda gönderilir.

Hatalar

Bu cihazla ilgili olarak aşağıdaki hata kodları döndürülebilir:

Hata Mesajı TBG Sorun giderme
Soğutma değeri, ısıtma değerinden büyük olmalıdır. INVALID_ARGUMENT heatCelsius alanının, komutunuzdaki coolCelsius alanından küçük olduğundan emin olun.
Mevcut termostat modunda komuta izin verilmiyor. FAILED_PRECONDITION Bazı termostat modelleri, ThermostatMode özelliğine göre termostat modu KAPALI iken Eko modunun değiştirilmesini desteklemez. Eko modu değiştirilmeden önce termostat modu HEAT, COOL veya HEATCOOL olarak değiştirilmelidir.
Termostat fanı kullanılamıyor. FAILED_PRECONDITION Termostatta fan özelliği yok. Fan ile ilgili özellikler ve komutlar bu cihazda kullanılamaz.
Termostat MANUAL_ECO modundayken komuta izin verilmez. FAILED_PRECONDITION Termostat, manuel Eko modundayken istenen sıcaklık ayarı ayarlanamaz.

API hata kodlarının tam listesi için API Hata Kodu Referansı'na bakın.