网易首页 > 网易号 > 正文 申请入驻

自定义函数实现IoT数据编解码、格式处理与业务告警

0
分享至

背景

在物联网平台的设备数据接入场景中,开发者总是希望平台接入的设备数据格式标准统一,以便对数据进行统一处理。在实际情况中,由于业务需要,平台常常会面对不同类型、不同厂商的设备接入。

即使设备接入协议已经统一使用MQTT ,由于MQTT协议中对Payload格式的宽松定义,应用开发者往往还需要针对不同设备上报格式进行加工处理。尤其在已经出厂的存量设备或是已经部署到现场的设备对接过程中,平台开发者往往无法要求设备侧按照平台的统一标准进行数据上报。因此,平台侧对于设备数据的统一化处理就成为开发过程中的一项重要工作。

设备数据处理常用方法对比

使用全托管MQTT消息云服务EMQX Cloud 进行设备数据接入的过程中,解决数据格式统一化通常有以下几种方案。

数据透传

通过EMQX Cloud接入数据后将报文透传到应用侧,在后台业务应用中对各类型数据进行格式转换与处理。

这种方式相对最为直接,但对应用开发者最不友好。尤其在数据吞吐量比较大的情况下,后台业务应用既要处理数据格式,又要完成业务处理,对业务端性能也会影响比较大。

通过规则引擎进行数据处理

EMQX Cloud 内置的数据集成规则引擎提供了基于SQL语言的规则定义与数据处理能力。开发者可以通过内置函数对数据格式和内容进行处理。这种低代码数据处理方式将数据格式与内容处理前置到消息中间件层,为后台业务应用开发提供了高性能、标准化的数据处理方式。

但是受限于规则引擎的内置函数与方法,用户无法实现逻辑相对复杂的数据处理需求,且规则引擎也不支持比较复杂的逻辑判断。

优化方案:自定义函数

为了增强规则引擎数据处理能力,EMQX Cloud 推出了「自定义函数」增值服务。

用户可以通过编写基于ECMAScript 5.1及部分ECMAScript 6的语法的自定义脚本实现数据处理逻辑,并在EMQX Cloud规则引擎中调用,这样就可以完成更加复杂的数据预处理逻辑,并通过规则引擎将函数返回的数据按业务需求流转至消息消费方。

*注:考虑到执行性能对整体消息吞吐性能的影响,EMQX Cloud 提供的自定义函数会对执行脚本进行性能检查,脚本执行时间不能超过3秒,否则将无法通过验证。因此我们不建议在脚本中编写高耗时的操作。

自定义函数在实际场景中的应用

下面我们通过几个例子来看看自定义函数可以用于哪些业务场景。

数据编解码

在设备数据上报场景中,对于网络带宽受限以及功耗敏感的设备,在数据传输过程中往往会将设备数据通过更加紧凑的十六进制格式进行传输,以便节省带宽和功耗。在平台侧,如果业务应用需要理解上报数据的具体业务意义,则需根据规约将十六进制报文解析成JSON格式报文,方便应用开发。

示例

平台需要接入一个智能井盖设备,井盖设备需要定时上传4个传感器数据,设备通过十六进制数格式上报到平台,每两个字节代表一个传感器数据:

我们通过自定义函数将十六进制数转换为有意义的JSON格式,方便后台业务应用对数据进行消费。我们在EMQX Cloud中创建一个自定义函数:

假如此时设备上报数据为00011601,Payload 作为入参进入自定义函数输入为{0x00,0x01,0x16,0x01};我们以此输入测试函数输出,可以看到结果如下:

这样我们就可以通过自定义函数,将设备上报的编码数据格式转化为更为易处理的JSON格式供后端业务应用消费。

数据格式处理

在设备数据上报过程中,数据上传通常会以比较简单的格式进行传输,比如会按默认规定省略一些默认的数据与格式。但对于平台侧应用来说,一般需要能够通过数据处理补齐相关的数据以达成数据格式的标准化。此时我们可以通过自定义函数来实现数据格式补齐。

示例

我们在办公楼的机房内部署了温湿度传感器以用来检测环境数据,传感器通过MQTT协议以JSON格式的Payload 上报报文到云端平台。

我们希望通过自定义函数对每个上报报文进行单位的补齐,这时可以通过定义如下函数来实现:

通过函数测试我们可以看到,输出的数据被添加了相应的单位格式:

这样,我们就完成了对上报报文的格式转换工作。

数据告警

除了通过函数处理报文格式外,我们也可以通过逻辑判断实现业务告警。虽然EMQX 提供的规则引擎也可以进行简单的数值判断,但是相对复杂的逻辑判断与数据处理更适合在自定义函数中进行。

示例

沿用上一个场景的设备数据,我们可以通过判断温度与湿度是否在正常工作状态来设置告警信息。比如机房的正常工作温度在15到40摄氏度之间,湿度在30%到60%之间。我们就可以通过在自定义函数中进行判断后,对超过工作温湿度的上报数据进行告警处理。

如果我们从传感器上报的实时湿度超过工作范围,我们将得到告警信息。

这样,后台应用就可以通过输出的Warning 信息来进行业务告警处理。

另外在EMQX Cloud规则引擎中调用自定义函数可以支持多个入参,比如Topic、ClientID等。用户可以结合各种设备与主题信息进行对报文的加工与处理,在此不一一赘述。

结语

