智汀家庭雲-開發指南Golang:裝置模組
1.品牌
品牌指的是智慧裝置的品牌,SA通過外掛的形式對該品牌下的裝置進行發現控制。理論上來說一個品牌對應一個外掛服務。您可以通過專案 根目錄下的品牌檢視SA支援的品牌。關於外掛服務的詳細資訊可以參考plugin
2.裝置的相關操作
在SA中是通過一個個命令對裝置進行操作的,如果您想使用這些命令操作某一品牌的裝置,首先應該安裝該品牌的外掛。在SA中安裝、更新、 移除外掛。請參考pluginSA處理裝置命令的流程:客戶端通過websocket訊息的形式將對應的操作命令傳送給SA,SA通過grpc的方式將訊息轉發給外掛服務,外掛 服務處理後,將處理的結果通過grpc的方式傳送給SA,SA將處理結果以websocket訊息返回給客戶端。
(1)裝置的發現與新增
發現裝置 發現裝置需向SA傳送以下格式的websocket訊息,欄位說明: domain: 外掛名稱;service:裝置命令。
成功後SA會返回以下訊息
manufacturer之後的欄位為裝置屬性,取決於裝置的型別
新增裝置 將發現裝置操作獲取的裝置主要資訊通過新增裝置介面以下列格式傳送到SA。如果新增的裝置為SA,則type為smart_assistant
SA會將該裝置持久化儲存在資料庫中,之後便可通過外掛控制裝置。
(2) 裝置控制與裝置資訊
客戶端同樣是以websocket訊息的形式將命令傳送給SA。因為不同型別的裝置的命令不一定相同,所以這裡只以yeelight燈進行示例展示。更多型別裝置的 訊息格式請閱讀
- 裝置資訊
- 開關
- 設定亮度
- 設定色溫
3.裝置的許可權
SA會從外掛的安裝目錄 “外掛安裝目錄:../../static/plugins” 讀取每一個外掛的config.yaml檔案以獲得該裝置具有的操作功能。具體方法可以檢視 ”獲取裝置的操作功能:device.go“ 檔案中的GetDeviceActions()方法。SA為裝置的每一個功能操作設定了許可權 控制,這意味著您可能只能控制某個裝置的一種或多種功能。關於許可權的詳細資訊,您可以閱讀"使用者模組-許可權”。您可以通過獲取使用者許可權介面 來檢視您擁有的裝置控制權限。