所有文档

          物接入 IoT Hub

          设备管理

          创建设备

          创建设备可以参考代码如下:

          String deviceName = "device_name";    // 设置创建的设备名称
          String schemaId = "schema_id";        // 设置绑定的模型ID
          String description = "description";   // 设置对该设备的描述
          
          CreateDeviceRequest request = new CreateDeviceRequest()
                  .withDeviceName(deviceName)
                  .withSchemaId(schemaId)
                  .withDescription(description);
          
          DeviceAccessDetailResponse response = client.createDevice(request);
          
          String tcpEndpoint = response.getTcpEndpoint(); // tcp endpoint地址
          String sslEndpoint = response.getSslEndpoint(); // ssl endpoint地址
          String username = response.getUsername();       // 账户名,用于接入IoT hub服务
          String key = response.getKey();                 // 密钥,用于接入IoT hub服务

          删除设备

          删除设备可以参考代码如下:

          List<String> devices = Arrays.asList("device_name_1", "device_name_2"); // 设置需要删除的设备列表
          
          DeviceListRequest request = new DeviceListRequest().
                  withDevices(devices);
          
          DeviceListResponse response = client.removeDevices(request);
          
          List<String> deletedDevices = response.getDevices();  // 删除设备列表

          获取设备Profile

          获取设备Profile可以参考代码如下:

          String deviceName = "device_name";    // 设置需要查询的设备名称
          
          DeviceProfileResponse response = client.getDeviceProfile(deviceName);
          
          String name = response.getName();                   // 设备名称
          String description = response.getDescription();     // 设备描述
          String state = response.getState();                 // 设备当前状态
          String schemaId = response.getSchemaId();           // 设备使用的模版ID
          String schemaName = response.getSchemaName();       // 设备使用的模板名称
          Long createTime = response.getCreateTime();         // 设备的创建时间
          Long lastActiveTime = response.getLastActiveTime(); // 设备最后一次上报内容的时间
          Boolean favourite = response.getFavourite();        // 设备的收藏信息
          JsonNode attributes = response.getAttributes();     // 设备在服务端设置的属性
          DeviceAttributes device = response.getDevice();     // 设备在设备端的属性

          获取设备View

          获取设备View可以参考代码如下:

          String deviceName = "device_name";    // 设置需要查询的设备名称
           
          DeviceViewResponse response = client.getDeviceView(deviceName);
           
          String name = response.getName();                               // 设备名称
          String description = response.getDescription();                 // 设备描述
          String state = response.getState();                             // 设备当前状态
          String schemaId = response.getSchemaId();                       // 设备使用的模版ID
          String schemaName = response.getSchemaName();                   // 设备使用的模板名称
          Long createTime = response.getCreateTime();                     // 设备的创建时间
          Long lastActiveTime = response.getLastActiveTime();             // 设备最后一次上报内容的时间
          Boolean favourite = response.getFavourite();                    // 设备的收藏信息
           
          int profileVersion = response.getProfileVersion();              // 设备影子的版本号
          List<DeviceViewAttribute> devices = response.getProperties(); // 设备所使用模板的属性

          获取及查询影子列表

          获取及查询影子列表可以参考代码如下:

              int pageNo = 1;                     // 设置需要获取所有查询结果的第几页
              int pageSize = 10;                  // 设置每页返回的最大个数
              String orderBy = "name";          // 设置排序的索引列,支持name/createTime/lastActiveTime
              String order = "asc";             // 设置按照升序、降序排列结果,支持asc/desc
              String name = "schemaName";           // 设置需要查询的属性名
                                                  // 支持设备名字查询(name)/模型名字查询(schemaName)/服务端属性查询(attributes.***)/设备端属性查询(device.reported.***)
              String value = "my_schema_name";  // 设置需要查询的属性值,对于设备端属性查询,如果相应属性值为字符串类型,需要用""将字符串包裹
              String favourite = "all";         // 设置收藏选择,支持all/true/false
               
              DeviceProfileListResponse response = client.getDeviceProfiles(pageNo, pageSize, orderBy, order, name, value, favourite);
               
              int amount = response.getAmount();                      // 满足查询条件的设备数目
              int pageNo = response.getPageNo();                      // 当前页页码
              int pageSize = response.getPageSize();                  // 返回的每页的最大个数
              List<DeviceProfile> devices = response.getDevices();  // 当前页设备详情列表

          获取设备接入详情

          获取设备接入详情可以参考代码如下:

          String deviceName = "device_name";    // 设置需要查询的设备名称
           
          DeviceAccessDetailResponse response = client.getDeviceAccessDetail(deviceName);
            
          String tcpEndpoint = response.getTcpEndpoint(); // tcp endpoint地址
          String sslEndpoint = response.getSslEndpoint(); // ssl endpoint地址
          String username = response.getUsername();       // 账户名,用于接入IoT hub服务
          String key = response.getKey();                 // 调用此方法密钥默认返回"xxxxxxxxx",请在创建设备时妥善保存

          更新密钥

          更新密钥可以参考代码如下:

              String deviceName = "device_name";    // 设置需要更新的设备名称
               
              DeviceAccessDetailResponse response = client.updateDeviceSecretKey(deviceName);
                
              String tcpEndpoint = response.getTcpEndpoint(); // tcp endpoint地址
              String sslEndpoint = response.getSslEndpoint(); // ssl endpoint地址
              String username = response.getUsername();       // 账户名,用于接入IoT hub服务
              String key = response.getKey();                 // 更新密钥后会导致原有的连接断开,需要用新的密钥连接。

          更新设备属性

          更新设备属性可以参考代码如下:

          String deviceName = "device_name";    // 设置需要更新的设备名称
           
          // 设置需要更新的服务端属性
          ObjectNode attributes = new ObjectMapper().createObjectNode();
          attributes.put("regionTag", "Shanghai");
           
          // 设置需要更新的设备影子属性期望值
          ObjectNode desired = new ObjectMapper().createObjectNode();
          desired.put("light", "red");
           
          // 设置需要更新的设备端属性
          DeviceAttributes device = new DeviceAttributes()
                  .withDesired(desired);
           
          UpdateDeviceProfileRequest request = new UpdateDeviceProfileRequest()
                  .withAttributes(attributes)
                  .withDevice(device);
           
          DeviceProfileResponse response = client.updateDeviceProfile(deviceName, request);

          更新设备View

          更新设备View可以参考代码如下:

          String deviceName = "device_name";    // 设置需要更新的设备名称
           
          // 设置需要更新的设备端属性当前汇报值
          ObjectNode reported = new ObjectMapper().createObjectNode();
          reported.put("light", "red");
           
          // 设置需要更新的设备端属性期望值
          ObjectNode desired = new ObjectMapper().createObjectNode();
          desired.put("light", "red");
           
          UpdateDeviceViewRequest request = new UpdateDeviceViewRequest()
                  .withReported(reported)
                  .withDesired(desired);
           
          DeviceViewResponse response = client.updateDeviceView(deviceName, request);

          更新设备注册表信息

          更新设备注册表信息可以参考代码如下:

          String deviceName = "device_name";    // 设置需要更新的设备名称
           
          String schemaId = "new_schema_id";        // 设置变更的模板ID
          String description = "new_description";   // 设置变更的设备描述
          boolean favourite = true;               // 设置变更的收藏选项
           
          UpdateDeviceRegistryRequest request = new UpdateDeviceRegistryRequest()
                  .withDescription(description)
                  .withSchemaId(schemaId)
                  .withFavourite(favourite);
           
          DeviceProfileResponse response = client.updateDeviceRegistry(deviceName, request);

          重置设备影子

          重置设备影子可以参考代码如下:

          List<String> devices = Arrays.asList("device_name_1", "device_name_2"); // 设置需要重置的设备列表
            
          DeviceListRequest request = new DeviceListRequest().
                  withDevices(devices);
            
          DeviceListResponse response = client.resetDevices(request);
          上一篇
          创建IotDmV3Client
          下一篇
          模板管理