跳至主要內容

海普发 4G 断路器接入 ThingsCloud

约 2023 字大约 7 分钟

海普发 4G 断路器接入 ThingsCloud

本示例为您展示如何快速将海普发 4G 断路器接入 ThingsCloud 平台,以实现断路器的远程开合闸控制,以及电力能耗数据的采集。

海普发 4G 断路器具有以下的特点:

  • 保护功能全面:支持传统的断路器保护功能,如过载保护、短路保护、漏电保护和手动操作把手。
  • 多参数检测:支持对电压、电流、功率、电量、温度等多个电力参数的检测。

通过将断路器接入 ThingsCloud 平台,客户实现在整体项目中,对断路器的智能化管理和全方位监控,从而提升了整体的数字化管理水平,带来以下优势:

  • 统一管理物联网设备:客户将断路器和其它物联网设备进行统一管理,无需跨越多个平台来处理不同设备的数据和控制。
  • 远程和智能控制:通过 ThingsCloud,客户可以远程对断路器进行开合闸控制,或者根据预设的条件和其它设备的状态进行自动化控制,实现智能联动。
  • 能耗数据采集与分析:通过采集和分析断路器的电力能耗数据,客户能够更好地了解设备运行状态,优化能源使用,降低运营成本。
  • 可视化管理:借助 ThingsCloud 的可视化看板和 App 面板,客户可以直观地监控和管理断路器的状态与性能指标,实现更高效的运维。
  • 多用户与告警系统:支持多用户体系,确保不同权限的用户能够有效管理与监控设备。同时,丰富的告警通知功能确保当断路器出现异常时,客户能够及时收到通知,进行快速响应。
  • 开放 API 集成:ThingsCloud 提供的开放 API 使得断路器的数据和控制功能可以轻松集成到客户的其他系统中,实现更高层次的业务应用。

感谢海普发公司李工提供对接演示👍

快速创建设备类型

首先在 ThingsCloud 控制台中,为断路器创建设备类型,推荐您可以直接使用产品 ID 3762681424 来创建设备类型,已包含了基本的功能,您可以直接使用。

提示

学习如何通过产品 ID 快速创建设备类型,请浏览 发布设备类型

如果想了解设备类型的配置过程和原理,可阅读末尾的 手动配置设备类型

创建设备

接着,创建一个新的设备,关联到刚创建的设备类型下。

进入设备的 连接 页面中,获得以下 MQTT 参数,如下图:

将参数提供给海普发公司的技术支持人员,或在厂商的指导下自行完成断路器硬件端的配置。

这一步完成后,断路器设备会显示在线,如下图:

控制断路器开合闸

进入控制台的设备详情页,可以看到设备的基本属性,拨动开关控制,就可以向断路器下发开合闸指令,由于开合闸的动作需要一定的时间,当设备完成动作后,会上报开关状态。

您也可以直接在设备的调试页面中,手动下发开合闸指令,指令是 JSON 格式,如下图:

更多的指令说明,请您咨询设备厂商。

浏览电力能耗数据

断路器默认会按一定周期主动上报电力数据,在设备详情页可以看到最新的数据,如下图:

除此之外,您可以执行平台的任务,向设备下发读取数据的指令,要求设备立即上报数据。如下图:

您可以将任务设置为定时模式,例如每隔10分组读取一次数据,如下图:

在 App 上查看数据和控制开合闸

除了在控制台查看数据和下发控制,ThingsCloud 提供了多用户体系的 App,您可以自行编辑 App 的设备面板,如下图:

提示

ThingsCloud 支持多用户体系的零代码 App 应用开发,详情浏览:

制作可视化看板

提示

此处略过,请浏览: 可视化看板示例

配置告警通知

您可以自行根据实际需要,添加告警规则,如下图:

每个告警规则可以设置多种通知方式,可以发送给通知组,也可以发送给设备所属用户,如下图:

还可以设置告警规则的有效时间段,例如有些场景下在特定时间段不执行告警检查,如下图:

提示

学习更多告警通知的使用方法,请浏览:

手动配置设备类型

如果您想学习配置的过程,以及实现更多自定义的功能,可以继续阅读以下内容。如果您仅限于常规使用,阅读以上内容即可。

添加属性定义

我们在设备类型中,可以自定义断路器的所有属性的名称,并设置属性的有效范围。

提示

理解什么是属性定义,请阅读 功能定义

消息规则解析电力数据

本例中,使用了自定义数据流,在设备类型中通过消息规则,从设备上报的原始数据中提取出我们需要的数据,进入设备的属性中。

消息规则中编写了一段简单的 JavaScript 函数,如下:

module.exports = function (identifier, data) {
    /**
     * 参数:
     * identifier:  上报的自定义数据流标识符
     * data:        上报的自定义数据,二进制 Buffer格式
     * 返回值:
     * attributes:  生成设备属性
     */

    var attributes = {};
    const json = Cloud.jsonParse(data.toString());
    
    if ([202, 208].includes(json.bid) && json.Children && json.Children[0]) {
        const data = json.Children[0];
        const ClientID = data.ClientID;
        const Voltage = data.Voltage;
        const Current = data.Current;
        const Power = data.Power;
        const Energy = data.Energy;
        const Temperature = data.Temperature;
        attributes.ClientID = ClientID;
        attributes.Va = Voltage[0]/1000;
        attributes.Vb = Voltage[1]/1000;
        attributes.Vc = Voltage[2]/1000;
        attributes.Ca = Current[0];
        attributes.Cb = Current[1];
        attributes.Cc = Current[2];
        attributes.Pa = Power[0];
        attributes.Pb = Power[1];
        attributes.Pc = Power[2];
        attributes.Ea = Energy[0];
        attributes.Eb = Energy[1];
        attributes.Ec = Energy[2];
        attributes.T1 = (Temperature[0] || 0)/100;
        attributes.T2 = (Temperature[1] || 0)/100;
        attributes.T3 = (Temperature[2] || 0)/100;
        attributes.T4 = (Temperature[3] || 0)/100;
        attributes.SwitchStatus = data.SwitchStatus == 1;
        attributes.Mode = data.Mode;
    }

    return attributes;
}    

提示

学习消息规则基础,请阅读 消息规则

消息规则生成开合闸控制指令

这里我们还用到一个属性下发消息规则,负责将对设备下发开关属性,转成设备可以识别的指令。通过设备调试日志,可以看到转换过程,如下图:

使用属性下发规则,生成自定义数据流下发,如下图:

这个消息规则中的云函数如下图:

 module.exports = function (push_attributes) {
    /**
     * push_attributes:   下发的属性对象,作为函数参数传入。
     * data:                构造下发的自定义数据对象,下发到硬件。
     */

    var data = {};

    if (push_attributes.SwitchControl === true) {
        data = {
            type: "json",
            msg: {
                bid: 202,
                mid: "6F9619FF-8B86-D011-B42D-00C04FC964FF",
                Children: [{ ClientID: "RP48100042", MoterOperation: 1 }],
            },
        };
    } else if (push_attributes.SwitchControl === false) {
        data = {
            type: "json",
            msg: {
                bid: 202,
                mid: "6F9619FF-8B86-D011-B42D-00C04FC964FF",
                Children: [{ ClientID: "RP48100042", MoterOperation: 2 }],
            },
        };
    }

    return data;
};

通过任务随时读取数据

前边我们提到的,用于向设备下发读取数据的任务,也是在设备类型中创建的,如下图:

同样,您可以根据设备的指令手册,利用任务下发来执行更多的功能。

提示

学习任务,请阅读 任务