天天看點

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

随着上次介紹完裝置的基本操作,相信大家對裝置的這些基礎層面結構操作,都已經了解和掌握。這次我們在嘗試對裝置做一些基本操作之外的接口操作,目前姑且稱之為裝置的擴充操作的。這些接口的操作,對于一個裝置接入到阿裡雲IOT上,并不一定是必需的,但是卻可以使我們可以更加靈活和便捷的對裝置進行多層面的配置和更改。本篇配套的實驗軟體連結如下:

http://xysuger.xunyun17.xyz/v0.0.5.rar

讀者如果感興趣的話,可以自行下載下傳運作驗證;

這次提供的10個擴充的接口操作名稱如下,先睹為快:

BatchQueryDeviceDetail

GetDeviceStatus

BatchGetDeviceState

DisableThing

EnableThing

SaveDeviceProp

QueryDeviceProp

DeleteDeviceProp

QueryDeviceStatistics

BatchUpdateDeviceNickname

從名字就可以猜出個大概的意思,下面我們來逐一介紹它們的作用以及使用方法。

BatchQueryDeviceDetail這個批量查詢裝置資訊的接口和我們上次提到的查詢裝置接口類似,都是查詢裝置資訊的,隻是這個接口前面多了一個批量表示我們一次可以指定多個裝置名稱,然後一次查詢它們的資訊:這個接口有三個參數,産品關鍵字,第一個裝置的名稱以及第二個裝置的名稱;是以這也表示目前暫時支援查詢兩個裝置的詳細資訊,是以首先我們使用上次介紹的指令QueryDevice,來查詢我們産品下的裝置名稱;

XYsayFrO.IoT.Srv.QueryDevice.a141rgUXgFl.

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

這裡看到目前産品下面是有兩個裝置,然後運作批量查詢指令,将這個裝置的名稱分别寫在後面:

具體指令如下:

XYsayFrO.IoT.Srv.BatchQueryDeviceDetail.a141rgUXgFl.lamp3_dev1.lamp3_dev.

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

運作後,如上圖所示,從傳回的結果,可以看到每個裝置很詳細的資訊,例如裝置的狀态,建立時間和密鑰以及産品的關鍵字;這裡我們需要把其中的物聯網辨別符,也就是IotId的值記錄下來,後面的接口操作需要用到;

下一個接口名稱擷取裝置狀态GetDeviceStatus,這個操作相對來說比較簡單,隻是指定裝置的IotId,然後就可以得到指定裝置的狀态。因為上一個批量查詢的接口傳回結果中,已經有這個資訊。是以這個接口應該是為了使用者隻想單純的檢查一下裝置的狀态,而不需要其他很多詳細的資訊,進而提供的。我們先用我們上一個接口得到的IotId,來試着運作一下這個接口,看是否和批量查詢裝置資訊的那個接口,傳回的狀态一緻。運作指令如下:

XYsayFrO.IoT.Srv.GetDeviceStatus.2GhDWaWPUOc5W5Af5xuj000100.

得到結果如下:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

可以看到,兩個接口傳回的狀态都是unactive,是以和我們之前的預測是一緻的。

第三個接口,批量擷取裝置狀态BatchGetDeviceState,這個操作和第一個批量操作類似,不同的是,這裡隻傳回要查詢裝置的狀态資訊,過濾掉其他暫時不需要使用的資訊。這個接口也有三個參數,一個産品關鍵字,和兩個要查詢裝置的名稱。按照我們之前查詢得到的資訊,這個接口的具體操作格式如下:

XYsayFrO.IoT.Srv.BatchGetDeviceState.a141rgUXgFl.lamp3_dev1.lamp3_dev.

得到的結果:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

這裡可以看到我們的産品下的兩個裝置狀态,其中一個處于未激活狀态,而另外一個則處于下線狀态。

第四個接口,裝置禁用DisableThing,筆者的了解,應該是裝置在維護,或出現某些異常和故障時,裝置的擁有者,不希望連到服務端,也不希望和服務端有任何通信,是以在服務端設定為禁用的狀态,這樣服務端看到這個狀态就知道,後續的所有和這個裝置相關的操作,都過濾掉和不作處理。具體格式如下,需要有一個唯一的參數,就是要禁用裝置的IotId。我們用下面的格式先禁用我們産品下的其中一個裝置:

XYsayFrO.IoT.Srv.DisableThing.2GhDWaWPUOc5W5Af5xuj000100.

結果如下,表示禁用成功:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

這時我們再用剛才介紹的查詢指令,确認一下:

得到結果如下,證明确實裝置被禁用了:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

第五個接口是裝置解禁EnableThing,筆者認為稱作裝置使能可能更好些,這個接口和上一個裝置禁用是配合使用的,因為預設裝置是使能的,是以如果使能狀态下再運作這個接口,就沒有太多意義,我們用剛才禁用的裝置作為例子,這裡再把它解禁,然後再用查詢狀态的接口,确認一下最新的狀态,指令如下:

