MQTT Topic 树状结构(可视化)
🌳 一、MQTT Topic 树状结构(可视化)
┌─ {companyId}
│
├── {roomId} (设备属于房间)
│ │
│ ├── {deviceId}
│ │ ├── state
│ │ ├── control
│ │ ├── event
│ │ └── config
│ │
│ └── scene
│ └── {sceneId}
│ ├── control
│ └── state
│
└── _global (设备不属于任何房间)
│
└── {deviceId}
├── state
├── control
├── event
└── config🧭 二、结构维度可视化(层级模型)
Level 1: Company
↓
Level 2: Room | _global
↓
Level 3: Device | Scene
↓
Level 4: Message Type (state / control / event / config)层级关系说明:
公司(companyId) 是根节点
房间(roomId) 和 global(独立设备) 并列
房间下面可有:
单一设备
场景(由多个设备组成)
最终每个节点都落到 消息类型 topic 上
🏢 三、公司完整 Topic 结构图(推荐规范版)
{companyId}
│
├── {roomId}
│ ├── {deviceId}
│ │ ├── state — 设备状态上报
│ │ ├── control — 控制指令
│ │ ├── event — 设备事件
│ │ └── config — 配置同步
│ │
│ └── scene
│ └── {sceneId}
│ ├── control
│ └── state
│
└── _global
└── {deviceId}
├── state
├── control
├── event
└── config🎯 四、流程型可视化(设备与场景通讯方向)
设备 → 服务器(状态上报)
------------------------------------
{company}/{room}/{device}/state
{company}/_global/{device}/state
服务器 → 设备(控制下发)
------------------------------------
{company}/{room}/{device}/control
{company}/_global/{device}/control
服务器 → 场景(场景控制)
------------------------------------
{company}/{room}/scene/{sceneId}/control
设备 → 服务器(事件)
------------------------------------
{company}/{room}/{device}/event✨ 五、示例可视化(真实业务套用)
假设:
公司:
abc-corp房间:
room-501设备:
light-01,ac-01场景:
meeting-on
abc-corp
│
├── room-501
│ ├── light-01
│ │ ├── state
│ │ ├── control
│ │ └── event
│ │
│ ├── ac-01
│ │ ├── state
│ │ ├── control
│ │ └── event
│ │
│ └── scene
│ └── meeting-on
│ └── control
│
└── _global
└── sensor-01
├── state
├── event
└── control#MQTT #消息队列