SDM API là một API REST cung cấp nhiều phương thức để xem các đặc điểm và thực thi các lệnh trait để quản lý các thiết bị Google Nest. Sử dụng mã truy cập được cấp trong quá trình uỷ quyền với mỗi lệnh gọi API.
Đặc điểm
API SDM sử dụng mô hình dựa trên đặc điểm đối với thông tin và chức năng của thiết bị. Hãy xem từng hướng dẫn về thiết bị để biết thiết bị có những đặc điểm nào:
- Máy ảnh
- Máy ảnh (pin)
- Máy ảnh có Floodlight
- Máy ảnh (có dây)
- Màn hình
- 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 API để biết toàn bộ thông tin chi tiết về tất cả phương thức có sẵn dành cho API SDM.
executeCommand
Thực thi một lệnh trên một thiết bị được cấp phép.
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:
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 khảo về trait riêng lẻ. Xem danh sách đặc điểm đầy đủ để biết thêm thông tin.
get
Nhận thông tin về một cấu trúc hoặc thiết bị được cấp phép.
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 diện cho tài nguyên mẹ của tài nguyên hiện tại, như một cấu trúc hoặc phòng.
Ví dụ: máy Nest Thermostat có thể trả về như 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 nhà, phòng hoặc thiết bị được cho phép.
Để liệt kê tất cả cấu trúc, phòng hoặc thiết bị được uỷ quyền trong một mã truy cập duy nhất, hãy thực hiện lệnh gọi GET
đến đ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
Các công cụ tích hợp của Trợ lý Google
Sau khi một thiết bị được cho phép sử dụng SDM, Google sẽ nhận biết được 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 tích hợp Trợ lý Google trong Sản phẩm thương mại:
- Không gửi yêu cầu Yêu cầu đồng bộ hoá cho các thiết bị SDM
- Bỏ qua các thiết bị SDM khỏi mọi phản hồi cho một ý định SYNC
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.