更新时间:2025-10-10 GMT+08:00
分享

接入案例

下面举一个葆德网关使用MQTT协议基于IoEdge的接入方式接入设备的点位案例。

葆德网关对接架构如下:

  1. 设施云网关对应的就是微能网关,该网关上安装IOTEdge边缘节点(后续也可以直接在葆德网关上安装这个IOTEdge边缘节点)。
  2. 葆德网关通过MQTT(S)协议对接到微能网关。
  3. 针对设备点位上报,通过使用葆德网关的连接身份来上报对应子设备的数据到IOTEdge平台,由IOTEdge平台转发到IOTDA,最终转发到设施云。
  4. 针对设备点位控制,由设施云下发到IOTEdge平台,IOTEdge转发到葆德网关对应topic,葆德网关监该topic消息后下发到对应子设备。

注册微能网关设备

在设施云前台页面的边缘管理菜单下的网关设备页面注册网关设备,如下所示:

注册完成后,单击后面安装操作,选择对应架构后复制对应安装命令,然后登录微能网关后执行该安装命令安装网关节点,安装完成后微能网关状态就会变成已安装,最后变成在线就证明安装成功。

注册葆德网关机电设备

在设施云的设备管理菜单选择产品,创建对应产品分类后创建一个葆德网关产品,对应协议类型要选择为MQTT

在设施云前台页面的边缘管理菜单下的机电设备页面注册葆德设备,所属产品选择上面创建的葆德产品,设备鉴权密码设置一个(记住该密码后面mqtt连接需要),边缘网关设备选择上面创建的微能网关,如下所示:

注册葆德下接入子设备

葆德网关下子设备对应的就是底层接入的真实设备,首先要创建对应设备的产品(根据实际设备类型创建产品物模型),对应产品协议也要选择MQTT。接着进入上面创建好的葆德机电设备详情页面,单击子设备页面来注册一个设备,边缘网关设备关联上面创建的微能网关,如下图所示:

葆德网关南向对接

葆德南向对接的是微能网关,对应平台就是IOTEdge,采用协议是MQTT(S),对应的MQTT服务端地址为微能网关的IP地址,MQTTS端口为7883,MQTT端口为7882,连接身份使用葆德网关设备,通过访问https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com来生成客户端ID用户名和用户密码。其中对应的设备ID就是葆德网关的设备ID,设备秘钥就是注册葆德网关设置的设备鉴权密码。

上报子设备状态

Topic: $oc/devices/{device_id}/sys/events/up

数据格式:

{
    "services": [
        {
            "event_time": "20151212T121212Z",
            "event_type": "sub_device_update_status",
            "paras": {
                "device_statuses": [
                    {
                        "device_id": "bf40f0c4-4022-41c6-a201-c5133122054a",
                        "status": "ONLINE"
                    },
                    {
                        "device_id": "4459c0f7-10bb-4718-9b07-7a82c2d508a5",
                        "status": "ONLINE"
                    }
                ]
            },
            "service_id": "$sub_device_manager"
        }
    ]
}

对应参数说明:

Topic中的{device_id}

对应葆德网关的设备ID

service_id

系统字段,固定为:"$sub_device_manager"。

event_time

更新设备状态时间。

使用UTC时间

,格式:yyyyMMdd'T'HHmmss'Z'。

event_type

系统字段,固定为:"sub_device_update_status"。

device_id

对应葆德网关下的子设备ID

status

上报设备状态。

OFFLINE:设备离线。

ONLINE:设备上线。

上报子设备点位

Topic: $oc/devices/{device_id}/sys/gateway/sub_devices/properties/report

数据格式:

{
    "devices": [
        {
            "device_id": "bf40f0c4-4022-41c6-a201-c5133122054a",
            "services": [
                {
                    "event_time": "20190606T121212Z",
                    "properties": {
                        "PhV_phsA": "1",
                        "PhV_phsB": "2"
                    },
                    "service_id": "analog"
                }
            ]
        },
        {
            "device_id": "42aa08ea-84c1-4025-a7b2-c1f6efe547c2",
            "services": [
                {
                    "event_time": "20190606T121212Z",
                    "properties": {
                        "PhV_phsA": "3",
                        "PhV_phsB": "5"
                    },
                    "service_id": "analog"
                },
                {
                    "event_time": "20190606T121212Z",
                    "properties": {
                        "ImbA_strVal": "8",
                        "Load": "6"
                    },
                    "service_id": "parameter"
                }
            ]
        }
    ]
}

对应参数说明:

Topic中的{device_id}

对应葆德网关的设备ID

service_id

设备的服务ID,由创建的产品物模型确定。

event_time

更新设备状态时间。

使用UTC时间

,格式:yyyyMMdd'T'HHmmss'Z'。

device_id

对应葆德网关下的子设备ID

properties

设备服务的属性列表,具体字段在产品模型里定义,可以设置多个字段。以<属性名:值>的形式存储属性消息。

设施云设置子设备点位

下行请求示例

Topic: $oc/devices/{device_id}/sys/properties/set/request_id={request_id}

数据格式:

{
    "object_device_id": "{object_device_id}",
    "services": [
        {
            "properties": {
                "value": 57,
                "value2": 60
            },
            "service_id": "Temperature"
        },
        {
            "properties": {
                "level": 80,
                "level2": 90
            },
            "service_id": "Battery"
        }
    ]
}

上行响应示例

Topic:$oc/devices/{device_id}/sys/properties/set/response/request_id={request_id}

数据格式:

{
    "result_code": 0,
    "result_desc": "success"
}

对应参数说明:

Topic中的{device_id}

对应葆德网关的设备ID

service_id

设备的服务ID,由创建的产品物模型确定。

event_time

更新设备状态时间。

使用UTC时间

,格式:yyyyMMdd'T'HHmmss'Z'。

object_device_id

对应葆德网关下的子设备ID

properties

设备服务的属性列表,具体字段在产品模型里定义,可以设置多个字段。以<属性名:值>的形式存储属性消息。

设施云查询子设备点位

下行请求示例

Topic: $oc/devices/{device_id}/sys/properties/get/request_id={request_id}

数据格式:

{
    "object_device_id": "{object_device_id}",
    "service_id": "Temperature"
}

上行响应示例

Topic:$oc/devices/{device_id}/sys/properties/get/response/request_id={request_id}

数据格式:

{
    "services": [
        {
            "event_time": "20190606T121212Z",
            "properties": {
                "PhV_phsA": "1",
                "PhV_phsB": "2"
            },
            "service_id": "Temperature"
        }
    ]
}

对应参数说明:

Topic中的{device_id}

对应葆德网关的设备ID

service_id

设备的服务ID,由创建的产品物模型确定。

event_time

更新设备状态时间。

使用UTC时间

,格式:yyyyMMdd'T'HHmmss'Z'。

object_device_id

对应葆德网关下的子设备ID

properties

设备服务的属性列表,具体字段在产品模型里定义,可以设置多个字段。以<属性名:值>的形式存储属性消息。

相关文档