写点什么

IoT 平台设备标签功能和规则引擎组合最佳实践——实践类

作者:阿里云AIoT
  • 2023-03-08
    浙江
  • 本文字数:976 字

    阅读完需:约 3 分钟

前言

在物联网场景中,设备会部署在不同的位置,而在施工前又很难确定设备位置,后续业务又需要根据设备信息做管理。这种场景我们可以通过 IoT 物联网平台提供的设备动态打标签功能,让程序实现,避免人工录入错误。

我们以智能自动售货柜管理为例,给大家展示设备标签功能。

西湖景区自动售卖机分布情况


image.png


技术方案

每个设备在线后,通过发送数据(publish)到 IoT 平台的标签更新的 Topic 来实现真实坐标更新。

设备标签请求 Topic

       /sys/{productKey}/{deviceName}/thing/deviceinfo/update

设备标签数据 Payload

{  "id": 1570605202,  "version": "1.0",  "params": [    {      "attrKey": "coordinate",//标签(坐标key为coordinate,其他标签可自定义key)      "attrValue": "120.14915:30.230687"//标签值    },    {      "attrKey": "city",//标签      "attrValue": "杭州"//标签值    }  ],  "method": "thing.deviceinfo.update"}
复制代码

智能售货机设备本身有 GPS 模块,我们可以获取到对应的经纬度,通过高德地图解析服务,可以获取到当前所在城市。有了以上信息后,我们发送 Payload 数据到指定 topic,给我们设备打上独特的标签。


image.png


通过云端 API 给设备打标签



​API列表​


日志服务

通过日志服务,我们可以排查具体设备动态打标签的过程。

进入日志服务,选择对应产品,输入要查询的设备 deviceName,在关键词里输入 deviceinfo,点击搜索,就可以筛选出来更新设备标签的消息记录。


image.png


点击 messageID,我们可以看到这条消息的详情信息,包括上报的 topic 和 2 个设备标签数据。


image.png


扩展场景


筛选设备

当设备更新标签后,我们可以按照标签搜索符合条件的设备。


image.png


规则引擎数据流转携带标签信息

规则引擎数据处理 SQL 也支持通过 attribute(key)函数获取 key 所对应的设备标签值。比如 attribute('city')可以获取到值 "杭州"。使用 attribute 函数的 SQL 参考:

SELECT deviceName() as deviceName,timestamp('yyyy-MM-dd HH:mm:ss') as time,attribute('city') as city,price, userId FROM "/a8*****i3B/+/user/order/data"
复制代码


附录


物联网平台产品介绍详情:​​https://www.aliyun.com/product/iot/iot_instc_public_cn​



阿里云物联网平台客户交流群

用户头像

阿里云AIoT

关注

物联网内容搬运者 2022-04-22 加入

还未添加个人简介

评论

发布
暂无评论
IoT平台设备标签功能和规则引擎组合最佳实践——实践类_sql_阿里云AIoT_InfoQ写作社区