-
- Gateway 透传编解码改为 IotMessageSerializer.encodeRaw/decodeRaw,移除 IotShadowPassthroughCodec - 下行 reply 扁平为 { method, code, msg, data },version/timestamp 收进 data(Breaking) - 扩展 IotDeviceShadowProtocolUtils,biz/gateway 测试同步适配 -
- 删除 `iot_device_shadow` 表的 SQL 定义及相关菜单权限插入语句。 - 重构 `IotDeviceShadowController`,使用新的 `IotDeviceShadowProtocolUtils` 处理影子状态的时间戳。 - 更新 Redis DAO 和服务实现,确保影子数据的缓存逻辑与新工具类兼容。 - 增加影子透传编解码逻辑,支持 JSON 格式的设备透传。 - 补充单元测试,确保新逻辑的正确性与稳定性。
-
实现 desired/reported 状态存储与同步,提供查询、期望下发、开关控制与重置接口; 网关支持 thing.shadow.update/get 透传协议,并补充单元测试与菜单权限 SQL。
-
- 新增 IotKafkaMessageBus,支持 IoT gateway 与 yudao-server 通过 Kafka 通信 - 增加 type=kafka 自动配置,并补充消息总线类型说明 - 为 iot-gateway 补充 spring-kafka 依赖和 Kafka 连接配置 - 将 iot-gateway 与 yudao-server 的 IoT message-bus 默认切换为 kafka
-
- 新增 IotKafkaMessageBus,支持 IoT gateway 与 yudao-server 通过 Kafka 通信 - 增加 type=kafka 自动配置,并补充消息总线类型说明 - 为 iot-gateway 补充 spring-kafka 依赖和 Kafka 连接配置 - 将 iot-gateway 与 yudao-server 的 IoT message-bus 默认切换为 kafka
-
Merge pull request !1544 from 熊猫大侠/master-jdk17-iotalert
-
Merge pull request !1543 from 熊猫大侠/master-jdk17-iotscene
-
- 泛化 Modbus 轮询任务为 taskKey,保持默认单点轮询兼容 - 支持 TCP Client 按功能码、轮询间隔和连续地址聚合读取段 - 新增区间读取方法,批量读取后按点位切片上报 - 按 Modbus 单次读取上限拆分读取段 - 补充连续、重叠、拆段和线圈切片单测 https://github.com/YunaiV/ruoyi-vue-pro/issues/1147
-
- 调整 MyBatisUtils.findInSet 使用 MyBatis-Plus 参数绑定 - 增加 columnName 白名单校验,避免列名被注入 - 补充 H2 兼容实现,恢复相关单测覆盖 - 替换各模块动态 FIND_IN_SET 字符串拼接写法 - 补充单参数、多参数绑定场景单测
-
- 抽取物模型属性值转换到 ThingModelService - 支持 ENUM、DATE、BOOL、STRUCT、ARRAY、TEXT 等 TDengine 类型转换 - 跳过 null、非字符串 key 和无效值,并补充单测
-
- 过滤 RPC Modbus 配置列表中的已删除设备 - Modbus TCP Server 刷新配置时清理失效设备资源 - 停止轮询任务并清理 Pending 请求、配置缓存和连接
-
Merge pull request !1540 from 熊猫大侠/master-jdk17-iotalert
-
…MQTT 8KB 上限;@Async 写入加 try/catch 避免静默失败
-
- saveDeviceProperty 改用忽略大小写匹配物模型,统一以 identifier 作为 properties / Redis 缓存的 key, 避免设备上报 key 与物模型 identifier 大小写不一致时被丢弃,并与 Controller 读取 Redis 时使用的 key 对齐 - BOOL 类型先按布尔语义解析再转 0/1,避免 Convert.toByte("true") 走 Byte.parseByte 抛 NumberFormatException - 新增 IotDevicePropertyServiceImplTest,覆盖大小写匹配 / BOOL 各种入参形态 -
- IotAlertTriggerSceneRuleAction 实现 sendAlertMessage:按 receiveTypes 分别走短信 / 邮件 / 站内信通道,逐通道 try/catch 隔离失败 - IotAlertReceiveTypeEnum 新增 templateCode 字段与 of(Integer) 静态查找 - IotAlertRecordService.createAlertRecord 增加 IotDeviceDO 入参,由调用方 在 execute 中一次性回源缓存,避免每个告警配置重复查询 - 新增 IotAlertTriggerSceneRuleActionTest 单元测试
-
- IotDeviceMessage/IotDeviceMessageDO/IotDeviceMessageRespVO: thing.property.report→thing.property.post - IotDeviceMessageMethodEnum: OTA 固定信息推送→OTA 固件信息推送
-
1. 新增 3 个 DTO: - IotDevicePropertySetReqDTO:属性设置(下行) - IotDeviceServiceInvokeReqDTO:服务调用(下行) - IotDeviceConfigPushReqDTO:配置推送(下行) 2. 所有现有 DTO 的 javadoc 补充 {@link IotDeviceMessageMethodEnum#XXX} 引用 -
1. 新增 3 个 DTO: - IotDevicePropertySetReqDTO:属性设置(下行) - IotDeviceServiceInvokeReqDTO:服务调用(下行) - IotDeviceConfigPushReqDTO:配置推送(下行) 2. 所有现有 DTO 的 javadoc 补充 {@link IotDeviceMessageMethodEnum#XXX} 引用
-
新增 IotDeviceStateUpdateReqDTO、IotDeviceOtaUpgradeReqDTO、IotDeviceOtaProgressReqDTO, 替换 IotDeviceMessage 和 IotOtaTaskRecordServiceImpl 中的裸 Map 构造和解析, 删除 IotDeviceMessage.buildOtaUpgrade() 方法。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>