ThingsKit设备接入案例-智慧空开_MQTT直连采集


智慧空开_MQTT直连采集

ThingsKit设备接入案例-智慧空开_MQTT直连采集

1、准备工作

本次测试所需硬件为安科瑞智慧空开,安科瑞断路器两组以及各类线材:

ThingsKit设备接入案例-智慧空开_MQTT直连采集

安科瑞智慧空开,型号:ASCB1-MS-CE

购买地址:

ThingsKit设备接入案例-智慧空开_MQTT直连采集
ThingsKit设备接入案例-智慧空开_MQTT直连采集

RS485转USB工具,需自行购买

准备好设备后按照厂家相关说明书接线,智慧空开需要接入一组220VAC电源供电以及用RS485转USB工具连接上位机(PC)调试,智慧空开需要网线入网。

💡 补充

官方文档

📎安科瑞ASCB1智能微型断路器简易协议V1.00.pdf

📎智慧空开、智能塑壳、触摸屏调试文档V1.01.pdf

官方配置工具

📎ASCB1系列智能微型断路器调试软件V1.04.zip

2、通过配置工具设置设备参数

2-1、配置工具连接设备

首先需要使用RS485转USB工具将智慧网关与上位机连接,然后打开厂家提供的配置工具:

ThingsKit设备接入案例-智慧空开_MQTT直连采集

💡 提示

打开设备管理器-端口(COM和LPT)查看当前设备连接COM口是哪一个,该设备默认波特率为38400。

ThingsKit设备接入案例-智慧空开_MQTT直连采集

2-2、修改网络设置

ThingsKit设备接入案例-智慧空开_MQTT直连采集

💡 提示

该设备支持上报时间最低值为60s,所以这里改为了60s,如果设置值低于60s则设备不会主动上报实时数据。

💡 注意

通过官方配置工具修改网络设置时,需要先读取一次再写入,写入后稍等2s,待设备保存配置后再读取一次查看是否修改成功。

💡 注意

测试中使用服务器地址以及端口需要根据实际情况填写。

体验账号

服务器地址:101.133.234.90

端口号:1883

❓ 我的设备不能上网怎么办?

答:如果是接入以太网,则在插上网线后按照动图中设置为DHCP模式,若是4G或者WIFI需确认设备是否支持这些功能以及SIM卡是否能上报、WIFI尽量连接2.4G通道。

3、Thingskit配置

3-1、创建产品

ThingsKit设备接入案例-智慧空开_MQTT直连采集

💡 提示

创建产品时需要按照设备的数据格式来选择设备的类型,本文档中选择的是MQTT直连设备,因为设备本身的topic不支持修改而平台只支持直连设备修改topic,所以这里需要选择MQTT直连设备。

💡 提示

设备的实时数据发布topic为data/up/设备SN,这里为了兼容多台设备接入,将topic修改为了data/up/+。

3-2、创建物模型

ThingsKit设备接入案例-智慧空开_MQTT直连采集

❓ 我如何确定物模型的标识符是什么?

物模型是标识符是根据设备上报数据中的json键值对的键名称来确定的(数据格式按照官方文档查询),本文档中为了区分不同断路器的数据,在键名称中加上了设备规范的断路器名称(如1_1、1_2),所以数据点的标识符是1_1Temp1、1_2Temp1。

💡 提示

创建新物模型后,需要点击发布上线才能生效。

ThingsKit设备接入案例-智慧空开_MQTT直连采集

3-3、创建设备

ThingsKit设备接入案例-智慧空开_MQTT直连采集

❓ 如何确定MQTT Basic要填写什么?

答:MQTT Basic是建立MQTT通信的认证信息,本文档中的认证信息是根据官方文档填写的:

客户端ID 设备SN

用户名 acrel

密码 acrel

❓ 如何快速获取设备SN?

答:可以通过设备配置软件获得。

ThingsKit设备接入案例-智慧空开_MQTT直连采集

💡 提示

由于之前的步骤以及将设备的网络配置指向了本文档的测试服务器,所以当设备创建并修改为正确的MQTT Basic后设备状态变为了“在线”。

3-4、创建规则链转换脚本

ThingsKit设备接入案例-智慧空开_MQTT直连采集
//遍历对象中所有键值对并在键值对前添加字符串
function addPrefixToKeys(obj, string) {
    var a = {};
    for (var key in obj) {
        a[string + key] = obj[key];
    }
    return a;
}
//过滤产品名称,只让本文档中创建的产品下设备指向该脚本
if (metadata.deviceType == "安科瑞智慧空开") {
    var reported = msg.reported;

    //遍历json对象中所有的键名
    var keys = Object.keys(reported);

    //取第三个键名
    var value = keys[2];

    //判断是否符合测试的实时数据格式,判断条件可以根据实际场景修改,也可以去掉该判断
    if (value == '1_1' || value == '1_2') {
        //需要键名符合限制,但是直接用.不能取到对象,改用[],并且将所取数据点的键名加上所属断路器编号
        var reReported = addPrefixToKeys(reported[value],
            value);
    }
}
msg = reReported;
//返回所需的值
return {
    msg: msg,
    metadata: metadata,
    msgType: msgType
};

💡 提示

规则链转换脚本需要将状态改变为启用才能生效,同一时间只能启用一个规则链转换脚本。

💡 注意

该脚本是根据产品名称过滤哪些数据需要通过脚本处理的,所以在本脚本上进行扩展需要注意判断条件的更改。

4、数据验证

ThingsKit设备接入案例-智慧空开_MQTT直连采集
ThingsKit设备接入案例-智慧空开_MQTT直连采集
ThingsKit设备接入案例-智慧空开_MQTT直连采集

💡 提示

由于设备的实时数据数据点过多,这里只挑选了断路器1、2的温度做数据展示,如果需要对比更多数据点,在产品中添加对应标识符的物模型即可。