iot-hauwei

介绍

服务名:iot-hauwei

工程名称:fox-edge-server-iot-hauwei

说明:

HuaWei-IoTDA 是国内一家商业化物联网云平台的龙头企业,用于数据收集、处理、可视化展示以及设备管理。

HuaWei-IoTDA 使用行业标准物联网协议 MQTT 实现设备连接。

灵狐为了演示 Fox-Edge 的北向接入能力,同时也考虑到 HuaWei 在国内物联网云平台的影响力, 所以,提供了 iot-huawei ,将对接 HuaWei-IoTDA ,作为北向对接第三方物联网云平台的一个范例。

网站

HuaWei 官网

HuaWei试用版

HuaWei文档

方案

1、HuaWei

HuaWei 是一个商业化的物联网,它对外提供了MQTT接口来跟现场设备和网关的数据对接。

华为的物联网云平台技术方案,是要求用户先在 HuaWei-IoTDA 手动注册产品、网关设备、设备模型后, 接下来,第三方网关和设备,才能够跟他们进行自动对接。

华为上述流程比较繁琐,也是灵狐写文档的时候,差点被劝退的,服务早就做好了,文档却一直难产的原因。

其实,华为面向企业的产品使用繁琐,是华为面向企业的一大特色,原因不细说。

华为的云平台是既面向2C 又面向 2B ,但实际上两头兼顾的后果是两头都难受。

1.1、华为术语

华为的这个产品概念,实际上是面向消费者领域的,相当于消费者产品的某个品类。

但是如果应用到企业项目之中,那么华为的产品,就相当于一个甲方工程项目/子项目。

华为的设备概念中,包括 网关设备子设备 的概念。

网关设备/子设备,是企业场景下,会用到的两个关联的基本概念。

面向企业的物联网云平台,它都会包括网关设备和子设备的二级管理方式。

题外话:在消费者领域,因为不涉及组网概念,跟物联网云平台采用的基本上是直连方式。

国内的大多数物联网云平台,都是面向消费者的,灵狐在跟他们协商对接的时候,这类厂商们一听说是能管理下方 现场设备的边缘计算网关,自己就直接放弃了。 因为他们只考虑到了消费者领域场景下的设备直连方案,并不支持网关/子设备二级管理方式。

其实,2C物联网2B/2G物联网 的差异,非常的巨大。 灵狐在 物联网的分类 中详细介绍过。

华为的这个属性概念,实际上是指一个个采样数据。

华为又定义了一个设备模型,来对这些采样数据的分类和自动处理。

如果你没有在华为云平台进行设备模型的预定义,云平台在数据到达之后,那么将被拒绝入库。

华为云平台要求用户提取预定义设备模型,来对接收设备数据的规范化、分类化和自动化。

这是灵狐对华为云平台吐槽了无数次的地方。

因为这种方式,比较适合消费者设备,消费者类设备的特点是,它们往往很单一,一个设备几个采样数据,应用一个业务场景。 比如温度设备,它就采样温度相关的几个数据,你可以把这些数据都归类与温度,或者家庭数据。

但是在企业应用场景下,企业的设备往往是综合能力很强的设备,它一个设备包括的数据是几十个、几百个,包括很多应用场景。

企业的数据管理,非常复杂,通常都是混合类数据,每个项目又有各自的管理方式,不是你可以替它们预规定的了的。

灵狐决定按设备来业务分类。

华为平台的限制,它要求设备名称、业务名称为符合它规定的几种格式,不能自由填写。

Fox-Edge应对措施是,遇到不允许的特殊字符,一概按下划线替代。

比如:【CE+T UPS】出现了华为平台不允许的加号和空格字符,那么按【CE_T_UPS】方式处理。

1.2、连接方式

华为为现场网关/设备提供的是MQTT的连接方案。

1.3、通信接口

跟华为云平台对接,主要涉及到以下几个华为云平台的接口

网关新增子设备请求

网关删除子设备请求

网关更新子设备状态

网关批量设备属性上报

2、Fox-Edge

Fox-Edge 是一个2B/2G类的物联网边缘计算平台Fox-Edge将现场大量的设备数据接入和管理之后,再将数据推送给云平台。

