SDM API, Google Nest cihazlarının yönetimi için özellikleri görüntülemeye ve özellik komutlarını yürütmeye yönelik çeşitli yöntemler sağlayan bir REST API'dir. Her API çağrısında yetkilendirme işlemi sırasında verilen erişim jetonunu kullanın.
Özellikler
SDM API, cihaz bilgileri ve işlevleri için özelliğe dayalı bir model kullanır. Bir cihazda hangi özelliklerin kullanılabildiğini görmek için cihaz kılavuzlarını inceleyin:
- Kamera
- Kamera (pil)
- Floodlight'lı Kamera
- Kamera (kablolu)
- Görüntülü reklam ağı
- Kapı zili
- Doorbell (pil)
- Kapı zili (kablolu)
- Termostat
Yöntemler
SDM API için kullanılabilen tüm yöntemlerle ilgili ayrıntılı bilgi için API Referansı'na bakın.
executeCommand
Yetkili bir cihaza komut yürütür.
Komut yürütmek için POST çağrısını 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ına bakın.
get
Yetkili bir yapı veya cihaz hakkında bilgi edinir.
Bir GET çağrısı, user tarafından yetkilendirilen bir yapı veya cihaz için kullanılabilen tüm özelliklerin mevcut alanlarını ve değerlerini içeren tek bir yanıt ile mevcut kaynağın üst kaynağını (yapı veya oda) temsil eden bir "parentRelations" nesnesi döndürür.
Örneğin, Nest Thermostat aşağıdaki yanıtı 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'teki cihazdan haberdar olur ve durumunu doğrudan yönetir. Ticari teklifiniz kapsamında Google Asistan entegrasyonu varsa:
- SDM cihazları için Senkronizasyon İsteği göndermeyin.
- SDM cihazlarını SYNC intent ile ilgili yanıtlardan çıkarma
Hatalar
API hata kodlarının tam listesi için API Hata Kodu Referansı'na bakın.