From the first contact with the KNX world, it was obvious to me that this is a highly regulated system. KNX specification is very extensive and thorough. Everything is defined to the smallest detail.
Another thing became clear to me very quickly. There are some concepts which are used in various places. Same concepts are used in regards to different components of the system.
For example, there is detailed specification of the Datapoint Types in the KNX world. And Datapoint Types are mentioned and used in a large number of different situations.
Let’s take ETS application, for example. Database Types are used with Interface Objects to define the type of the object. Datapoint Types are also used when messages are sent and received to the KNX network, to transform byte array to human readable values.
Being a software developer, I’m used to these kind of situations. One piece of information used in a lot of different places. We, software developers, are a lazy bunch. We don’t like to repeat ourselves. Also, we don’t like to maintain multiple source of the same information.
I was certain that the KNX specification was built with Software Developer mentality. There must be a single source of this shared information.
And I was right.
There is a KNX master data which is specifically designed and used with this in mind.
But what is the KNX master data?
What is it used for?
And where?
What is the KNX master data
I always like to start with a definition. I found this definition in the KNX XML Project schema file. It goes like this: “The KNX master data contains data definitions, which describe basic KNX system properties as data point types, manufacturer IDs and other things.”
What this actually means is that the KNX master data is a single source of commonly used resources in the KNX world. It represents one place where all the data is stored. When a change is needed, KNX master data is the file which needs to be changed and redistributed.
Now when we have defined what KNX master data is, let’s dive into details about what information KNX master data contains.
Datapoint Types
All values in the KNX world are encoded according to the datapoint types specified by the KNX. This means that when two KNX devices exchange telegrams, values sent in telegrams are encoded according to the datapoint types specification.
Every datapoint type is defined by: data type and dimension. Further data type is defined by: format and encoding, while dimension is defined by: range and unit. Combination of these four parts define every datapoint type.
Interface Object Types
Defines a list of available Interface object types in a KNX specification.
But what are Interface Objects?
Interface Objects are used to group a set of datapoints into a common interface structure or object. You can consider interface objects like templates. They define available classes of KNX devices with similar characteristics (devices with similar structure which consists from one or more datapoints).
For example, interface object type can be:
- Device,
- Address Table,
- Association Table,
- Application program …
This means that KNX device which has interface object of type device, will have all the property datapoints that are defined with the device interface object.
Interface Object Properties
Interface Object Properties define all the available options for properties in the interface object. Every interface object property has:
- Property ID,
- Property Number ,
- Name,
- Text,
- Property Datapoint Type.
It is great that all the properties are defined in one place. Everywhere else it is enough to use Property ID to uniquely identify the property and all of its parameters.
For example, property for the interface object type has:
- Id=”PID-G-1″
- Number=”1″
- Name=”PID_OBJECT_TYPE”
- Text=”Interface Object Type”
- PDT=”PDT-4
Every KNX device has interface object type with the same parameters, only the values of those parameters can be different.
Property Data Types
Property Data Types define all the different data types that a certain property of the KNX device can use. Some of the available property data types are:
- PDT Control
- PDT Char
- PDT Int
- PDT Date
- PDT Time …
Every property in a KNX device must be of one of the available property data type defined in this section.
Medium Types
Medium Types define available physical mediums for implementation of the KNX network. Available options for medium types are:
- TP – Twisted Pair
- PL – Power Line
- RF – KNX RF (Radio Frequency)
- IP – KNXnet/IP
Mask Versions
Mask Versions section of the master data defines available Mask version values for a KNX device.
For every KNX device, mask version defines category in which that device belongs.
For example, mask version 16 defines a device which uses BCU1 (Bus coupling unit 1) to communicate with the KNX network. Also, with mask version 16, version 1.0 of the communication protocol is used.
Functional Blocks
Functional Blocks section of the master data defines all available functional block types in a KNX device
Functional Block defines datapoint interface, together with its internal state machine, message and physical I/O. In short functional block defines how a certain datapoint interface is seen from the KNX network.
Inside the Functional Block specification, each Datapoint is assigned an explanatory name, together with its required Datapoint Type; the type fixes the format of the data, which the Datapoint sends to or receives from the bus.
Product Languages
Defines a list of supported languages for the ETS application. Languages are defined by their commonly used shortcuts. For example: en-US for English, de-DE for German or nl-NL for Dutch.
Manufacturers
List of KNX manufacturers. Manufacturers are companies which are part of the KNX system and can create products of their own.
In order for a product to be used by the ETS application, company which has build the product needs to be certified KNX manufacturer (needs to be listen in this part of the master data).
For example, in order for a IP Router device to be discovered in the ETS application, and after selection to be used in the ETS application, manufacturer of that IP Router needs to be listed in a KNX manufacturer section of the master data.
Languages
Translated texts used in the ETS application for all supported languages. Texts for selected language is used throughout the ETS application.
Where is the KNX master data used
Like I have already mentioned, KNX master data is used by the ETS application. In the master data there is a list of languages that are supported by the ETS application. There are also translations for certain languages in a master data file.
Besides languages, ETS uses master data to get the list of certified KNX manufacturers. Only certified manufacturers can use ETS tool for their products.
KNX manufacturers are using KNX master data while preparing their products for the market. For every KNX device, manufacturers have to use supported structures defined in the master data file. Structures like Interface Object Types, Interface Object Properties, Medium Types, Mask Versions…
KNX master data is used in various other situations. Situations that are in any way connected with the KNX devices and their inter workings.