物联网设备接入的业务场景纷繁复杂,新的自定义函数功能为广大物联网开发者提供了更加灵活的数据处理方式。用户可以在自定义函数中实现相对复杂的数据处理逻辑,通过EMQX Cloud 服务快速部署函数与设备数据和应用对接,大大提升开发效率。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国女排3-2土耳其!谁是赢球最大功臣,数据一目了然,2人获高分

中国女排3-2土耳其!谁是赢球最大功臣,数据一目了然,2人获高分

侃球熊弟
2024-06-15 23:32:40
二哥在建筑设计院被裁员了,他今年47岁,985毕业,都不给续签了

二哥在建筑设计院被裁员了,他今年47岁,985毕业,都不给续签了

侃故事的阿庆
2024-06-16 11:45:25
虎父无犬子!易建联俩儿子亮相训练营,名记:为国出战先恢复国籍

虎父无犬子!易建联俩儿子亮相训练营,名记:为国出战先恢复国籍

室内设计师阿喇
2024-06-16 08:39:24
“只有嘴巴、鼻子露在外面”!上海惊险一幕!忍着剧痛,他们出手了

“只有嘴巴、鼻子露在外面”!上海惊险一幕!忍着剧痛,他们出手了

北青网-北京青年报
2024-06-15 21:37:06
这座华工人设计的广州地标,将为2024届毕业生亮灯!

这座华工人设计的广州地标,将为2024届毕业生亮灯!

华南理工大学
2024-06-16 14:47:25
蔚来总裁:电池寿命也就15年,但蔚来车主可通过换电实现电池永生

蔚来总裁:电池寿命也就15年,但蔚来车主可通过换电实现电池永生

映射生活的身影
2024-06-15 10:56:12
光刻胶断供重创中国芯,麒麟9000s量产受阻,华为还能靠什么翻盘

光刻胶断供重创中国芯,麒麟9000s量产受阻,华为还能靠什么翻盘

嘿哥哥科技
2024-06-15 21:23:06
荷兰搭上末班车!奥运女排12席全部出炉,中国队力争锁定二档

荷兰搭上末班车!奥运女排12席全部出炉,中国队力争锁定二档

ALL体育
2024-06-16 11:44:44
“友情炮”,现在的人真会玩

“友情炮”,现在的人真会玩

星辰故事屋
2024-06-06 11:40:43
英媒:中国正加速成长为“科学巨人”

英媒:中国正加速成长为“科学巨人”

参考消息
2024-06-15 09:14:11
别了曼联!1亿太子同意!22岁未来可期,尤文捡漏,滕哈赫舍不得

别了曼联!1亿太子同意!22岁未来可期,尤文捡漏,滕哈赫舍不得

阿泰希特
2024-06-16 12:13:42
赖清德登《时代》封面,再次兜售“新两国论”

赖清德登《时代》封面,再次兜售“新两国论”

喜欢农家生活的阿律
2024-06-15 21:03:43
真不想走了!当着我国海警的面,菲律宾在南沙庆祝独立日!

真不想走了!当着我国海警的面,菲律宾在南沙庆祝独立日!

青辉
2024-06-16 15:19:00
中国全面封锁仁爱礁,坐滩人员一个也别想出,菲军已中断补给20天

中国全面封锁仁爱礁,坐滩人员一个也别想出,菲军已中断补给20天

胖福的小木屋
2024-06-12 23:36:31
孔子问一7岁小孩:天上有多少颗星星?小孩回答后,孔子行礼拜师

孔子问一7岁小孩:天上有多少颗星星?小孩回答后,孔子行礼拜师

否知
2024-06-10 09:50:11
惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

惊人消息!韦世豪或告别国家队,伊万、郑智的反应引发热议

人生趣事悟语
2024-06-16 03:56:19
75英寸电视都不香了 中国人狂买86/98/100英寸等巨幕电视

75英寸电视都不香了 中国人狂买86/98/100英寸等巨幕电视

快科技
2024-06-14 17:37:07
当了酒店前台才知道的秘密!网友:瓜太多,根本吃不过来!

当了酒店前台才知道的秘密!网友:瓜太多,根本吃不过来!

奇特短尾矮袋鼠
2024-06-14 10:56:00
马云——阿里巴巴“如果可以为数学做一点事情,他会备感荣幸”。

马云——阿里巴巴“如果可以为数学做一点事情,他会备感荣幸”。

冒泡泡的鱼儿
2024-06-15 22:07:08
用AI生成《射雕英雄传》主要人物样貌,韩小莹简直美出天际!

用AI生成《射雕英雄传》主要人物样貌,韩小莹简直美出天际!

娱乐小可爱蛙
2024-06-15 22:00:31
2024-06-16 16:16:49
EMQ映云科技
EMQ映云科技
杭州映云科技有限公司
176文章数 0关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

"地铁上被诬陷偷拍"男子将直播带货:需面对现实问题

头条要闻

"地铁上被诬陷偷拍"男子将直播带货:需面对现实问题

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

教育
数码
旅游
时尚
艺术

教育要闻

2024新高考全国一卷英语阅读C,大学四级话题下方,并涉四级词汇

数码要闻

优派 XG323-4K-OLED-2 显示器预告:原生 10bit、全功能 Type-C

旅游要闻

@毕业生,江苏这些景区可享免票或优惠

40岁女人的“优雅范”穿搭,夏天学会这么搭,也能美得很轻松

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

无障碍浏览 进入关怀版