設備連接到物聯網平臺后,設備數據會保存在物聯網平臺的時序數據庫中。您可以通過物聯網平臺提供的云端API獲取設備數據,也可以通過服務端訂閱或者規則引擎方式,將數據流轉到服務端。
準備工作
調用API開發
下文以調用SetDeviceProperty接口為例。設備異步返回結果,您可以通過數據流轉方式獲取結果。
說明
請將示例代碼中的Your_AccessKey_ID和Your_AccessKey_Secret的參數值替換為您自己的阿里云賬號AccessKey ID和AccessKey Secret。
將光標定位到您的賬號頭像上,選擇AccessKey管理,進入安全信息管理頁,可創建或查看您的AccessKey。
將cn-shanghai替換為您物聯網設備所屬地域ID。地域ID說明請參見地域和可用區。
String accessKey = "Your_AccessKey_ID";
String accessSecret = "Your_AccessKey_Secret";
try {
DefaultProfile.addEndpoint("cn-shanghai", "cn-shanghai", "Iot", "iot.cn-shanghai.aliyuncs.com");
} catch (Exception e) {
System.out.println("DefaultProfile exception");
}
IClientProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKey, accessSecret);
DefaultAcsClient defaultAcsClient = new DefaultAcsClient(profile);
SetDevicePropertyRequest setDevicePropertyRequest = new SetDevicePropertyRequest();
// 若是企業版實例或新版公共實例,下行代碼中傳入真實實例ID,然后刪除注釋符號。
//createProductRequest.setIotInstanceId("iothub-test-xxx");
setDevicePropertyRequest.setProductKey(pk);
setDevicePropertyRequest.setDeviceName(dn);
Map<String, Integer> properties = new HashMap<>();
// key為物模型中屬性標識符"acOutMeterIty",value需要遵循屬性值規范:int類型,取值范圍在0~200之間。
properties.put("acOutMeterIty", 98);
setDevicePropertyRequest.setItems(JSON.toJSONString(properties));
SetDevicePropertyResponse response = null;
try {
response = defaultAcsClient.getAcsResponse(setDevicePropertyRequest);
} catch (Exception e) {
Log.error("執行失敗:e:" + e.getMessage());
}
System.out.println("===============");
System.out.println("setDeviceProperty request : " + JSON.toJSONString(setDevicePropertyRequest));
System.out.println("setDeviceProperty response : " + JSON.toJSONString(response.getData()));
System.out.println("setDeviceProperty requestId : " + response.getRequestId());
System.out.println("===============");
響應消息如下所示。
后續步驟
文檔內容是否對您有幫助?