The Calimero Project provides Java libraries of the KNX protocol stack for clients, KNXnet/IP servers, and KNX devices.
Support for KNX IP Secure in Calimero v2.5 snapshots (experimental)
NEW calimero-server with client-side KNX IP Secure Routing
NEW calimero-core with network links using KNX IP Secure Routing
The libraries' objectives are to offer clean and lean interfaces to KNX functionality, including
- KNXnet/IP tunneling, routing, local device management, and bus monitoring
- KNX IP, KNX USB, KNX RF USB, TP-UART, and FT1.2 serial access
- Process communication
- Management procedures
- KNX property access
- Datapoint type and property type translation
- Network buffering for state- and command-based datapoint values
- A protocol API that resembles OSI layers 2 to 7
|With the exception of KNX IP Secure, KNX communication protocols do not offer features of cryptographic protocols, e.g., entity authentication. If you intend to permit external access, ensure security policies by applying appropriate mechanisms (use a virtual private network (VPN)).|
Calimero is designed to operate on embedded systems. The libraries are compatible with Java Standard-Edition (J2SE) environments commonly deployed on home computers. Minimum Java Runtime Environment (JRE) requirements:
- Versions ≤ 2.3 require J2ME CDC FP
- Version 2.4 requires JRE 8 (profile compact1)
- Version 2.5 (dev) requires JRE 9 (java.base)
The project is structured into several repositories. Calimero-core is the main Java library. (Being a library, you can not simply "run" it like an ordinary application. For that, use the calimero-tools or calimero-gui repositories). The core library contains functionality to be invoked by a user application. A setup also requires KNX capable endpoints, e.g., a KNXnet/IP server. To create applications which just use client functionality, only calimero-core-x.jar is required.Show information about the core library on the command-line:
$ java -jar "calimero-core-2.4-SNAPSHOT.jar"
For running Java programs, you need a Java Runtime Environment (JRE), together with any other third party libraries you might want to use. For details how to set up Java, refer to dedicated SDK installation sites, for example the Java installation guide.
Put the Calimero
files (or the extracted class folders) into the classpath searched by the Java class loader or into the
current working directory. One way to extract a
file into your working directory using the terminal:
$ jar -xf my-library.jarAlternatively, import the Calimero source code into your development environment.
When using KNXnet/IP and network interfaces, make sure that
- you configured the network interfaces correctly,
- you are using the intended network interface,
- firewall settings don't block KNXnet/IP traffic.
|Giving preference to IPv4 using
Please refer to dedicated documentation for your particular execution environment.
UsageCalimero tools are executed in the terminal. Starting a search for KNXnet/IP devices is done via (replace
xwith your version):
$ java -cp "calimero-x.jar;calimero-tools-x.jar" tuwien.auto.calimero.tools.Discover -s
|On Windows, the classpath entries of