
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:
Özellik | Açıklama | Komutlar |
---|---|---|
Bağlantı | Bu özellik, bağlantı bilgileri olan tüm cihazlara aittir. | |
Fan | Bu özellik, fanı kontrol etme sistemine sahip tüm cihazlara aittir. | SetTimer |
Nem | Bu özellik, nemi ölçmek için 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 herhangi bir cihaza aittir. | |
Sıcaklık | Bu özellik, sıcaklığı ölçmek için sensörü olan tüm cihazlara aittir. | |
ThermostatEco | Bu özellik, ECO modlarını destekleyen TERMOSTAT cihaz türlerine aittir. | SetMode |
ThermostatHvac | Bu özellik, 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ığı 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:
- TermostatTemperatureSetpoint özelliği için komutlar reddediliyor.
- Sıcaklık ayar noktaları, ThermostatTemperatureSetpoint özelliği tarafından döndürülmez.
İ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" : "898d0088-30f9-4907-86c8-8ab41a6bec0e",
"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" : "52e92279-8fc6-4086-b025-1fe25591fb56",
"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.