SDM API یک REST API است که روشهای مختلفی برای مشاهده ویژگیها و اجرای دستورات ویژگی برای مدیریت دستگاههای Google Nest ارائه میدهد. از توکن دسترسی اعطا شده در طول فرآیند مجوز با هر فراخوانی API استفاده کنید.
صفات
رابط برنامهنویسی کاربردی SDM از یک مدل مبتنی بر ویژگی برای اطلاعات و عملکرد دستگاه استفاده میکند. برای مشاهده ویژگیهای موجود برای هر دستگاه، راهنماهای مربوط به هر دستگاه را بررسی کنید:
- دوربین
- دوربین (باتری)
- دوربین با نورافکن
- دوربین (سیمی)
- نمایش
- زنگ در
- زنگ درب (باتری)
- زنگ درب (سیمی)
- ترموستات
روشها
برای جزئیات کامل در مورد تمام روشهای موجود برای SDM API، به مرجع API مراجعه کنید.
دستور اجرا
دستوری را به یک دستگاه مجاز اجرا میکند.
برای اجرای یک دستور از فراخوانی POST استفاده کنید. برای مثال، برای تغییر حالت ترموستات:
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.ThermostatMode.SetMode",
"params" : {
"mode" : "HEAT"
}
}نمونههای بیشتری از دستورات را میتوانید در صفحه مرجع هر ویژگی به صورت جداگانه پیدا کنید. برای اطلاعات بیشتر به فهرست کامل ویژگیها مراجعه کنید.
دریافت
اطلاعاتی در مورد یک ساختار یا دستگاه مجاز دریافت میکند.
یک فراخوانی GET یک پاسخ واحد با فیلدها و مقادیر فعلی برای تمام ویژگیهای موجود برای یک ساختار یا دستگاه برمیگرداند. user دارای مجوز و یک شیء `parentRelations` است که نشاندهنده منبع والد منبع فعلی، چه یک سازه و چه یک اتاق، است.
برای مثال، یک ترموستات Nest ممکن است موارد زیر را برگرداند:
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"
}
]
}فهرست
فهرست سازهها، اتاقها یا دستگاههای مجاز را ارائه میدهد.
برای فهرست کردن تمام ساختارها، اتاقها یا دستگاههای مجاز تحت یک توکن دسترسی واحد، یک فراخوانی GET در برابر نقطه پایانی منبع مربوطه انجام دهید:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
ادغامهای دستیار گوگل
زمانی که یک دستگاه برای SDM مجاز شد، گوگل در Home Graph از دستگاه مطلع میشود و وضعیت آن را مستقیماً مدیریت میکند. اگر ادغام دستیار گوگل را به عنوان بخشی از پیشنهاد تجاری خود دارید:
- درخواستهای همگامسازی را برای دستگاههای SDM ارسال نکنید
- دستگاههای SDM را از هرگونه پاسخ به یک SYNC intent حذف کنید
خطاها
برای مشاهده لیست کامل کدهای خطای API به مرجع کدهای خطای API مراجعه کنید.