SDM API, Google Nest cihazlarının yönetimi için özellikleri görüntüleme ve özellik komutları yürütmeyle ilgili çeşitli yöntemler sunan bir REST API'dir. Yetkilendirme işlemi sırasında verilen erişim jetonunu her API çağrısında kullanın.
Özellikler
SDM API, cihaz bilgileri ve işlevleri için özellik tabanlı bir model kullanır. Bir cihazda hangi özelliklerin kullanılabildiğini görmek için cihaz kılavuzlarına göz atın:
- Kamera
- Kamera (pil)
- Floodlight'lı kamera
- Kamera (kablolu)
- Görüntülü reklam ağı
- Kapı zili
- Kapı zili (pil)
- Kapı zili (kablolu)
- Termostat
Yöntemler
SDM API'de kullanılabilen tüm yöntemler hakkında ayrıntılı bilgi için API Referansı'na bakın.
executeCommand
Yetkili bir cihaza komut verir.
Komut yürütmek için POST
çağrısı kullanın. Örneğin, termostat modunu değiştirmek için:
POST /enterprises/project-id/devices/device-id:executeCommand { "command" : "sdm.devices.commands.ThermostatMode.SetMode", "params" : { "mode" : "HEAT" } }
Komutlarla ilgili daha fazla örneği her bir özellik referans sayfasında bulabilirsiniz. Daha fazla bilgi için özellik listesinin tamamını inceleyin.
get
Yetkili bir yapı veya cihaz hakkında bilgi alır.
GET
çağrısı, yetkili olduğu bir yapı veya cihaz için mevcut tüm özelliklerin mevcut alanlarını ve değerlerini içeren tek bir yanıt döndürür. Ayrıca, mevcut kaynağın üst kaynağını (yapı veya oda) temsil eden bir "parentRelations" nesnesi döndürür. user
Örneğin, Nest Thermostat aşağıdakileri döndürebilir:
GET /enterprises/project-id/devices/device-id { "name" : "enterprises/project-id/devices/device-id", "type" : "sdm.devices.types.THERMOSTAT", "assignee" : "enterprises/project-id/structures/structure-id/rooms/room-id", "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 } }, "parentRelations" : [ { "parent" : "enterprises/project-id/structures/structure-id/rooms/room-id", "displayName" : "Lobby" } ] }
list
Yetkili yapıları, odaları veya cihazları listeler.
Tek bir erişim jetonu altında yetkilendirilmiş tüm yapıları, odaları veya cihazları listelemek için uygun kaynak uç noktasına GET
çağrısı gönderin:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
Google Asistan entegrasyonları
Bir cihaz SDM için yetkilendirildikten sonra Google, Home Graph'te cihazı algılar ve durumunu doğrudan yönetir. Ticari teklifinizin bir parçası olarak Google Asistan entegrasyonunuz varsa:
- SDM cihazları için Senkronizasyon isteğinde bulun isteği göndermeyin
- SYNC intent'ine verilen yanıtlardan SDM cihazlarını çıkarma
Hatalar
API hata kodlarının tam listesi için API Hata Kodu Referansı'na bakın.