SDM API là một REST API cung cấp nhiều phương thức để xem các đặc điểm và thực thi các lệnh đặc điểm để quản lý các thiết bị Google Nest. Sử dụng mã truy cập được cấp trong quy trình uỷ quyền với mỗi lệnh gọi API.
Đặc điểm
SDM API sử dụng một mô hình dựa trên đặc điểm cho thông tin và chức năng của thiết bị. Hãy xem hướng dẫn cho từng thiết bị để biết những đặc điểm có sẵn cho một thiết bị:
- Camera
- Camera (pin)
- Camera có đèn pha
- Camera (có dây)
- Hiển thị
- Chuông cửa
- Chuông cửa (pin)
- Chuông cửa (có dây)
- Máy điều nhiệt
Phương thức
Hãy xem Tài liệu tham khảo về API để biết thông tin chi tiết về tất cả các phương thức có sẵn cho SDM API.
executeCommand
Thực thi một lệnh đối với thiết bị được uỷ quyền.
Sử dụng lệnh gọi POST
để thực thi một lệnh. Ví dụ: để thay đổi chế độ của máy điều nhiệt, hãy làm như sau:
POST /enterprises/project-id/devices/device-id:executeCommand { "command" : "sdm.devices.commands.ThermostatMode.SetMode", "params" : { "mode" : "HEAT" } }
Bạn có thể xem thêm ví dụ về các lệnh trong từng trang tham chiếu đặc điểm riêng lẻ. Hãy xem danh sách đầy đủ về đặc điểm để biết thêm thông tin.
get
Lấy thông tin về một cấu trúc hoặc thiết bị được uỷ quyền.
Lệnh gọi GET
trả về một phản hồi duy nhất với các trường và giá trị hiện tại cho tất cả các đặc điểm có sẵn cho một cấu trúc hoặc thiết bị mà user đã uỷ quyền và một đối tượng "parentRelations", đối tượng này đại diện cho tài nguyên mẹ của tài nguyên hiện tại, có thể là một cấu trúc hoặc phòng.
Ví dụ: Nest Thermostat có thể trả về những thông tin sau:
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" } ] }
danh sách
Liệt kê các cấu trúc, phòng hoặc thiết bị được uỷ quyền.
Để liệt kê tất cả cấu trúc, phòng hoặc thiết bị được uỷ quyền theo một mã truy cập duy nhất, hãy thực hiện lệnh gọi GET
đối với điểm cuối tài nguyên thích hợp:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
Chức năng tích hợp với Trợ lý Google
Sau khi một thiết bị được uỷ quyền cho SDM, Google sẽ biết về thiết bị đó trong Home Graph và trực tiếp quản lý trạng thái của thiết bị. Nếu bạn có chế độ tích hợp Trợ lý Google trong sản phẩm thương mại của mình:
- Không gửi yêu cầu Request Sync cho các thiết bị SDM
- Loại bỏ các thiết bị SDM khỏi mọi phản hồi cho SYNC intent
Lỗi
Hãy xem Tài liệu tham khảo về mã lỗi API để biết danh sách đầy đủ các mã lỗi API.