calimero-project / calimero-core

Core library for KNX network access and management
Other
130 stars 64 forks source link
ft12 java knx knx-ip knx-usb rf tp-uart

Calimero-core CI with Gradle

git clone https://github.com/calimero-project/calimero-core.git

Calimero-core provides (secure) KNX communication protocols, KNX datapoint & property access, and management functionality. JDK 17 (java.base) is the minimum required runtime environment. Calimero was developed with a focus on applications that run on embedded devices and require a small footprint.

Code examples for using this library are shown in the introduction.

Changes with Calimero v3 snapshots

Prior => New
Maven group ID com.github.calimero io.calimero
Modules n/a io.calimero.*
Packages tuwien.auto.calimero.* io.calimero.*
Logging prefix calimero.* io.calimero.*
Logging API SLF4J System.Logger

Supported Features

Access Protocols

Process Communication

Supported Datapoint Types (DPTs)

Network Monitor / Busmonitor

Access via KNXnet/IP, KNX USB, KNX RF USB, TP-UART, and FT1.2

Raw Frame Decoding

Management

EMI Support

Network Buffer

Logging

Calimero uses the System.Logger. Bind any desired logging frameworks of your choice.

Testing

For unit tests, Calimero provides a test network consisting of a KNXnet/IP server and a virtual KNX network with two KNX devices. The complete test network is implemented in software, and can be executed in any J2SE runtime environment. The network provides the remote KNXnet/IP endpoint for executing unit tests for KNXnet/IP tunneling, busmonitoring, routing, device management, and KNX IP protocols. The same network setup is used for Calimero CI on Github.

Start the test network (gradle run) in the directory "calimero-core/test/testnetwork-launcher" before running any KNXnet/IP or KNX IP tests. When using Gradle, KNXnet/IP tests can be excluded via useJUnitPlatform() { excludeTags 'knxnetip' }.

Currently, the TP-UART and FT1.2 protocols can only be tested if the corresponding hardware is available.

More Features, Tools, Examples