物联网平台与kettle技术的结合
Posted qingxinziran007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了物联网平台与kettle技术的结合相关的知识,希望对你有一定的参考价值。
上篇文章介绍了如何将tb的rest接口出参数据格式通过kettle平台转换为最合适的出参格式。本篇文章将接着上篇文章,通过kettle平台来处理tb的websocket接口。
提出问题:
websocket接口如何统一格式?
tb中获取设备的遥测数据是这样的。
{
"EA": [
{
"ts": 1479735870786,
"value": "0"
},
{
"ts": 1479735871857,
"value": "0"
}
],
"ER": [
{
"ts": 1479735870786,
"value": "0"
},
{
"ts": 1479735871857,
"value": "0"
}
]
}
而我们正常需要的数据出参,应该是这样的:
{
"success":true,
"resultCode":"0",
"resultMsg":null,
"result":{
"id":"53884a40-8554-11eb-bccd-c11a74ecd150",
"name":"1_G01",
"state":false,
"cmdId":10,
"nickName":"电源进线",
"note":"电源进线",
"data":[
{
"key":"EA",
"val":"0",
"dw":"kWh",
"max":null,
"min":null,
"danger":false,
"note":"未知"
},
{
"key":"ER",
"val":"0",
"dw":"kVarh",
"max":null,
"min":null,
"danger":false,
"note":"未知"
}
]
}
}
如何将tb原始的格式,转换为我们需要的格式呢?
解决方案:
- 通过修改tb的源码进行解决
修改tb源码,会导致管理后台的websocket不可用,不能实时的查看数据。如果采用修改源码的方式,那就必须修改后端java代码,和前端angularjs代码。如果对平台不够熟悉很有可能导致系统的不可用。
- 通过基于kettle的数据平台解决
kettle平台通过将websocket的数据进行透传,然后对每一条返回的数据进行定制化处理。并最终转换为我们需要的websocket格式。
演示:
创建kettle文件,并在kettle中进行websocket数据格式转换。
在kettle平台中上传转换文件,并配置服务。
websocket在线测试。
查看日志。
总结 :
本篇文章通过将tb的websocket接口进行格式转换已达到业务需求的目的,同时也证明了kettle平台功能的强大。目前这些功能已经用于生产环境,并且非常稳定可靠。下一篇文章将介绍如何将tb的接口进行聚合,来适配各种不同的业务场景。
以上是关于物联网平台与kettle技术的结合的主要内容,如果未能解决你的问题,请参考以下文章