Termostat

Smart Device Management (SDM) API'de tüm Google Nest Termostat modelleri desteklenir. Bu 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.
FanBu özellik, fanı kontrol etme sistemine sahip tüm cihazlara aittir.SetTimer
NemBu özellik, nemi ölçmek için 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 herhangi bir cihaza aittir.
SıcaklıkBu özellik, sıcaklığı ölçmek için sensörü olan tüm cihazlara aittir.
ThermostatEcoBu özellik, ECO modlarını destekleyen TERMOSTAT cihaz türlerine aittir.SetMode
ThermostatHvacBu özellik, 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ığı ayarlanmasını destekleyen TERMOSTAT cihaz türlerine aittir.SetHeat
SetCool
SetRange

JSON

Bir GET yanıtında özelliğin olmaması, özelliğin veya işlevin cihazda şu anda kullanılamadığını gösterir. Daha fazla bilgi için Cihaz türleri bölümüne bakın.

{
  "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çinTemperature özelliğini kullanın. Ortam sıcaklığı cihazda ölçülür.

Termostatın ortam nemini okumak içinHumidity özelliğini kullanın. Ortam nemi cihazda ölçülür.

Sıcaklık ölçeği

Google Nest Thermostat, sıcaklığı santigrat veya Fahrenheit cinsinden gösterebilir ancak ölçek SDM API'si ile ayarlanamaz. Kullanıcı tarafından şu anda ayarlanan sıcaklık ölçeğini belirlemek içinSettings ö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 etkinleştirmek için ThermostatEco özelliğinin SetMode komutuyla birlikte 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 Eco modunda yapılan değişikliklere bağlı olarak diğer özellikleri etkiler:

  • Eko modu KAPALI ise termostat modu, etkin olan son standart moda (HEAT, COOL, HEATCOOL veya OFF) ayarlanır.
  • Eko modu MANUAL_ECO ise:

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

İstenen sıcaklık ayarları yalnızca termostat ISITMA, SOĞUTMA veya ISITMA-SOĞUTMA modlarındayken değiştirilebilir ve izin verilen istenen sıcaklık ayarları, termostatın mevcut moduna karşılık gelir. Mod KAPALI olduğunda veya Eco modu MANUAL_ECO olarak ayarlandığında sıcaklık ayar noktaları 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. İstenen sıcaklık ayarlarını değiştirmek için kullanılan komut ve alanlar termostat moduna göre değişir.

Örneğin, SetHeat komutunu vermek için termostatın önce HEAT modunda olması gerekir:

Mod Komut Alanlar
HEAT SetHeat heatCelsius
COOL SetCool coolCelsius
HEATCOOL SetRange heatCelsius, coolCelsius

Google Nest Thermostat sıcaklığı santigrat veya fahrenhayt cinsinden gösterebilse de ayarlanan sıcaklık komutlarının yalnızca santigrat derece cinsinden parametre aldığını unutmayın.

Örneğin, termostat HEAT modundayken sıcaklık istenen 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 ayar noktaları

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

Fanları 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 çalışmasını istediğiniz süreyi saniye cinsinden belirtebilirsiniz.

Örneğin, fanı bir saat ç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, etkinlik göndermiyorsa veya API'den cihazla ilgili hatalar alıyorsanız cihazın bağlantısını OFFLINE durumu için kontrol etmek üzereConnectivity özelliğini kullanın. Cihazın internet bağlantısını kontrol edin ve Nest Hizmeti'nin çalıştığından emin olun.

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

Yük

{
  "eventId" : "dc48b3e2-4cf6-48dc-a890-c232ed4883e5",
  "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 ISITMA olarak değiştiyse aşağıdaki resourceUpdate etkinliğini alırsınız:

Yük

{
  "eventId" : "a52245f5-7cf7-43ad-9ee2-37751522a411",
  "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"
  ]
}

Bu cihaz türüyle ilişkili tüm özellikler için etkinlikler tetiklenir. Entegrasyon kapsamında bir şekilde tepki vermeniz gerekiyorsa etkinlikleri etkinleştirin.

Etkinliklerin zamanlaması

HVAC durumundaki bir değişikliğe ilişkin etkinliğin, termostat modu değişikliğine ilişkin etkinliklerle aynı anda teslim edilmeyebileceğini unutmayın.

Örneğin, HVAC sistemini korumak için bazen termostatın ısıtma veya soğutma moduna başlamasında gecikme yaşanır. 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ıktan sonra ayrı bir etkinlik olarak gönderilir. HVAC sistemi açılırken herhangi bir gecikme yaşanmadıysa üç 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 Komutunuzdaki heatCelsius alanının coolCelsius alanından küçük olduğundan emin olun.
Komuta mevcut termostat modunda izin verilmiyor. FAILED_PRECONDITION Bazı termostat modelleri, ThermostatMode özelliğine göre termostat modu KAPALI olduğunda 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 Termostatın fan özelliği yoktur. Fan ile ilgili özellikler ve komutlar bu cihazda kullanılamaz.
Termostat MANUAL_ECO modundayken komuta izin verilmez. FAILED_PRECONDITION Termostat manuel ekonomik moddayken sıcaklık ayar noktası belirlenemez.

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