The Java library Calimero drastically simplifies the development of PC-based applications such as visualizations and gateways to other systems and the Internet. The bus is accessed via KNXnet/IP Tunnelling. Detailed knowledge of the protocol is not required.
Simple access to data points is possible: Group data exchange is supported, popular data point types are converted from and to appropriate Java representations, and a simple point database in XML format can be maintained.
If you do not have a KNXnet/IP Tunnelling server (e.g., Siemens N146 IP Router or the N148/21 IP Interface) in your installation, set up a local software KNXnet/IP server such as tweety or eibd.
First steps: the demo application
The demo application allows you to watch EIB traffic and issue EIB read/write commands.
Select an EIBnet/IP server via "File » Connect", "Search" and "Connect". You should then already be able to watch EIB traffic. Record information about group addresses (including their associated data type) via "List » Adm. Point List". Note how this information is reflected in the traffic log. Then use "Read/Write » Read" and "Read/Write » Write" to query or update the state of the points (groups) in your list.
Download Calimero from the project homepage on SourceForge. The distribution package contains the API documentation. Source code can be found within the Jar files. Also have a look at the forum archives!
Open-source foundations for PC based KNX/EIB access and management -
Presentation given at the 2005 Konnex Scientific Conference including information on Calimero.
ETS4 to Calimero NG import
Thanks to Thomas Wimmer, it is also possible to import ETS4 projects into Calimero NG. To achieve this, an XSLT transformation has to be performed. The necessary configuration files and a short howto can found here.
A known issue
Calimero has to present the KNXet/IP server with the IP address of its host for connection establishment. This information is gathered through InetAddress.getLocalHost() and the NetworkInterface class. Because of the missing routing information, this method will only work properly if the host has a single Ethernet interface with a single IP address, otherwise it always picks the first IP address. This may lead to the KNXnet/IP server being reported as unreachable by Calimero. The problem is not relevant for connections to a locally running KNXnet/IP server.