通过ThingsBoard向TTN发送定时及自定义下行消息的实现咨询
ThingsBoard+TTN定时下行自定义payload实现方案
前置确认
确保你现有TTN集成已开启下行权限,记录好设备使用的下行端口号、TTN应用访问密钥、设备DevEUI信息。
1. 新增可编辑的下行payload属性
进入对应设备的详情页,在「服务端属性」栏目新增属性:
- 属性名:
downlink_payload - 初始值:填入你需要的默认6字节十六进制字符串,例如
A1B2C3D4E5F6
该属性后续支持用户直接修改,无需调整规则链逻辑。
2. 配置规则链实现定时下行
打开核心规则链编辑器,按顺序添加并连接以下节点:
- 定时器触发节点:配置执行周期为「每1小时执行一次」,触发对象选择你要下发的目标设备
- 服务端属性获取节点:配置查询目标设备的
downlink_payload属性,将属性值写入消息元数据 - 脚本转换节点:输入以下转换逻辑,构造符合TTN要求的下行消息格式:
// 可根据实际情况修改port、confirmed参数 msg = { "dev_eui": metadata["dev_eui"], "port": 1, "confirmed": false, "payload_raw": metadata["downlink_payload"] } return {msg: msg, metadata: metadata, msgType: msgType}
- TTN下行节点:填入你的TTN应用ID、访问密钥等配置,将转换后的消息推送到TTN平台
3. 配置用户编辑入口
在现有数据仪表板新增控件:
- 选择「文本输入」控件,绑定数据源为目标设备的服务端属性
downlink_payload - 配置输入校验规则:仅允许输入十六进制字符,长度固定为12位(对应6字节)
用户直接在仪表板修改该输入框的内容并保存,即可更新后续下发的payload内容。
4. 功能验证
- 手动触发规则链的定时器节点,查看TTN控制台的下行日志确认消息正常下发
- 调整
downlink_payload的值后再次触发,验证设备收到的payload与设置值一致 - 等待1个周期验证定时触发逻辑正常运行
内容的提问来源于stack exchange,提问作者Balamurugan Sadasivam
相关产品推荐
相关产品推荐

