SDM API, Google Nest cihazlarının yönetimi için özellikleri görüntülemek ve özellik komutlarını yürütmek amacıyla çeşitli yöntemler sağlayan bir REST API'dir. Yetkilendirme sürecinde verilen erişim jetonunu her API çağrısında kullanın.
Özellikler
SDM API, cihaz bilgileri ve işlevselliği için özelliğe dayalı bir model kullanır. Bir cihazda hangi özelliklerin kullanılabildiğini görmek için bağımsız cihaz kılavuzlarını kontrol edin:
- 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 tüm ayrıntılar için API Referansı'nı inceleyin.
executeCommand
Yetkili bir cihaza komut yürütür.
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" } }
Daha fazla komut örneği, her bir özellik referans sayfasında bulunabilir. Daha fazla bilgi için özellik listesinin tamamına bakın.
get
Yetkili bir yapı veya cihaz hakkında bilgi alır.
Bir GET
çağrısı, user tarafından yetkilendirilen bir yapı veya cihaz için kullanılabilir tüm özellikler için mevcut alanları ve değerleri içeren ve mevcut kaynağın üst kaynağını (yapı veya oda) temsil eden "parentRelations" nesnesi döndürür.
Örneğin, Nest Thermostat şu karakterleri 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 karşı bir GET
çağrısı yapın:
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 cihazdan haberdar olur ve durumunu doğrudan yönetir. Ticari teklifinizin bir parçası olarak Google Asistan entegrasyonunuz varsa:
- SDM cihazları için Senkronizasyon isteklerini gönderme
- SDM cihazlarını SENKRONİZASYON amacına verilen yanıtlardan çıkarın
Hatalar
API hata kodlarının tam listesi için API Hata Kodu Referansı'na bakın.