JetLinks open source IoT platform is developed based on Java8, Spring Boot 2.x, WebFlux, Netty, Vert.x, Reactor, etc. It is an enterprise-level IoT basic platform that can be used out of the box and can be developed twice. The platform implements many basic functions related to the Internet of Things and can help you quickly establish an Internet of Things-related business system.
Supports unified object model management, multiple devices, multiple manufacturers, and unified management.
Unified device connection management, multi-protocol adaptation (TCP, MQTT, UDP, CoAP, HTTP, etc.), shielding the complexity of network programming, and flexible access to devices of different manufacturers and different protocols.
Flexible rule engine, device alarms, message notifications, and data forwarding. Complex data processing logic can be performed based on SQL.
Geographical location: Unified management of geographical location information and support for regional searches.
Data visualization: realize drag-and-drop configuration of data charts, device configuration, etc.
Spring Boot 2.2.x
Spring WebFlux responsive web support
R2DBC responsive relational database driver
Project Reactor responsive programming framework
Netty, Vert.x high-performance network programming framework
ElasticSearch full-text search, log, time series data storage
PostgreSQL business function data management
hsweb framework 4 business function basic framework
JetLinks open source IoT platform update log
v1.10
1. Report attributes and read attribute replies add attribute source time and attribute status; when storing in row format, the source time will be used as a timestamp for storage.
2. JetLinks backend interface internationalization support (jsr303, enumeration (I18nEnumDict), exception (I18nSupportException)).
3. Provide support for cursor paging query. Some databases may not support offset paging. When scoll is true in the paging result, it means cursor paging. At this time, pageIndex is not supported for paging. When querying the next page, you need to use dynamic query conditions Specify the scrollId returned by the previous page: "context": {"scrollId": "ID of the previous page"}, and after the query conditions change, the page number and scrollId need to be reset.
4. When an exception occurs when the rule engine device instruction node sends an instruction, the return will be converted into a message reply instead of throwing an exception.
5. MQTT Broker access devices support setting QoS.
6. Add the FileQueue tool class to persist queue data to local files.
7. Add the ParallelIntervalHelper tool class, which can delay parallel operations to achieve the effect of parallel to serial conversion.
8. The DeviceDataManager interface adds the getTags method, which can be used to obtain device tags in the protocol package.
9. Add the parser.newBuffer() method to the sticky and unpacking processing script in the TCP network component.