Fox-Edge 是一个高度可扩展的 边缘计算平台 ,它的架构允许它通过添加各种北向接入服务,实现跟各家云平台对接。

iot-HuaWei 是面向 HuaWei 的物联网云平台的北向对接服务。

3、对接过程

1、在HuaWei官网开通试用账号,申请一个独立的HuaWei云平台测试环境。

2、在HuaWei云平台上手动创建一个产品,作为工程项目的管理对象,此时平台会提供一个 产品ID 的关键信息。

3、在HuaWei云平台的这个产品上,参考Fox-Edge侧的设备采样信息,以设备类型为维度,创建 设备模型 , 后面要导出该模型给Fox-Edge。

4、在HuaWei上手动创建一个设备,作为跟云平台直接连接的网关设备,此时云平台会提供一个MQTT账号,给Fox-Edge网关作为连接使用。

5、在Windows工作台环境下,用第三方MQTT客户端(比如MQTTx)使用账号连接一下云平台,验证一下,这个账号是否可用。

6、在Fox-Edge的扩展信息页面,添加一个 huaweiIotDA 布尔型扩展字段,此时Fox-Edge上的每一个设备都会自动具有该属性。

7、在HuaWei上的设备页面,将 MQTT账号节点ID设备ID 信息导出来

8、在HuaWei上的产品页面,将 产品ID 复制出来

9、在HuaWei上的产品页面,将 设备模型 导出来

10、在Fox-Edge侧,将 MQTT账号产品ID 的内容添加到 iot-HuaWei 服务的全局配置中

11、在Fox-Edge侧,将 设备模型 的JSON内容取出,并添加到设备模型管理中

12、在需要推送的设备上,将扩展字段 huaweiIotDA 填写为true

13、Fox-Edge 会通过 MQTT账号 自动连接华为云平台, 在HuaWei上的设备页面上,可以看到网关连接成功。

14、Fox-Edge 会通过设备上的 huaweiIotDA 字段,自动将该设备注册到华为云平台, 在HuaWei上的设备页面上,可以看到自动添加了一批Fox-Edge的子设备。

15、Fox-Edge 会根据 设备模型 和设备采样发生变化了的数据,自动推送到云平台, 在HuaWei上的设备详情页面上,可以采样数据被推送过来了。

提醒

大多数物联网云平台的数据接入能力和带宽资源非常有限(人家的带宽也是花钱买的),测试阶段不要物联网平台滥发数据。

目前iot-HuaWei建议的数据推送方式是哪个设备有数据变化,就推送该设备的数据。 而Fox-Edge管理的设备特别的多,数据变化也很剧烈,这可能意味着对HuaWei巨大的数据压力,在公网测试时,别测试太多的设备, 否则小心被物联网云平台运营方视为恶意攻击,被封号、拉黑。

源码

源码

准备工作

1、搭建环境

HuaWei在他们的官网,提供了免费试用环境,可以作为测试环境。

1、HuaWei

注册账号

2、Fox-Edge

本地环境安装一套Fox-Edge,并安装iot-HuaWei服务

参考Fox-Edge的 安装教程。

环境测试

1、HuaWei

先后注册一个产品,一个网关设备,并用MQTTx测试一下能够像一个网关设备一样,连接到华为平台。

2、Fox-Edge

安装好iot-HuaWei服务

操作步骤

1、在Huawei云平台导出设备模型

2、在Fox-Edge配置iot-huawei参数

将华为云平台的参数 MQTT账号产品ID节点ID设备ID 填入全局参数中。

3、在Fox-Edge添加设备模型

将华为云平台的导出来的设备模型文件,添加到Fox-Edge的设备模型中

4、在Fox-Edge添加设备

5、在HuaWei平台查看效果

在HuaWei上可以看到设备数据从Fox-Edge推送过来了

6、注意

HuaWei免费提供的测试环境部署公网上,HuaWei的公网带宽是有限的,测试时不用接入太多的设备,否则影响HuaWei的访问。

Fox-Edge的设备命名自由度很高,而华为平台的设备命名限制非常大,所以不能简单的直接按Fox-Edge的设备命名来取华为平台的 名字,否则可能会创建不成功。

用户在Fox-Edge自动在华为平台创建设备之后,手动将这些设备名称,修改为符合华为平台规范的设备名称。