使用场景

需要将 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 已经可以订阅到设备信息,那么这些信息怎么使用,能干什么,就可以为所欲为了

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