KNX Stack for Linux
A KNX Stack for Linux is the implementation of KNX system software for devices (KNX Management Server) running the Linux operation system. It encapsulates the complete KNX communication for runtime and for device configuration. An application inside the device has access to the group objects and parameters of the KNX system.
The software is implemented as a user-space Linux application (console application, without a user interface) and acts as a communication server to the KNX system. Client applications can start the software and communicate with the KNX stack using a simple binary messaging protocol (similar to a Remote Procedure Call RPC).
The internal configuration of the KNX stack SW can be set and retrieved by the client via the API configuration interface (see below). The stack SW is typically terminated only for shut down.
Connection to the KNX network
A KNX device for Linux requires a physical connection to the KNX bus. A connection to twisted pair (TP) is the preferred choice for small installations without an IP backbone. For more complex installations (which typically have an Ethernet/IP backbone) a direct IP connection results in optimal performance at low cost.
Connection to KNX TP
Typical Linux platforms have no direct connection to KNX TP and require a dedicated hardware interface. In principle all external KNX interfaces (RS-232, USB or IP) can be used to provide bus access to the data link layer. In practice however single device solutions are generally preferred in order to reduce costs.
A simple and low cost solution is to incorporate the KNX TinySerial Interface 810 module from Weinzierl Engineering.
Conncetion to KNX IP
Creating a connection to the KNX network using the medium KNX IP does not require dedicated hardware. As KNX IP is based on UDP/IP the KNX Stack IP for Linux uses the IP sockets of the operating system.
Device configuration
Most KNX networks are configured in system mode (S-Mode) using the ETS tool (KNX Engineering Tool Software). The representation and handling of a Linux based device in ETS is the same as for all other KNX devices.
Each KNX device must support a programming mode controlled via a hardware button or alternatively via a virtual button on a screen. The device configuration is loaded into the device via the KNX network.