Jetlinks Community Versions Save

JetLinks 基于Java8,Spring Boot 2.x ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的企业级物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议等设备。实时数据处理,设备告警,消息通知,数据转发。地理位置,数据可视化等。能帮助你快速建立物联网相关业务系统。

2.1.0

9 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/jetlinks/jetlinks-community/compare/1.13.0...2.1.0

2.0.0

9 months ago

What's Changed

Full Changelog: https://github.com/jetlinks/jetlinks-community/compare/1.13.0...2.0.0

1.13.0

1 year ago

主要优化:

  1. 升级netty 4.1.73.Final以及vertx 4.2.3版本,支持mqtt5.
  2. 修复网关子设备通过直连接入到平台时,状态可能不一致问题.
  3. 修复标签使用object或者array类型时,可能导致无法解析问题.
  4. 增加统一的文件管理功能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.0

2 years ago
  1. 性能优化.
  2. 增加根据告警记录查询设备相关数据查询条件: where id dev-alarm 'state not xxx'.
  3. 修复批量save时,可能导致部分数据字段被设置为null.
  4. @Subscribe注解可以使用表达式来引用配置值,如: @Subscribe("/device/${a.b.c:default}")
  5. 修复默认存储策略聚合查询:相同属性不同聚合方式时,聚合值可能不对的问题.
  6. 修复同一个设备告警配置多个触发条件时,可能某些条件无法触发问题.
  7. 升级log4j为2.17.1,升级logback为1.2.9.(平台未直接使用log4j,而是使用log4j-to-slf4j,最终使用logback).
  8. 设备重复注册时,自动更新配置等相关信息到数据库中.

1.11.0

2 years ago

主要优化:

  1. 设备协议CompositeProtocolSupport.onBeforeDeviceCreate增加自定义设备信息,在创建设备时,可自定义生成设备的相关配置.
  2. 优化实体事件,增加EntityBeforeXXX,EntityPrepareXXX事件.
  3. 拓展spring.r2dbc.pool相关配置,支持配置连接有效期.
  4. 邮件通知模版中表达式增加对html的处理,解决部分富文本编辑器会把表达式转为html.
  5. 优化菜单管理,可根据菜单进行赋权(前端暂未实现)
  6. 优化物模型转换时的精度处理.
  7. 规则引擎事件中的数据增加:modelType(模型类型),jobExecutor(节点执行器),ruleConf(规则的其他配置信息)配置,可在直接从事件数据中获取进行处理.
  8. 在关联子设备时增加循环依赖检查.

BUG修复:

  1. 修复使用pgsql进行大量insert操作时,pgsql占用内存过高问题.
  2. 修复存在同类名协议包会出现冲突的问题.
  3. 修复通知模版表达式中,表达式内容超过128引起数组下标越界问题.

1.10.0

2 years ago

1.10-RELEASE

更新时间: 2021-08-02

代码分支: 1.10

  1. 上报属性和读取属性回复增加属性源时间属性状态;行式存储时,会使用源时间当作时间戳进行存储.
  2. JetLinks后端接口国际化支持(jsr303,枚举(I18nEnumDict),异常(I18nSupportException))。查看说明
  3. 提供对游标分页查询支持,部分数据库可能不支持offset方式分页,当分页结果中scolltrue时,表示游标分页,此时不支持使用pageIndex进行分页,下一页查询时需要在动态查询条件中指定上一页返回的scrollId:"context":{"scrollId":"上一页的ID"},并且查询条件变化后,需要重置页码以及scrollId.
  4. 规则引擎设备指令节点发送指令发生异常时,将返回转为消息回复,而不是抛出异常.
  5. MQTT Broker方式接入设备支持设置QoS.
  6. 增加FileQueue工具类,可将队列数据持久化到本地文件.
  7. 增加ParallelIntervalHelper工具类,可对并行操作进行延迟来实现并行转串行的效果.
  8. DeviceDataManager接口增加getTags方法,可在协议包中通过此方式来获取设备标签.
  9. 在TCP网络组件中的粘拆包处理方式脚本中增加parser.newBuffer()方法,使用方法.

1.9.0

