IoT 功能设计
这篇解决什么
物联网怎么分层:产品 → 物模型 → 设备。管理端在单体里维护主数据;设备接入是另一套网关进程。读完先对模块边界和表,再进产品、物模型、设备等功能篇。
默认端口 48080,前缀 /admin-api。工程启动见 快速开始。
业务流程及架构
IoT 自己不算流程引擎,没有 processDefinitionKey。先分类再建产品,物模型和设备都挂 productId / productKey。
示意图:管理端只维护产品和物模型。设备连上网关、认证、上报属性,是网关进程的事。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 产品 | iot_product + iot_product_category | 产品管理 |
| 物模型 | iot_thing_model | 物模型配置 |
| 设备 | iot_device | 设备管理 |
| 动态注册 | 一型一密 | 设备动态注册 |
| 网关子设备 | 同行 iot_device | 设备网关与子设备 |
| 协议 | MQTT 等 | 设备接入(概述) |
| 场景 / 告警 / OTA | iot_scene_rule、iot_alert_*、iot_ota_* | 场景联动、告警配置、OTA |
| 移动 | IoT 搬家 | 移动端 IoT |
能力范围
物联网属于全功能版能力。OA 版默认没有 /iot 菜单。
后台开了不等于设备能连上
管理端只维护产品和物模型。设备连上网关、认证、上报属性,是 IotGatewayServerApplication 的事。网关默认另起,端口按协议分(如 MQTT 1883),不要和 48080 混成一个进程。
数据表 ER
主干表按已有篇和 DO 画出。设备时序属性常见落 TDengine,和 MySQL 业务表不是同一套。场景、告警、OTA 从表不进这张图。
示意图:先产品后物模型,再挂设备。分组是设备上的 groupIds,不是中间表。
前后端代码
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 模块 | 产品、设备、物模型、规则、OTA、告警 | ruoyi-office/yudao-module-iot/ |
| 单体引入 | yudao-module-iot-server | ruoyi-office/yudao-server/pom.xml |
| 网关启动类 | 协议接入(MQTT 等) | yudao-module-iot-gateway/.../IotGatewayServerApplication.java |
| 管理端 | 各业务页 | ruoyi-office-vben/apps/web-antd/src/views/iot/ |
官方菜单:4000 IoT 物联网(/iot)。首页 4050 /iot/home(组件 iot/home/index,移动 /pages-statistics/iot/home/index)。产品 4002 /iot/device/product,设备 4008 /iot/device/device,分类 4014 /iot/device/product-category。物模型 4037 默认隐藏。场景 4049 /iot/rule/scene,数据桥梁 4051 /iot/rule/data-bridge。告警 / OTA 页面在 views/iot/alert/、views/iot/ota/,客户 dump 没有对应菜单行。看不到已有菜单先查角色。
微服务可单独起 iot-server(模块配置端口 48112),单体日常不用。pom 注释仍写「默认注释」,依赖块当前是生效的。

本系统截图:IoT 物联网 → IoT 首页。能进说明模块和菜单已经在跑。

本系统截图:产品页。物联网产品在 iot_product,不是商城 SPU,也不是进销存产品。
功能开启
单体 -P boot 时已经依赖 IoT 实现,没有单独的「IoT 开关」页。启动 YudaoServerApplication 即可。
客户默认包 ruoyi-office-db/dump/latest/:iot_product、iot_device、iot_thing_model、iot_device_group、iot_scene_rule、iot_alert_*、iot_ota_* 等。以后改表走 ruoyi-office-db/update/。
能打开「IoT 物联网 → IoT 首页」说明菜单在。
示意图:先菜单和产品。网关按接入协议另开。
旧文 IoT 功能开启 已并入本页,请收藏本篇。
