Releases: jetlinks/jetlinks-community
Releases · jetlinks/jetlinks-community
2.1
What's Changed
- Bump jsoup from 1.14.3 to 1.15.3 in /jetlinks-components/notify-component/notify-email by @dependabot in #197
- fix(sec): upgrade org.bouncycastle:bcprov-jdk15on to 1.69 by @vvsd in #200
- 解决产品未选择网关时,查询产品配置抛出的NPE by @bestfeng1020 in #202
- 同步协议模块代码 by @bestfeng1020 in #204
- fix-bug by @bestfeng1020 in #206
- Bump commons-text from 1.9 to 1.10.0 by @dependabot in #210
- Bump commons-text from 1.9 to 1.10.0 in /jetlinks-components/network-component/tcp-component by @dependabot in #209
- 代码优化 by @bestfeng1020 in #212
- 重构场景联动 by @bestfeng1020 in #227
- 同步README文档链接 by @kyouji in #230
- 更新2.0版本README by @kyouji in #231
- 添加透传消息转换支持 by @bestfeng1020 in #237
- fix(接口缺失): 添加菜单和权限数据验证接口 by @bestfeng1020 in #245
- fix(阿里云短信): 解决短信模板和标签只能查询第一页数据问题 by @bestfeng1020 in #257
- feat(查询条件): 添加设备查询条件构造器 by @bestfeng1020 in #259
- Bump json from 20180130 to 20230227 by @dependabot in #264
- feat(产品): 根据指定的接入方式获取产品需要的配置定义 by @bestfeng1020 in #266
- fix(网络组件): 设置支持路由设置类型的网络组件可以被复用 by @bestfeng1020 in #273
- feat(通知订阅): 支持告警消息站内信通知 by @bestfeng1020 in #274
- fix(docker镜像版本): 修改前端镜像版本 by @bestfeng1020 in #278
- 修复通过场景联动发送阿里云短信失败问题 by @bestfeng1020 in #279
- 优化重置设备配置信息 by @zeje in #277
- feat(仪表盘): 系统监控添加历史记录支持 by @kyouji in #284
- feat(系统配置): base-path值正确性校验 by @bestfeng1020 in #286
- doc: 修复注释错误 by @zhou-hao in #297
- fix(设备管理): 添加post方式的设备属性列表查询接口 by @bestfeng1020 in #302
- fix(READEME): 修改产品文地址 by @bestfeng1020 in #307
- fix(用户管理): 解决用户管理类型不存在问题 by @bestfeng1020 in #312
- fix(关系): 优化固定值的判断 by @kyouji in #313
- fix(场景联动): 设备触发添加所属产品作为条件 by @kyouji in #314
- feat(系统配置): base-path值正确性校验 by @bestfeng1020 in #318
- build(deps): bump guava from 31.0.1-jre to 32.0.0-jre by @dependabot in #320
- Bump snakeyaml from 1.32 to 2.0 by @dependabot in #253
- fix(系统配置):解决批量保存系统配置可能导致的mysql死锁问题 by @bestfeng1020 in #324
- feat(设备): 导入设备数据,并提供日志下载 by @kyouji in #326
- fix(通知管理): 修复邮件收件方不显示自定义的发件人昵称 by @doveylovey in #327
- fix(系统配置):解决base-path校验可能失效问题 by @bestfeng1020 in #330
- build(deps): bump grpc-protobuf from 1.47.0 to 1.53.0 in /jetlinks-components/configure-component by @dependabot in #331
- fix(文档):修复文案跳转链接错误 by @bestfeng1020 in #332
- fix(场景联动):修复设备选择器条件会无限叠加问题 by @bestfeng1020 in #334
- feat(设备接入网关): 修改MQTT服务网关时,重新加载网络组件 by @kyouji in #336
- fix(通知): 修复获取企业微信部门可能错误问题 by @tancongsir in #351
- doc(基础模块): 修复文档说明错误 by @tancongsir in #359
- fix(设备管理): 优化设备导入校验 by @tancongsir in #354
- refactor(基础模块): 优化excel导入数字类型格式错误提示 by @tancongsir in #356
- perf(设备接入网关): 设备接入网关文案(中文)修改 by @tancongsir in #355
- fix(告警中心): 新增告警配置时默认启用 by @tancongsir in #358
- refactor(认证模块): 加密key校验 by @tancongsir in #364
- fix(设备管理): 修复设备导入空指针异常 by @tancongsir in #362
- fix(设备管理): 删除设备后,解绑子设备 by @tancongsir in #365
- fix(认证模块): 修复更新不存在的角色可能报错问题 by @tancongsir in #368
- feat(服务支持): 添加JetLinks服务器支持说明 by @bestfeng1020 in #369
- feat(服务支持): 添加付费服务支持联系二维码 by @bestfeng1020 in #370
- fix(服务支持): 修改服务支持的联系二维码不显示的问题 by @bestfeng1020 in #374
- feat(通知模块): 重构用户个人通知订阅 by @tancongsir in #376
- fix(服务支持): 修改服务支持的联系二维码不图片分辨率的问题 by @bestfeng1020 in #380
- fix(通知管理): 修复收信人解析为空字符串导致无法发送的问题 by @kyouji in #381
- fix: 重构场景联动,迁移指标函数 by @tancongsir in #384
- fix(产品分类): 修复初始化失败 by @goten7 in #385
- fix(系统配置): 优化base-path请求验证超时提示 by @bestfeng1020 in #383
- feat(readme): DTU接入平台的视频文档说明 by @bestfeng1020 in #386
- fix(设备模块): 解决设备tag没有返回dataType字段 by @tancongsir in #389
- fix(设备模块): 解决修改设备物模型后,设备物模型脱离产品物模型问题 by @tancongsir in #387
- fix(设备模块): 解决tag枚举类型设置无参数问题 by @tancongsir in #393
- fix(场景联动): 解决并行场景告警不触发问题 by @tancongsir in #394
- doc(告警模块): 修改有歧义的字段描述 by @PengyuDeng in #396
New Contributors
- @vvsd made their first contribution in #200
- @kyouji made their first contribution in #230
- @doveylovey made their first contribution in #327
- @tancongsir made their first contribution in #351
- @goten7 made their first contribution in #385
- @PengyuDeng made their first contribution in #396
Full Changelog: 1.13.0...2.1.0
2.0
What's Changed
- Bump jsoup from 1.14.3 to 1.15.3 in /jetlinks-components/notify-component/notify-email by @dependabot in #197
- 解决产品未选择网关时,查询产品配置抛出的NPE by @bestfeng1020 in #202
- 同步协议模块代码 by @bestfeng1020 in #204
- fix-bug by @bestfeng1020 in #206
- 代码优化 by @bestfeng1020 in #212
- 重构场景联动 by @bestfeng1020 in #227
- 更新2.0版本README by @kyouji in #231
- fix(阿里云短信): 解决短信模板和标签只能查询第一页数据问题 by @bestfeng1020 in #258
- feat(查询条件): 添加设备查询条件构造器 by @bestfeng1020 in #260
Full Changelog: 1.13.0...2.0.0
1.20.0
Full Changelog: 1.13.0...1.20.0
1.13 RELEASE
主要优化:
- 升级
netty 4.1.73.Final
以及vertx 4.2.3
版本,支持mqtt5
. - 修复网关子设备通过直连接入到平台时,状态可能不一致问题.
- 修复标签使用object或者array类型时,可能导致无法解析问题.
- 增加统一的文件管理功能
FileManager
,来统一管理相对敏感的文件上传以及访问.
升级说明
文件上传配置调整,协议包,数据导入等相关文件上传已调整使用新的FileManager
进行管理,可根据配置文件进行配置
file:
manager:
storage-base-path: "./data/files"
read-buffer-size: 64KB
cluster-key: file-manager # 修改此值并保证整个集群的值一致
server-node-id: ${jetlinks.server-id}
# cluster-rute:
## 集群ID: 访问地址
# "[jetlinks-platform:8844]": "127.0.0.1:8844"
# "[jetlinks-platform:8840]": "127.0.0.1:8840"
1.12 RELEASE
- 性能优化.
- 增加根据告警记录查询设备相关数据查询条件:
where id dev-alarm 'state not xxx'
. - 修复批量
save
时,可能导致部分数据字段被设置为null. @Subscribe
注解可以使用表达式来引用配置值,如:@Subscribe("/device/${a.b.c:default}")
- 修复默认存储策略聚合查询:相同属性不同聚合方式时,聚合值可能不对的问题.
- 修复同一个设备告警配置多个触发条件时,可能某些条件无法触发问题.
- 升级log4j为
2.17.1
,升级logback为1.2.9
.(平台未直接使用log4j,而是使用log4j-to-slf4j
,最终使用logback). - 设备重复注册时,自动更新配置等相关信息到数据库中.
1.11 RELEASE
主要优化:
- 设备协议
CompositeProtocolSupport.onBeforeDeviceCreate
增加自定义设备信息,在创建设备时,可自定义生成设备的相关配置. - 优化实体事件,增加
EntityBeforeXXX
,EntityPrepareXXX
事件. - 拓展
spring.r2dbc.pool
相关配置,支持配置连接有效期. - 邮件通知模版中表达式增加对html的处理,解决部分富文本编辑器会把表达式转为html.
- 优化菜单管理,可根据菜单进行赋权(前端暂未实现)
- 优化物模型转换时的精度处理.
- 规则引擎事件中的数据增加:
modelType(模型类型)
,jobExecutor(节点执行器)
,ruleConf(规则的其他配置信息)
配置,可在直接从事件数据中获取进行处理. - 在关联子设备时增加循环依赖检查.
BUG修复:
- 修复使用pgsql进行大量insert操作时,pgsql占用内存过高问题.
- 修复存在同类名协议包会出现冲突的问题.
- 修复通知模版表达式中,表达式内容超过128引起数组下标越界问题.
1.10 RELEASE
1.10-RELEASE
更新时间: 2021-08-02
代码分支: 1.10
- 上报属性和读取属性回复增加
属性源时间
和属性状态
;行式存储时,会使用源时间当作时间戳进行存储. - JetLinks后端接口国际化支持(jsr303,枚举(
I18nEnumDict
),异常(I18nSupportException
))。查看说明 - 提供对游标分页查询支持,部分数据库可能不支持offset方式分页,当分页结果中
scoll
为true
时,表示游标分页,此时不支持使用pageIndex
进行分页,下一页查询时需要在动态查询条件中指定上一页返回的scrollId
:"context":{"scrollId":"上一页的ID"}
,并且查询条件变化后,需要重置页码以及scrollId
. - 规则引擎设备指令节点发送指令发生异常时,将返回转为消息回复,而不是抛出异常.
MQTT Broker
方式接入设备支持设置QoS.- 增加
FileQueue
工具类,可将队列数据持久化到本地文件. - 增加
ParallelIntervalHelper
工具类,可对并行操作进行延迟来实现并行转串行的效果. DeviceDataManager
接口增加getTags
方法,可在协议包中通过此方式来获取设备标签.- 在TCP网络组件中的粘拆包处理方式脚本中增加
parser.newBuffer()
方法,使用方法.
1.9 RELEASE
- 增加设备独立物模型支持,可给单独的设备配置物模型.
- 基本实现GB28181国标视频设备接入,支持
直播
,云台控制
,级联操作
.(选配模块) - RabbitMQ增加
routeKey
配置,可在配置文件中指定device.message.writer.rabbitmq.consumer-route-key
和device.message.writer.rabbitmq.producer-route-key
.(Pro) - 当设置了
device.message.writer.rabbitmq.consumer=false
时,不创建MQ消费者.(Pro) - 设备支持独立物模型,可单独配置设备的物模型.
- 适配
tdengine 2.0.16.0
,优化sql长度策略. (pro) - 优化规则引擎编辑器,实现组件模块化动态加载.(Pro)
- 修复启动服务时,如果某个产品物模型发布失败,导致后面的产品终止发布的问题.
- 增加
ignoreLatest
消息头,message.addHeader("ignoreLatest",true)
忽略记录最新数据到数据库. - 修复租户下操作设备告警提示无权限.(Pro)
- 优化租户在解绑成员时,同时解绑成员的资产信息.(Pro)
- 优化子设备消息回复处理
- 物模型属性增加存储方式功能,可配置部分属性不存储.
- 增加虚拟属性功能,可通过规则来计算出虚拟属性值.(Pro)
- 增加租户成员绑定(
TenantMemberBindEvent
),解绑(TenantMemberUnBindEvent
)事件.可通过spring-event
订阅处理此事件.(Pro) - 优化子设备状态检查,当检查子设备状态时,将会尝试发送
ChildDeviceMessage<DeviceStateCheckMessage>
给网关,处理后返回ChildDeviceMessageReply<DeviceStateCheckMessageReply>
. - 增加
ClickHouse
设备数据存储策略支持.(Pro) - 增加权限过滤功能,可配置禁止赋予自己没有的权限给其他用户.
hsweb.permission.filter
相关配置 - 设备和产品的租户绑定逻辑优化: 绑定设备时,自动绑定产品.解绑产品时,自动解绑设备.(Pro)
- 用户管理增加租户权限控制.(Pro)
- 当向
keepOnline
的设备发送消息时,如果原始连接已断开,将返回CONNECTION_LOST
错误. - 设置
keepOnline
的会话将被持久化,重启服务后自动恢复.(Pro) - 默认关闭设备最新数据存储,通过
jetlinks.device.storage.enable-last-data-in-db=true
开启.(Pro) - 属性物模型增加属性值来源,配置为
手动
时,在发送修改属性指令(WritePropertyMessage
)时,将直接生效,不会发送到设备. - 优化租户资产解绑逻辑,当删除数据时,解绑资产全部的绑定关系.(Pro)
- 用户管理,机构管理增加租户端支持,租户可以自己管理自己的用户和机构.(Pro)
1.8 RELEASE
- 固件相关消息增加
size
属性 - 网络组件在集群下可以单独指定节点的配置了(Pro)
- 修复邮件通知无法发送base64图片问题
- 优化设备详情配置查看,通过
device.setConfig
设置的配置也可以在设备详情中查看到. - 增加OneNet和CTWing接入,可将设备同步到对应到平台中.以及从对应平台订阅数据(Pro可选模块)
- 设备实例接口增加批量发送设备指令
/device/instance/messages
,可在消息体中指定deviceId
或者通过where
条件指定要发送到的设备.(Pro) - 优化设备最新消息存储,同一个产品的数据使用串行更新,防止死锁,并且丢弃来不及更新的数据.(Pro)
- 修复es索引中存在多个mapping时无法解析的问题
- 修复分组聚合查询属性时,如果返回过多分组时可能导致无法返回结果的问题.
- 支持将
object
和array
类型的属性使用json字符串
来进行存储,减少es的压力. - 修复无法转发设备消息到
rabbitMQ
和kafka
. - 增加默认物模型,在协议包里可配置默认物模型,创建产品时,自动添加到物模型配置中.
- 发送功能调用指令时,增加参数校验和参数类型转换.(可通过
headers.force
跳过校验) - 优化设备分类数据初始化,默认使用
-
进行id分隔(使用|
可能导致400错误.) - 通过jvm参数
-Djetlinks.eventbus.payload.pool.enabled=true
开启事件总线对象池,提升性能.
1.7.0 RELEASE
- 优化设备配置定义,可以指定配置作用域(单独设置产品的配置或者设备的配置),见
DefaultConfigMetadata.add
方法. - 设备标签查询(
id$dev-tag
)支持表达式:tag1=value1 and tag2=value2
(没有sql注入,放心使用). - 增加支持数据库维护产品分类.
- 优化拉取固件升级逻辑,使用
headers.force
标记是否强制拉取固件,使用headers.latest
标记是否拉取最新的固件信息. (Pro) - 优化设备消息转发逻辑,在
headers
中增加members
,标记此设备所属的用户id.(需要重新激活设备) (Pro) - 优化告警推送逻辑,解决租户添加了告警通知时,无法订阅新添加的设备告警问题.(Pro)
- 增加
Headers.mergeLatest
消息头,设备属性相关消息设置此头,将合并旧的属性数据到消息中.(此操作会降低系统吞吐量)(Pro) - 修复集群下,修改物模型后其他节点不会生效问题。
- 优化设备指令下发,指令消息ID和设备id进行绑定防止重复。
- 事件总线集群通信增加RSocket支持以提升性能,通过配置
jetlinks.event-bus.roskcet.enabled
开启.(Pro) - ReactorQL增加
_window_until
和_window_until_change
函数.(Pro) - 优化事件总线性能,在使用
TopicPayload
后需要手动调用release()
释放资源. - 优化
设备数据行式存储策略
:取消存储propertyName
,formatValue
字段,influxdb
下只存储numberValue
,timeValue
,value
. - 优化物模型拓展信息配置,可在协议包中
support.setExpandsConfigMetadata
来指定配置(需要升级jetlinks-core 1.1.4) - 增加内存使用检查,当内存使用剩余低于15%时,丢弃请求防止内存溢出导致系统崩溃.可通过启动参数
-Dmemory.waterline=0.15
进行配置.(Pro) - 优化
elasticsearch
和influxdb
写入策略,丢弃无法写入的Buffer防止内存溢出.(Pro) - 优化设备网关消息处理逻辑、优化子设备上线处理逻辑、优化自注册逻辑、离线消息无论设备是否已经离线,事件总线都将会收到消息.
- 优化
influxdb
查询条件的类型转换,修复如果使用数字作为设备id,无法查询到数据.(Pro) - 设备数据转发到机构topic中
/org/device/**
,可通过headers.orgId
获取当前设备机构ID。(需要再次激活设备). - 可通过
DeviceMessage.addHeader("ignoreLog",true)
指定不记录此消息日志.