2 years ago
  1. 增加设备独立物模型支持,可给单独的设备配置物模型.
  2. 基本实现GB28181国标视频设备接入,支持直播,云台控制,级联操作.(选配模块)
  3. RabbitMQ增加routeKey配置,可在配置文件中指定device.message.writer.rabbitmq.consumer-route-keydevice.message.writer.rabbitmq.producer-route-key.(Pro)
  4. 当设置了device.message.writer.rabbitmq.consumer=false时,不创建MQ消费者.(Pro)
  5. 设备支持独立物模型,可单独配置设备的物模型.
  6. 适配tdengine 2.0.16.0,优化sql长度策略. (pro)
  7. 优化规则引擎编辑器,实现组件模块化动态加载.(Pro)
  8. 修复启动服务时,如果某个产品物模型发布失败,导致后面的产品终止发布的问题.
  9. 增加ignoreLatest消息头,message.addHeader("ignoreLatest",true) 忽略记录最新数据到数据库.
  10. 修复租户下操作设备告警提示无权限.(Pro)
  11. 优化租户在解绑成员时,同时解绑成员的资产信息.(Pro)
  12. 优化子设备消息回复处理
  13. 物模型属性增加存储方式功能,可配置部分属性不存储.
  14. 增加虚拟属性功能,可通过规则来计算出虚拟属性值.(Pro)
  15. 增加租户成员绑定(TenantMemberBindEvent),解绑(TenantMemberUnBindEvent)事件.可通过spring-event订阅处理此事件.(Pro)
  16. 优化子设备状态检查,当检查子设备状态时,将会尝试发送ChildDeviceMessage<DeviceStateCheckMessage>给网关,处理后返回ChildDeviceMessageReply<DeviceStateCheckMessageReply>.
  17. 增加ClickHouse设备数据存储策略支持.(Pro)
  18. 增加权限过滤功能,可配置禁止赋予自己没有的权限给其他用户.hsweb.permission.filter相关配置
  19. 设备和产品的租户绑定逻辑优化: 绑定设备时,自动绑定产品.解绑产品时,自动解绑设备.(Pro)
  20. 用户管理增加租户权限控制.(Pro)
  21. 当向keepOnline的设备发送消息时,如果原始连接已断开,将返回CONNECTION_LOST错误.
  22. 设置keepOnline的会话将被持久化,重启服务后自动恢复.(Pro)
  23. 默认关闭设备最新数据存储,通过jetlinks.device.storage.enable-last-data-in-db=true开启.(Pro)
  24. 属性物模型增加属性值来源,配置为手动时,在发送修改属性指令(WritePropertyMessage)时,将直接生效,不会发送到设备.
  25. 优化租户资产解绑逻辑,当删除数据时,解绑资产全部的绑定关系.(Pro)
  26. 用户管理,机构管理增加租户端支持,租户可以自己管理自己的用户和机构.(Pro)

1.8.0

3 years ago
  1. 固件相关消息增加size属性
  2. 网络组件在集群下可以单独指定节点的配置了(Pro)
  3. 修复邮件通知无法发送base64图片问题
  4. 优化设备详情配置查看,通过device.setConfig设置的配置也可以在设备详情中查看到.
  5. 增加OneNet和CTWing接入,可将设备同步到对应到平台中.以及从对应平台订阅数据(Pro可选模块)
  6. 设备实例接口增加批量发送设备指令/device/instance/messages,可在消息体中指定deviceId或者通过where条件指定要发送到的设备.(Pro)
  7. 优化设备最新消息存储,同一个产品的数据使用串行更新,防止死锁,并且丢弃来不及更新的数据.(Pro)
  8. 修复es索引中存在多个mapping时无法解析的问题
  9. 修复分组聚合查询属性时,如果返回过多分组时可能导致无法返回结果的问题.
  10. 支持将objectarray类型的属性使用json字符串来进行存储,减少es的压力.
  11. 修复无法转发设备消息到rabbitMQkafka.
  12. 增加默认物模型,在协议包里可配置默认物模型,创建产品时,自动添加到物模型配置中.
  13. 发送功能调用指令时,增加参数校验和参数类型转换.(可通过headers.force跳过校验)
  14. 优化设备分类数据初始化,默认使用-进行id分隔(使用|可能导致400错误.)
  15. 通过jvm参数-Djetlinks.eventbus.payload.pool.enabled=true开启事件总线对象池,提升性能.

1.7.0

3 years ago
  1. 优化设备配置定义,可以指定配置作用域(单独设置产品的配置或者设备的配置),见DefaultConfigMetadata.add方法.
  2. 设备标签查询(id$dev-tag)支持表达式: tag1=value1 and tag2=value2(没有sql注入,放心使用).
  3. 增加支持数据库维护产品分类.
  4. 优化拉取固件升级逻辑,使用headers.force标记是否强制拉取固件,使用headers.latest标记是否拉取最新的固件信息. (Pro)
  5. 优化设备消息转发逻辑,在headers中增加members,标记此设备所属的用户id.(需要重新激活设备) (Pro)
  6. 优化告警推送逻辑,解决租户添加了告警通知时,无法订阅新添加的设备告警问题.(Pro)
  7. 增加Headers.mergeLatest消息头,设备属性相关消息设置此头,将合并旧的属性数据到消息中.(此操作会降低系统吞吐量)(Pro)
  8. 修复集群下,修改物模型后其他节点不会生效问题。
  9. 优化设备指令下发,指令消息ID和设备id进行绑定防止重复。
  10. 事件总线集群通信增加RSocket支持以提升性能,通过配置jetlinks.event-bus.roskcet.enabled开启.(Pro)
  11. ReactorQL增加_window_until_window_until_change函数.(Pro)
  12. 优化事件总线性能,在使用TopicPayload后需要手动调用release()释放资源.
  13. 优化设备数据行式存储策略:取消存储propertyName,formatValue字段,influxdb下只存储numberValue,timeValue,value.
  14. 优化物模型拓展信息配置,可在协议包中support.setExpandsConfigMetadata来指定配置(需要升级jetlinks-core 1.1.4)
  15. 增加内存使用检查,当内存使用剩余低于15%时,丢弃请求防止内存溢出导致系统崩溃.可通过启动参数-Dmemory.waterline=0.15进行配置.(Pro)
  16. 优化elasticsearchinfluxdb写入策略,丢弃无法写入的Buffer防止内存溢出.(Pro)
  17. 优化设备网关消息处理逻辑、优化子设备上线处理逻辑、优化自注册逻辑、离线消息无论设备是否已经离线,事件总线都将会收到消息.
  18. 优化influxdb查询条件的类型转换,修复如果使用数字作为设备id,无法查询到数据.(Pro)
  19. 设备数据转发到机构topic中/org/device/**,可通过headers.orgId获取当前设备机构ID。(需要再次激活设备).
  20. 可通过DeviceMessage.addHeader("ignoreLog",true)指定不记录此消息日志.