XYsayFrO.IoT.Srv.EnableThing.2GhDWaWPUOc5W5Af5xuj000100.

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

這裡可以看到,最新的狀态已經不是disable,而是恢複到了禁用前的active狀态。表示我們解禁裝置的操作是有效的;

第六個接口是設定裝置标簽,SaveDeviceProp,從英文字面意思上看,應該是配置裝置屬性,不過還是以阿裡雲官宣為主,這裡還是按照裝置标簽來稱呼,在介紹産品的時候,筆者記得我們曾經提到過标簽的概念,這裡的裝置标簽也和産品的标簽類似,隻不過,放在裝置裡做這個接口,就更傾向于裝置層面的一些功能,特性,方法。。。,我們再回過頭來說這個接口的具體參數,一共三個,一個是IotId,一個是标簽類型,一個是标簽值。我們這裡假如要做一個會飛的裝置,是以就給這個裝置做一個func類型的标簽,标簽的值定義為fly.

XYsayFrO.IoT.Srv.SaveDeviceProp.2GhDWaWPUOc5W5Af5xuj000100.func.fly.

運作結果如下,表示我們已經成功完成了這個操作:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

第七個接口是查詢裝置标簽QueryDeviceProp,我們正好可以用這個接口來确認一下,我們的上一個操作是否成功。傳入裝置的IotId後,格式如下

XYsayFrO.IoT.Srv.QueryDeviceProp.2GhDWaWPUOc5W5Af5xuj000100.

運作後,得到如下資訊:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

可以看到,我們已經賦予了這個裝置一個會飛的标簽了;

第八個接口是删除裝置标簽DeleteDeviceProp,如果剛才的裝置有了其他變化,不再使用這個标簽,我們可以使用這個接口來删除它:

XYsayFrO.IoT.Srv.DeleteDeviceProp.2GhDWaWPUOc5W5Af5xuj000100.func.

删除後,我們同樣也可以使用上一個查詢操作,來确認我們删除的是否成功:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

從傳回的結果來看,标簽資訊是空的,表示删除操作時被服務端正确執行了;介紹到這裡,我們可以看到,從第6個接口到第8個接口,分别是裝置标簽的添加,查詢和删除.這也就完成關于裝置标簽的一個閉環操作,從安全和合理角度,這種設計還是比較不錯的;

第九個接口,統計裝置的數量,QueryDeviceStatistics,這個接口主要是查詢指定産品下面的裝置數量狀态,這種數量主要包括三種資訊,分别是裝置的總數,上線的裝置的數量,激活裝置的數量.這裡我們用這個接口查詢一下我們目前産品的裝置數量情況,配置好産品關鍵字資訊的參數後,格式如下:

XYsayFrO.IoT.Srv.QueryDeviceStatistics.a141rgUXgFl.

運作後,得到如下資訊:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

這裡可以看到我們的産品,一共有兩個裝置,沒有裝置上線,有一個裝置激活.這個接口應該對裝置和産品的維護人員,運維人員比較有用.友善定期統計裝置的各種狀态的數量情況,然後再有針對的調整,優化和維護;

最後一個接口,批量更新裝置備注,BatchUpdateDeviceNickname,正如我們人類有外号,綽号什麼的,裝置也不例外,運維人員也可以個人喜好,對裝置的了解和認識,然後來給裝置起一些非官方正規的,诙諧幽默的小名.這裡我們給目前産品下的倆個裝置分别添加一個best1_lamp和best2_lamp的備注:這個接口有四個參數:分别是兩個IotId和兩個要更新的備注名稱,具體格式如下:

XYsayFrO.IoT.Srv.BatchUpdateDeviceNickname.2GhDWaWPUOc5W5Af5xuj000100.best1_lamp.w5vbtLXAqO7sG4y8DXuJ000100.best2_lamp.

我們然後可以用下面查詢裝置詳細資訊的操作,來查詢一下這兩個裝置,确認我們的備注修改成功:

XYsayFrO.IoT.Srv.QueryDeviceDetail.2GhDWaWPUOc5W5Af5xuj000100.

XYsayFrO.IoT.Srv.QueryDeviceDetail.w5vbtLXAqO7sG4y8DXuJ000100.

運作結果如下:

【阿裡雲十年,因為有我而不同】有一種糖叫文法糖【5】IOT三連之裝置之擴充操作

這個可以看到,裝置的備注,已經分别被改為best1_lamp和best2_lamp了;

介紹到這裡,裝置的相關操作差不多介紹完了,因為裝置的api接口一共有40多個,其中有一部分是和具體裝置端關聯配合的,另外一部分是相對邏輯比較複雜,筆者能力有限,也在不斷的學習中..是以裝置操作這塊,就介紹到這裡結束了.回到題目之是以叫IOT三連,是由于當時想法主要介紹産品,标簽和裝置相關的接口資訊.同時也希望讀者在這些介紹的文章中有所收獲.

繼續閱讀