Tüm Google Nest Thermostat modellerin desteklendiği Smart Device Management (SDM) API. Bu cihazlar TERgiriş işlevini döndürür. cihaz tü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ı bilgilerine sahip tüm cihazlara aittir. | |
Takipçi | Bu özellik, fanı kontrol edebilen sisteme sahip tüm cihazlara aittir. | SetTimer |
Nem | Bu özellik, nemi ölçen sensöre sahip 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çen sensöre sahip tüm cihazlara aittir. | |
ThermostatEco | Bu özellik, ECO modlarını destekleyen TERÖZET cihaz türlerine aittir. | SetMode |
ThermostatHvac | Bu özellik, ısıtma, havalandırma ve soğutma ayrıntılarını raporlayabilen TERgiriş sistemlerine aittir. | |
ThermostatMode | Bu özellik, farklı termostat modlarını destekleyen TERÖZET cihaz türlerine aittir. | SetMode |
ThermostatTemperatureSetpoint | Bu özellik, hedef sıcaklık ve sıcaklık aralığının ayarlanmasını destekleyen TERARAlet cihaz türlerine aittir. | SetHeat SetCool SetRange |
JSON
GET yanıtında bir özelliğin olmaması, o özelliğin veya özelliği şu anda bu cihazda kullanılamıyor. Görüntüleyin Daha fazla bilgi için cihaz türleri ekleyebilirsiniz.
{ "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çin şunu kullanın: Sıcaklık özelliği. Ambiyans sıcaklık, cihazda ölçülür.
Termostatın ortam nemini okumak için şurayı kullanın: Nem özelliği. Ambiyans nem oranı cihazda ölçülür.
Sıcaklık ölçeği
Google Nest Thermostat, sıcaklığı Celsius derece veya Fahrenhayt, ancak ölçek SDM API tarafından ayarlanamaz. Belirleyebilmek için kullanıcının ayarlamış olduğu sıcaklık ölçeğini Ayarlar özelliği.
Modu değiştirme
Termostatın modu iki farklı özellikle yönetilir: ThermostatMode and 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 konumuna getirin. Projektörünüzle eko modunda.Ö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 mod olarak MANUAL_ECO'yu ThermostatEco özelliğinin SetMode komutu:
İstek
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatEco.SetMode
",
"params" : {
"mode" : "MANUAL_ECO"
}
}
Yanıt
{}
Bu komut, Eko modunun mevcut durumuna veya değişmesine bağlı olarak diğer özellikleri etkiler:
- Eko modu KAPALI ise termostat modu varsayılan olarak etkin olan son standart moda (ISIT, COOL, HEATCOOL veya KAPALI) ayarlanır.
- Eko modu MANUAL_ECO ise:
- ThermostatTemperatureSetpoint özelliği için komutlar reddedildi.
- İstenen sıcaklık ayarları 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 açıkken değiştirilebilir HEAT, COOL veya HEATCOOL modları ve izin verilen ayar noktaları, termostatın mevcut moduna karşılık gelir. Sıcaklık mod KAPALI olduğunda veya Eko modu MANUAL_ECO olarak ayarlandı.
Termostat, değiştirilmeden önce çağrılan komuta karşılık gelen modda olmalıdır istenen sıcaklık ayarlarını yapacaksınız. Ayar noktalarını değiştirmek için gereken komut ve alanlar termostata göre değişir yatırım yapmanız önemlidir.
Örneğin, SetHeat komutuyla birlikte termostatın öncelikle ısıtma modunda olması gerekir:
Mod | Komut | Alanlar |
---|---|---|
ISITMA | SetHeat | heatCelsius |
SÜPER | SetCool | coolCelsius |
ISITMA Soğutma | SetRange | heatCelsius , coolCelsius |
Ayar noktası komutlarının parametre olarak yalnızca Santigrat cinsinden derece aldığını unutmayın. Ancak Google Nest Thermostat, sıcaklığı Santigrat veya Fahrenhayt olarak gösterebilir.
Örneğin, termostat açıkken istenen sıcaklık ayarını değiştirmek için ISITMA modunda, ThermostatTemperatureSetpoint özelliğinin SetHeat komutu:
İ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
heatCelsius
coolCelsius
ThermostatEco özelliği kullanıcı tarafından ayarlanır ve
SDM API üzerinden değiştirilemez.
Fanı aç veya kapat
Termostat bir fanı destekliyorsa Fan özelliğinin SetTimer komutunu kullanarak bu özelliği açıp kapatabilirsiniz. Açarken, fanın çalışmasını istediğiniz süreyi saniye.
Ö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 süre olan 15 saniye boyunca çalışır.
dakika.
Cihaz bağlantısını kontrol edin
Cihaz komutlara yanıt vermiyorsa veya etkinlik göndermiyorsa ya da cihaz hatasını almak için Bağlantı özelliğini ÇEVRİMDIŞI durumu için cihazınızın bağlantısına bakın. Cihazın: bağlantınızı kontrol edin ve Nest Hizmet güncel.
Etkinlikler etkinleştirilmişse bir kaynak etkinliği de almış olmanız gerekir gösteren bir değer görüyorsanız:
Yük
{
"eventId" : "0425a61d-a026-4608-8d8d-d76351d444a4",
"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 ver
Özellik alanında yapılan herhangi bir değişiklik etkinlik oluşturur.
Örneğin,
termostatın ısıtma, havalandırma ve soğutma sistemi ise aşağıdaki resourceUpdate
etkinliği
durum HEATING olarak değiştirildi:
Yük
{
"eventId" : "24b17b95-a286-4471-901f-5bdd4a05be28",
"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şkilendirilmiş tüm özellikler için etkinlikler tetiklenir. Etkinleştir olaylar bir şekilde onlarla paylaşabilirsiniz.
Etkinliklerin zamanlaması
Isıtma, havalandırma ve soğutma durumunda meydana gelen değişikliklerin, etkinliklerle aynı anda yayınlanmayabileceğini unutmayın deneyin.
Örneğin bazen, HVAC'yi korumak için bir termostatın ısıtma veya soğutma modunu başlatmada gecikme bahsedeceğim. Bu senaryoda, termostat modunun değiştirilmesi başlangıçta yalnızca ThermostatMode and ThermostatTemperatureSetpoint özellik değiştiğinde, ThermostatHvac özellik değişikliği daha sonra ayrı bir etkinliği olacaktır. HVAC sisteminin açılmasıyla ilgili herhangi bir gecikme olmadıysa aynı anda üç etkinlik 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, Termostat Modu ö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 |
Termostatta fan özelliği yok. Taraftarla ilgili özellikler ve komutlar bu cihazda kullanılamaz. |
Termostat MANUAL_ECO modundayken bu komuta izin verilmez. | FAILED_PRECONDITION |
Termostat manuel Eko modundayken istenen sıcaklık ayarı değiştirilemez. |
Aşağıdakiler için API Hata Kodu Referansı'na bakın: API hata kodlarının tam listesini inceleyin.