feat(docs): 添加设备心跳表SQL文档

新增TDengine超级表device_heartbeat的建表语句及EMQX规则引擎配置示例。
This commit is contained in:
2026-08-11 21:25:13 +08:00
parent bc68004c6e
commit 4500f92b15
2 changed files with 75 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
USE iot_log;
-- 创建同时记录上下线状态的超级表
CREATE STABLE IF NOT EXISTS device_status_log (
ts TIMESTAMP, -- 事件发生时间
event VARCHAR(16), -- 事件类型: 'connected' 或 'disconnected'
reason VARCHAR(64), -- 下线原因(上线时填 'clean_start' 或 'none'
peername VARCHAR(64) -- 客户端 IP 及端口
) TAGS (
clientid VARCHAR(128),
username VARCHAR(128)
);
-- emqx 设备离线 rules
SELECT
clientid,
username,
peername,
reason,
disconnected_at AS ts,
'disconnected' AS event
FROM
"$events/client_disconnected"
-- emqx 设备离线 action
INSERT INTO mqtt.device_${clientid}
USING mqtt.device_status_log TAGS ('${clientid}', '${username}')
VALUES (${ts}, '${event}', '${reason}', '${peername}');
-- emqx 设备上线 rules
SELECT
clientid,
username,
peername,
connected_at AS ts,
'connected' AS event
FROM
"$events/client_connected"
-- emqx 设备上线 action
INSERT INTO mqtt.device_${clientid}
USING mqtt.device_status_log TAGS ('${clientid}', '${username}')
VALUES (${ts}, '${event}', 'none', '${peername}');