ThingsBoard使用笔记(5)使用规则链将设备信息转发至外部mqtt
使用场景需要将 tb 从网关接收到的设备信息保存到自己的项目中。配置步骤tb 系统属性这里需要使用到规则链中属性集的 originator fields发送者字段添加消息发送者字段值到消息元数据中将获取在映射中指定的字段值。如果指定的字段不是发起者字段的一部分,它将被忽略。可以添加的系统属性值为 device 表中的字段,CREATE TABLE "public"."device" ("id" u
·
使用场景
需要将 tb 从网关接收到的设备信息保存到自己的项目中。
配置步骤
tb 系统属性
这里需要使用到规则链中属性集的 originator fields
发送者字段添加消息发送者字段值到消息元数据中将获取在映射中指定的字段值。如果指定的字段不是发起者字段的一部分,它将被忽略。
可以添加的系统属性值为 device 表中的字段,
CREATE TABLE "public"."device" (
"id" uuid NOT NULL,
"created_time" int8 NOT NULL,
"additional_info" varchar COLLATE "pg_catalog"."default",
"customer_id" uuid,
"type" varchar(255) COLLATE "pg_catalog"."default",
"name" varchar(255) COLLATE "pg_catalog"."default",
"label" varchar(255) COLLATE "pg_catalog"."default",
"search_text" varchar(255) COLLATE "pg_catalog"."default",
"tenant_id" uuid,
CONSTRAINT "device_pkey" PRIMARY KEY ("id"),
CONSTRAINT "device_name_unq_key" UNIQUE ("tenant_id", "name")
)
;
这里我们添加设备 id,设备区域
然后从Message Type Switch 连接到系统属性
Post attributes 为设备属性数据
Post telemetry 为设备遥测数据
转换器
转换器的作用是将 tb 的 json 信息转换我们想要的格式
return {
msg: {
ts: metadata['ts'],
deviceId: metadata['id'],
msgType: msgType,
deviceType: metadata['deviceType'],
deviceName: metadata['deviceName'],
label: metadata['label'],
msg: msg
},
metadata: metadata,
msgType: msgType
};
发送 mqtt
添加 mqtt 模块,填写自己的 mqtt 地址以及订阅主题,这里我使用的 emqx
模拟设备信息
之前测试的时候使用过 js 模拟 mqtt 连接网关发送设备数据,tb 也有自带的模拟设备,添加一个规则链模块即可
添加 generator 模块
新建 1 个模拟设备,因为需要取出设备 id,他就得是个设备
编辑模拟设备信息
使用调试模式可以看到设备 id 已经带上了
使用 mqttbox 测试
可以看到 mqtt 已经可以订阅到设备信息,那么这些信息怎么使用,能干什么,就可以为所欲为了
更多推荐
所有评论(0)