自定义主题GS200照明设备接入ThingsPanel

发布日期:


目标

GS200是一个软硬件一体的照明系统,设备和主题是固定的,现在我们的目的是要把这个系统接入进来


接入进来之后,就能实现如下图所示的上报和控制功能。

经过小部分的界面开发工作,可以完全实现如下控制界面所示功能。

要实现这个目的,我们就需要使用ThingsPanel自定义主题结合脚本功能来实现。

分析

这个文档长达66页面。


通过分析,发现整个报文分为上报遥测和下发控制两部分报文规范,分别在附件一和附件二

下发的实例:

{"code":100,"deviceName":"lampNode","area":"00 01","address":"00 03","action":"blink","params":"","identity":""}
说明:code=100,代表单灯控制,指令含义为 1区3号的灯闪一闪。

如果需要上报,需要先询问,设备才上报

所以我我们只需要处理两个规范即可。

操作

进入协议配置页面

进入设备模板详情页

点击「协议配置」标签页

选择协议类型为「MQTT」

添加上行主题映射

点击「添加」按钮

填写映射信息:映射名称:规则名称(必填)

数据方向:选择「发布:上行(设备 → 云)」

原始主题:设备实际发布的主题,支持 + 占位符  : /sys/ProductKey1/abc123456/thing/event/consumption/post

目标主题:平台规范主题(下拉选择)

描述:可选说明

点击「保存」

添加下行主题映射

点击「添加」按钮

填写映射信息:映射名称:规则名称(必填)

数据方向:选择「订阅:下行(云 → 设备)」

原始主题:设备实际订阅的主题,必须包含 {device_number}

/sys/ProductKey1/abc123456/thing/event/beacon/post

目标主题:平台规范主题(下拉选择)

 devices/command/{device_number}/+

命令标识符(可选):用于多映射场景,匹配 payload 中的 method 字段

描述:可选说明

点击「保存」

配置数据处理

如果需要处理数据,需要自行编辑脚本。在如下图的编辑框中。

也可以使用AI工具去写。

在设备模板详情页,点击「数据处理」标签页

  • 点击「新增数据处理」按钮
  • 选择处理类型:上报数据预处理:处理设备上报的遥测数据
  • 下发数据预处理:处理平台下发的控制数据
  • 属性上报/下发预处理:处理属性相关数据
  • 指令下发预处理:处理指令下发数据
  • 事件上报预处理:处理事件上报数据
  • 配置数据处理规则(如字段映射、格式转换等)

保存配置

测试验证

ThingsPanel给设备下发

填写示例:beacon就是命令标识符。

命令里面就不需要beacon

列表显示下发成功

自动带了method:beacon,注意下发命令的时候不需要有这一层。

下图中包含了上报和下发控制两个示例

1、          code:400的报文是ThingsPanel下发给设备后,mqttx客户端订阅到的信息,说明设备端确实可以收到。

2、          /sys/ProductKey的报文是上报遥测给ThingsPanel,发送了一个数据test,值为1

发送后:

ThingsPanel收到消息如图:确实收到了。


注意事项

1.    占位符规则

支持 +(单层匹配),不支持 #(多层匹配)

下行原始主题必须包含 {device_number} 变量

2.    多映射匹配

下行主题转换时,优先匹配 data_identifier 不为空的配置

匹配成功时,payload 会被精简为 params 部分

未匹配时,使用 data_identifier 为空的兜底配置,payload 保持原样

3.    主题转换与数据处理

主题转换负责主题映射,数据处理负责报文内容转换

两者可配合使用,实现完整的非规范设备接入方案

处理顺序:主题转换 → 数据处理

Github
Gitee
微信交流群
QQ交流群
商务咨询
北京极益科技有限公司 版权所有 ICP:京ICP备15045763号-12