版本日志
大约 5 分钟changelogversion
🚀 1.2.0.RELEASE,支持与BladeX架构无缝集成
一、物模型 bool 类型默认映射大屏 TdEngine bool(老版本为 int)
- ✨ 调整 TdEngine 类型 bool 物模型的映射,可支持 true、false、0、1、'true'、'false'、'0'、'1' 值的写入。
- 若之前版本使用TdEngine,并且设计bool类型的物模型,需要将TdEngine的超级表删掉后再次发布物模型重新生成。
二、 添加 influxdb v2.x 时序库支持
配置说明:
- influxdb2 扩展没有支持自动建库(org 和 bucket),另外只支持
token
(我们认为 token 比账号更加安全一些)。
其他说明:
- influxdb2 中 org 是类似租户的概念,数据是隔离的。bucket 是类型 mysql 中的库的概念。
- influxdb2、influxdb 现在配置的默认都是毫秒的写入精度如果要调整,查询那也需要调整(后续会改成配置自适应)。
三、 支持与BladeX架构无缝对接
- 后端在BladeX-Links的基础上,覆盖BladeX-Boot的代码实现升级
- 前端在Saber3的基础上,覆盖BladeX-Links-UI的代码实现升级
- 无缝对接文档请见:https://iot.bladex.cn/tech/framework/intro.html
🚀 1.1.0.RELEASE,时序库统一接口 支持tdengine、iotdb、influxdb
一、设备 http 动态注册和 mqtt 子设备注册
- 设备注册和子设备注册添加设备描述 deviceDesc 字段。
- 添加
uniqueNo
并默认使用它进行签名,注意:以前是使用的deviceName
- 调整
deviceName
字段意图(变为可选字段),传了该字段,后端不会生成唯一的deviceName
会以传递的deviceName
为准,方便其他平台设备迁移。
二、mqtt topic 设备上下线
设备:
- 添加 Topic 上线支持:
/blade/ext/session/${productKey}/${deviceName}/login
- 添加 Topic 下线支持:
/blade/ext/session/${productKey}/${deviceName}/logout
子设备:
- 添加 Topic 上线支持:
/blade/ext/session/${productKey}/${deviceName}/combine/login
- 添加 Topic 下线支持:
/blade/ext/session/${productKey}/${deviceName}/combine/logout
- 添加 Topic 批量上线支持:
/blade/ext/session/${productKey}/${deviceName}/combine/batch_login
- 添加 Topic 批量下线支持:
/blade/ext/session/${productKey}/${deviceName}/combine/batch_logout
注意:子设备上线需要签名,批量上线目前不需要。
三、mqtt 批量数据、事件上报
- 添加 Topic 批量和事件上报 Topic:
/blade/sys/${productKey}/${deviceName}/thing/event/property/pack/post
数据结构如下:
{
"id": "123",
"version": "1.0",
"sys":{
"ack":0
},
"params": {
"properties": {
"Power": {
"value": "on",
"time": 1524448722000
},
"WF": {
"value": { },
"time": 1524448722000
}
},
"events": {
"alarmEvent1": {
"value": {
"param1": "on",
"param2": "2"
},
"time": 1524448722000
},
"alertEvent2": {
"value": {
"param1": "on",
"param2": "2"
},
"time": 1524448722000
}
},
"subDevices": [
{
"identity": {
"productKey": "",
"deviceName": ""
},
"properties": {
"Power": {
"value": "on",
"time": 1524448722000
},
"WF": {
"value": { },
"time": 1524448722000
}
},
"events": {
"alarmEvent1": {
"value": {
"param1": "on",
"param2": "2"
},
"time": 1524448722000
},
"alertEvent2": {
"value": {
"param1": "on",
"param2": "2"
},
"time": 1524448722000
}
}
}
]
},
"method": "thing.event.property.pack.post"
}
四、添加 iotdb、TdEngine 时序库支持(默认开启写入)
目前已经支持 influxdb 1.x
、iotdb 1.3.x
、tdengine 3.x
(默认:tdengine)。
注意:对于目前支持的这几款时序库,均实现了自动建库,不需要手动建库,配置好数据库名即可,
依赖切换
<!-- influxdb 时序库 -->
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-tsdb-influxdb</artifactId>
</dependency>
<!-- iotdb 时序库 -->
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-tsdb-iotdb</artifactId>
</dependency>
<!-- tdengine 时序库 -->
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-tsdb-tdengine</artifactId>
</dependency>
influxdb 配置
influxdb:
enabled: true # 是否开启,多个时序库插件依赖同时导入可采用此参数配置,开启的时序库
url: http://127.0.0.1:8086 # influxdb url
username: admin
password: links
database: links # 数据库名,会自动建库
# 批量写入相关配置
enable-batch: true # 开启批量,默认:true
batch-size: 1000 # 批次大小,默认:1000
flush-duration: 1s # 批次写入时间,默认:1s 写入一次
# 其他配置
precision: nanoseconds # 数据精度,默认:纳秒
enable-gzip: true # 开启 gzip 压缩,默认:true
iotdb 配置
iotdb:
enabled: true # 是否开启,多个时序库插件依赖同时导入可采用此参数配置,开启的时序库
host: localhost # 用于单机:指定 iotdb ip,默认:localhost
port: 6667 # 用户单机:指定 iotdb 端口,默认:6667
node-urls: # 用于 iotdb 集群,默认:空
username: root # 账号,默认:root
password: root # 密码,默认:root
# 批量写入相关配置
enable-batch: true # 开启批量写,默认:开
batch-size: 1000 # 批次大小,默认:1000
flush-duration: 1s # 批次写入时间,默认:1s 写入一次
# 连接池配置
max-size: 5 # 连接池大小,默认:5,生产环境可以适量调大
fetch-size: 5000 # 查询一个批次最大的大小,默认:5000
tdengine 配置
tdengine:
enabled: true # 是否开启,多个时序库插件依赖同时导入可采用此参数配置,开启的时序库
username: root
password: taosdata
database: links # 库名,会自动建库
jdbc-url: jdbc:TAOS-RS://192.168.31.31:6041?useSSL=false
# 数据精度,默认:毫秒
precision: ms
# 数据保存的天数,默认:10年
keep: 3650
# 批量写入相关配置
enable-batch: true # 开启批量写,默认:开
batch-size: 1000 # 批次大小,默认:1000
flush-duration: 1s # 批次写入时间,默认:1s 写入一次
# 连接池相关配置,都采用的 Druid 默认配置,可按需求进行配置,建议改大一些
initial-size: 0 # 初始化的连接数,默认:0
max-active: 8 # 最大活跃连接数,默认:8
min-idle: 0 # 最小活跃连接数,默认:0
max-wait: -1 # 最大等待时间,默认:-1 不限制
tdengine开发细节注意:
- TDEngine 自动创建 属性存储 超级表的时机为 物模型发布,需要在平台建立并 发布物模型 之后才能写入数据。
- 已经发布的 物模型字段类型不支持直接更改 需要先删除发布后再重建, 因为 TDEngine 默认不支持数据类型调整。
- 已经发布的 text 字段类型的长度只能增加,不能减少,开发是需要合理的考虑长度。要不然只能先删除字段发布后再重建。
五、租户处理
完善对设备动态注册(需要添加 租户id 字段)和 mqtt 消息的租户 id 处理(mqtt 连接 clientId 带上租户)
🚀 1.0.0.RELEASE,物联网平台的首个正式版本
- 品类管理
- 分组管理
- 产品管理
- 物模型管理
- 版本快照与回退
- 设备管理
- 设备模拟器
- 设备调试器
- 服务端订阅
- 消费组配置
- 协议转换
- 多渠道告警通知
- Broker自建服务器
- MQTT与AMQP转发
- 多租户管理
- 系统管理
- 规则引擎
- 边缘网关