背景
IoT场景中,设备往往会定时上报自己当前的运行状态参数,供运维人员查看设备状态。
架构方案
开发实战
1.水泵定时上报业务消息
水泵监控场景中,每10分钟会定时上报运行状态到IoT平台,具体通信Topic和payload如下:
// 定时上报运行状态的Topic
/${productKey}/${deviceName}/user/bizHeart/post
// 对应payload结构体
{
status: 'RUNNING', //运行状态 RUNNING,STOP,SHUTDOWN
speed: 3000, //当前转速
waterOutput: 125,//当前出水量
workingTime: 72//工作时长 xx分钟
}
2.表格存储设计
创建一个数据表,以设备deviceName为主键,扩展信息为设备当前状态。
3.规则引擎配置
设备上报数据后,通过规则引擎实时流转到表格存储中。
3.1 数据处理SQL
SELECT
deviceName() as deviceName,
attribute('coordinate') as coordinate,
attribute('city') as city,
timestamp('yyyy-MM-dd HH:mm:ss') as currentTime,
status,speed,waterOutput,workingTime
FROM
"/a1vYwzHjT6p/+/user/bizHeart/post"
3.2 数据转发
4.设备运行
4.1 设备基本信息,和设备标签
4.2 设备上报的消息日志
4.3 消息流转日志
4.4 表格存储中设备信息
结束语
通过以上方案,设备状态上报时,自动更新到表格存储中。我们就可以提供deviceName在表格存储中查到设备当前运行状态。