将非智能设备通过 EnOS Edge 连接至 EnOS 云端¶
本文帮助你快速入门将子设备与 EnOS Edge 预配至 EnOS 云端,使子设备通过 EnOS Edge 连接并发送数据至 EnOS 云端,并从 EnOS 云端查看设备与 EnOS Edge 的通信信息。
场景描述 ¶
接入场景参考 设备注册方案 当中提到的“场景 2.1”。
任务描述 ¶
本示例以逆变器通过 EnOS Edge 接入 EnOS 云端为例进行说明,EnOS Edge 采集逆变器数据,EnOS Edge 代理逆变器将数据发送至 EnOS 云端。整体接入场景如下图所示:

基于上述接入流程图,本示例主要有以下任务:
创建设备模型
创建产品
注册设备
通过设备端 SDK 模拟 EnOS Edge 代理子设备发送数据
查看设备连接状态
查看设备数据
前提条件 ¶
当前账号需要拥有 开发者 角色,以访问 EnOS 应用门户的开发者控制台。如需获取角色,可联系 OU 管理员。
参考 将智能设备连接至 EnOS 云端 中的步骤 1-3,完成子设备注册。
在本教程中,将只介绍如何创建 EnOS Edge 设备的模型、产品和设备。
步骤 1:创建设备模型 ¶
假设当前 OU 没有可复用的 EnOS Edge 模型,我们创建一个名为 Edge_Model 的 EnOS Edge 设备模型。
在 EnOS 应用门户的开发者控制台中,选择 模型管理 > 模型。
参考 从头新建模型 从头创建一个新模型,并为模型填入以下信息:
分组:自定义(custom)
名称:Edge_Model
业务标识符:Edge_Model_0
模型用途:设备接入
模型描述:Edge Model
备注
必须确保 模型用途 中已勾选 设备接入,否则将无法使用该模型创建产品和注册设备。
在模型详情页面,参见 新建模型要素 新建以下属性:
类型:属性
名称:版本/Version
标识符:version
数据类型:string
最大长度:20
默认值:无
是否必填:是
是否可写:是
点击界面底部的 保存,完成创建属性。

完成后,可使用该模型创建产品、注册设备。
步骤 2:创建产品 ¶
你需要创建一个名为 Edge_Product 的产品。本教程假设该型号的 EnOS Edge 设备通过 EnOS IoT 标准格式上送数据,且数据传输不使用 CA 证书加密。
在 EnOS 应用门户的开发者控制台中选择 设备管理 > 产品管理。
点击 新建产品,在 新建产品 窗口提供以下配置信息:
产品名称:Edge_Product
节点类型:网关
模型:Edge_Model
接入方式:仅支持 EnOS IoT
协议网关:禁用
证书双向认证:禁用
产品描述:Edge Product
点击 确定 完成操作。

有关创建产品的更多信息,参见 创建产品。
步骤 3:创建 Edge 设备 ¶
在该步骤中,你需要创建一个名为 Edge01 的 Edge 设备,该设备属于在上一步骤中创建的 Edge_Product 产品型号。
在 EnOS 应用门户的开发者控制台中选择 设备管理 > 设备资产。
点击 新建设备,在弹窗中配置如下信息:
基本信息:
产品:Edge_Product
设备名称:Edge01
时区:UTC+14:00
属性信息:
版本:1.0.0
点击 确定,完成创建设备。
完成设备创建后,设备将出现在设备列表中。你可以点击 进入设备详情界面,获取设备三元组
ProductKey
,DeviceKey
和 DeviceSecret
,这些信息将在下一步中使用。

有关创建设备的更多信息,参见 创建设备。
步骤 5:通过设备端 SDK 模拟 EnOS Edge 代理子设备发送数据¶
在该步骤中,你需要通过设备端 SDK 模拟发送逆变器有功功率至云端。
获取 设备端SDK。更多信息,参见该 SDK 的 GitHub Readme 文件。
根据 Readme 中的步骤配置 EnOS 云端连接。
将 EnOS Edge 和子设备的三元组(
ProductKey
,DeviceKey
,DeviceSecret
)配置到示例连接程序当中。修改 postSubMeasurepoint 方法,配置发送数据测点名称,本例中为发送逆变器有功功率点,设置点名 INV.GenActivePW,以及对应的点值。
调用如下示例方法:
EnOS Edge上线, 示例代码中
environment_address
为设备连接 EnOS 云端集群地址;productKey
,deviceKey
,deviceSecret
为 EnOS Edge 设备的三元组信息。public static void initWithCallback() { System.out.println("start connect with callback ... "); try { client = new MqttClient(environment_address, productKey, deviceKey, deviceSecret); client.getProfile().setConnectionTimeout(60).setAutoReconnect(false); client.connect(new ConnCallback() { public void connectComplete(boolean reconnect) { System.out.println("connect success"); } public void connectLost(Throwable cause) { System.out.println("onConnectLost"); } public void connectFailed(Throwable cause) { System.out.println("onConnectFailed : " + cause); } }); } catch (Throwable var1) { } System.out.println("connect result :" + client.isConnected()); }
EnOS Edge 添加子设备拓扑,示例代码中”
sub_pk
“, “sub_dk
“, “sub_ds
“为子设备三元组信息。public static void addTopo() throws Exception { System.out.println("start add topo ..."); TopoAddRequest request = (TopoAddRequest)TopoAddRequest.builder().addSubDevice(new SubDeviceInfo("sub_pk", "sub_dk", "sub_ds")).build(); TopoAddResponse rsp = (TopoAddResponse)client.publish(request); System.out.println("-->" + rsp); getTopo(); subDeviceLogin(); //EnOS Edge代理子设备上线 }
EnOS Edge 代理子设备发送数据,该示例代码中向
INV.GenActivePW
测点发送随机生成的浮点数据。public static void postSubMeasurepoint() { Random random = new Random(); System.out.println("start post sub device measurepoint ..."); MeasurepointPostRequest request = (MeasurepointPostRequest)((MeasurepointPostRequest.Builder)((MeasurepointPostRequest.Builder)MeasurepointPostRequest.builder().setProductKey("sub_pk")).setDeviceKey("sub_dk")).addMeasurePoint("INV.GenActivePW", random.nextFloat()).build(); try { MeasurepointPostResponse rsp = (MeasurepointPostResponse)client.publish(request); System.out.println("-->" + rsp); } catch (Exception var3) { var3.printStackTrace(); } }
SDK 具体使用参考 Java SDK README。
步骤 6:查看设备状态 ¶
在 EnOS 应用门户的开发者控制台中,选择 设备管理 > 设备资产,查看 Edge01 和子设备的状态,确认设备处于 在线 状态。
步骤 7:查看设备数据 ¶
在设备列表中,找到子设备并点击 查看
图标,进入 设备详情 页面。
点击 测点 标签页,找到测点 INV.GenActivePW,点击 查看数据
,进入 时序洞察 页面,查看测点的最新数据。
也可以通过 TSDB 数据服务,获取测点的最新数据。