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:
Özellik | Açıklama | Komutlar |
---|---|---|
Bağlantı | Bu özellik, bağlantı bilgileri olan tüm cihazlara aittir. | |
Takipçi | Bu özellik, fanı kontrol etme sistemi olan tüm cihazlara aittir. | SetTimer |
Nem | Bu özellik, nemi ölçen bir sensörü olan tüm cihazlara aittir. | |
Bilgi | Bu özellik, cihazla ilgili bilgiler için herhangi bir cihaza aittir. | |
Ayarlar | Bu özellik, cihazla ilgili ayar bilgileri için tüm cihazlara aittir. | |
Sıcaklık | Bu özellik, sıcaklığı ölçen sensöre sahip tüm cihazlara aittir. | |
ThermostatEco | Bu özellik, ECO modlarını destekleyen TERMOSTAT cihaz türlerine aittir. | SetMode |
ThermostatHvac | Bu özellik, Isıtma, Havalandırma ve Soğutma (HVAC) ayrıntılarını bildirebilen TERMOSTAT cihaz türlerine aittir. | |
ThermostatMode | Bu özellik, farklı termostat modlarını destekleyen TERMOSTAT cihaz türlerine aittir. | SetMode |
ThermostatTemperatureSetpoint | Bu ö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:
- ThermostatTemperatureSetpoint özelliğine yönelik komutlar reddedilir.
- Sıcaklık ayarları, ThermostatTemperatureSetpoint özelliği tarafından döndürülmez.
İ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.