Every KNX network is build from large number of KNX devices. Those devices are connected through one of the supported mediums:
- Twisted Pair
- Power Line
- Radio Frequency
- Internet Protocol
KNX devices together with lines of communication make the KNX network.
In general there are several types of KNX devices:
- Communication devices
If we continue to break down the communication devices, there are couple of subcategories that can be identified:
- IP interface device
- USB interface device
- Repeaters (Backbone coupler, Line coupler, Line repeater)
Communication devices play a role of providing access to the KNX network from the outside system (IP interface, USB interface) or to enable communication between segments of the KNX network (Repeaters)
This means that KNX USB interface device is a communication device which provides access to the KNX network. To achieve this, USB interface device has two physical interfaces. On one side it has a TP interface which is used to connect to the KNX network. On the other side, it has un USB interface which is used to connect to external system (in most cases some kind of PC).
USB interface device and ETS
The easiest approach is using the USB interface device with the ETS tool. ETS tool is an application created by KNX organization which is used to configure the KNX network.
To start using the USB interface device with ETS application you simply need to:
- Connect the USB interface device with the computer where the ETS application is installed.
- Start the ETS application
- Go to Discovered interfaces part of the Communication screen.
- Select the discovered USB interface device
- Press the Select button
After this the ETS has defined communication channel with the KNX network. To verify this you can go to Group Monitoring screen of the ETS application and use it to send messages to KNX network and to view messages received from the KNX network.
USB interface device and PNX Monitor
PNX Monitor application is a great tool that I enjoy using very much. It’s main purpose is to monitor the KNX network. This means that you can use the tool to send messages to the KNX network. Also you can use the tool to view the received messages from the KNX network. It has a powerful filtering engine which enables user to view only the messages which are of interest to him.
This is some basic information about the PNX Monitor. I will do a detailed review of the PNX Monitor application in some of my next blogs. In the mean time you can check it out on this location: http://shop.peaknx.com/peaknx-software/peaknx-software-pnxmonitor.html. Great thing is that it has a nice 90 days trial period to try it out.
To use the USB interface device with PNX Monitor you simply need to:
- Connect the USB interface device with the computer where the PNX Monitor is installed.
- Go to Connection -> USB interface section of the application
- Select discovered USB interface
- Press the Connect button
After this the PNX Monitor application is connected to the KNX network and you can use it to send and receive message from the KNX network.
USB interface device and Falcon
Falcon is a high performance communication library developed by the KNX organization. It offers an API for sending and receiving telegrams across the KNX network. Falcon supports access to the KNX network through RS232, USB and IP.
It is interesting to mention that ETS application uses the Falcon driver to communicate with the KNX network.
Falcon library is intended to be used by software developers. Software developers who wish to create a piece of software that needs to communicate with the KNX network.
The idea behind using Falcon library is that software developers don’t have to know all the dirty details about the KNX protocol. Falcon library will take care of that part for them. Instead, software developers can focus on building their products. It makes no difference if you are building a visualization software or a service which will run in the background, Falcon library will provide a simple way to communicate with the KNX network.
Using the Falcon driver is pretty straight forward. In your favorite development environment you need to create the project, add reference to the library, initialize the Falcon driver and that is it. You can start communicating with the KNX network.
I’m planning to create a separate blog post on using the Falcon library in C# project. So keep an eye on the following post if you are interested.
USB interface device as HID device
USB interface device is recognized by Windows as a HID device which means Human Interface Device. HID device class is a part of the USB specification for computer peripherals. HID device specifies a device class (a type of computer hardware) for human interface devices such as keyboards, mice, game controllers …
This means that you can communicate with the USB interface device the same way you would communicate with any other HID device. On the Windows OS this is done through a file on the file system. You need to acquire a file path, get the file handle, open a stream and start reading and writing data.
In practice, you can choose not to go this deep. You can use one of the available open source libraries out there to handle the communication with the HID device for you. Since I am a C# software developer I have used a HidSharp library. You can get the library on this location: https://www.nuget.org/packages/HidSharp/
There is one thing that you will definitely need to do and that is to implement the KNX protocol. In the core of the KNX protocol lies KNX Telegram. Telegram represents an atomic message which is exchanged between devices.
There are couple of different types of messages which are used to encode the telegram. These messages are usually used with different physical mediums or devices. For example:
- KNX Link Layer telegram – used on the TP medium between KNX devices in the KNX network
- EMI1 and EMI2 – used with USB interface devices on the USB side
- cEMI – used with IP interface device on the IP side.
As stated before you need to implement EMI1 and EMI2 protocols to communicate with the USB interface device as a HID device. It exceeds the scope of this blog post to go into details of the EMI protocol, but you can find all the details in the KNX specification.
I will cover EMI1 and EMI2 protocols in detail in some of my next blogs, so keep an eye on it if you are interested.
That’s all nice. I have explained what is the USB interface device and how you can communicate with it. But what is the purpose of the USB interface device? Why would anybody want to use it?
KNX USB interface device represents a communication device specified by the KNX organization. Every major supplier of the KNX equipment has a product which implement USB interface device specification.
USB interface device represents a very important class of KNX devices. It provides a line of communication for the installers and KNX users to the KNX network. Installers use USB interface device to program and configure KNX network. KNX Users use the device to control and enjoy all the features of their smart house.
Great thing about USB interface device is that it does not require any additional hardware or infrastructure to acquire access to the KNX network. You just need a cable, connect it to the the USB port and you are ready to go. This is great advantage of USB interface device over IP interface device. IP interface device requires working IP network which in some cases may not be available.