05 Interworking EIS KNX
05 Interworking EIS KNX
KNX Association
KNX ADVANCED COURSE
Table of Contents
1 Introduction ................................................................................................................5
2 Advantages of Interworking ........................................................................................5
3 Principles of KNX Interworking ...................................................................................6
4.20.1 General.....................................................................................................31
1 Introduction
Already under the predecessor system to KNX, i.e. EIB, the Association not only took
care of the standardisation of the protocol but also laid down rules for the coding of the
useful data inside telegrams.
Without standardisation of this aspect, devices of different manufacturers would be able
to talk KNX but could still code the useful data contained in the tail of the telegram
differently, e.g. manufacturer A would code temperatures as 1 byte and another as 3
bytes.
For a start such objects could then not be linked by means of ETS and secondly, these
devices would not understand one another.
In order to ensure interworking between manufacturers and even products of different
application domains, EIBA therefore laid down formats for common functions like
switching, dimming, blinds control, integer and float values, percentage, date/time, HVAC
modes, scene control, . At the time of EIBA, these formats were referred to as EIS (EIB
Interworking Standards).
When KNX came into being, the EIS were renamed into KNX standardized Data types.
The most common data types were also standardized on a European level and integrated
into the EN 50090 series as Part 3-3.
If a standardized format for a certain function exists, for certification the KNX
manufacturer is obliged to use this format. Compliance to the format is also checked
during the KNX interworking tests as carried out by KNX accredited third party test labs.
2 Advantages of Interworking
The benefits of Home and Building Control only become truly visible when devices of
different manufacturers and different application domains interwork:
Presence detector is part of the alarm system at night
Room thermostat of Manufacturer A sets position of valves of Manufacturer B
All off button of Manufacturer A switches the lights off, controlled by switching
actuators of Manufacturer B, C, D, ;
Scheduler of Manufacturer A ensures presence simulation, thereby controlling blinds
of Manufacturer B
It goes without saying that this is an enormous benefit to end users. When a product line
A is defective but Manufacturer A has discontinued product line, the end user can find a
replacement at Manufacturer B.
A system with true interworking also attracts manufacturers of niche products, as one
single manufacturer can simply not offer all possible HBES solutions, from lighting to
HVAC to Load management, etc.
This in turn boosts the OEM market: what Manufacturer A does not produce himself, he
can easily find at another HBES manufacturer and complete his offer by relabeling the
products he buys from Manufacturer A.
Gateway solutions between KNX and proprietary or other standardized systems (e.g.
DALI, BACnet, ) are easier to develop, as the proprietary coding can be easily mapped
to common KNX data formats as described in the KNX standard.
Last but not least, it would have been impossible for KNX to establish the common
market infrastructure that exists today:
the fact that all products of all manufacturers can be linked to one working installation
is the corner stone of the KNX one configuration tool (ETS) approach.
It would have been impossible to establish the common training scheme for the
education of persons interested in using the KNX technology in home or commercial
projects. The training scheme of basic, advanced and tutor courses is worldwide
standardized. In contrast to that, manufacturers of proprietary systems must establish
each individually their own training schemes and users of such material must visit
several courses if they wish to combine material of several manufacturers into an
installation.
3.1 Introduction
For KNX devices that are programmed with the ETS, KNX requires that at least the group
objects are coded according to KNX standardized data types. The coding of parameters
that are described in the products database descriptions can be manufacturer specific.
For some of the device types (e.g. like dimming, blind control or switching with priority), it
is however necessary that actuators show a certain behaviour when data is sent to the
available group objects. In this case, the specification of functional blocks becomes
necessary and needs to be complied with during KNX product certification.
Functional blocks group a number of inputs, outputs and parameters. For this
combination, a precise function description is provided.
DPT I1 DPT O1
Description I1 --------- I1 O1 --------- Description O1
DPT I2
Description I2 --------- I2
Parameters
DPT P1
--------- P1
Especially when devices support Easy installation, a clear definition of the description of
each channel in the device in the form of functional blocks is necessary.
3.2.1 Introduction
Datapoint type
3.2.2.1 Introduction
Five classes can be distinguished according to their internal structure. More explanation is
given in the next clauses.
Examples: a fan controller can drive the fan from standstill over 5 positions up to a
maximum speed.
3.2.4.1 Definition
To be able to cover all cases in which transmitters and receivers operate with many
different steps, they both convert their steps to a range between 0 and 255.
The following applies for the transmitter:
required step
Value = 255
number of steps
This value is rounded up or down and sent as a byte without a sign.
3 255
0
1 2 3 4 5
Empfnger, NR = 5
4.1 Introduction
This section lists some common KNX datapoint types.
All datapoint types have a unique identification consisting of two digits. The first digit
denotes the format and the coding. The second digit represents the value range and the
unit.
In the course of technical development, KNX members may submit suggestions for new
datapoint types to the KNX Association. New datapoint types are also drawn up by the
responsible KNX working group WGI (Working Group Interworking) when elaborating
new application descriptions and corresponding KNX standardised functional blocks.
Group objects complying to DPT types with a size of 6 bits or less only use the bits
directly following the APCI (any unused bits are set to zero) in the KNX telegram. Any
group objects complying to DPTs with a size greater than 6 bits will result in telegrams,
where the 6 bits following the APCI are set to zero and the useful data padded after these
unused bits.
4.2.1 General
DPT ID 1.xxx is used for all possible applications in which two different values are to be
set or sent.
field names b
encoding B
Range: b = {0,1}
Unit: None.
Resol.: (not applicable)
Datapoint Types
Format: 1 bit: B 1
octet nr 1
field names b
encoding B
Range: b = {0,1}
Unit: None.
Resol.: (not applicable)
Datapoint Types
4.3.1 General
These datapoint types are intended for applications offering a priority control that has
precedence over the normal (manual) operation. In other words, if an actuator is switched
via its priority datapoint, switching via its usual DPT 1.xxx group objects is disabled.
Switching with priority is ensured via 2-bit datapoint types.
The interaction between the 2 and the 1 bit datapoint functions according to the
underneath diagram.
Bit 0
Priority Bit 1 &
e.g.
>1 switch
output
Switch &
field names c V
encoding BB
Range: c = {0,1}
v = {0,1}
Unit: None
Resol.: (not applicable)
Datapoint Types
2 bit
Format 1
CV
C = {0,1}
Range
V = {0,1}
Unit -
Datapoint types
4.4.1 General
These datapoint types are amongst others used to realize relative dimming or moving
blinds relative to a certain start position.
Step-
field names c
Code
encoding BUUU
Range: c = {0,1}
StepCode = [000b111b]
Unit: None
Resol.: (not applicable)
Datapoint Types
ID: Name:
3.007 DPT_Control_Dimming
Step-
field names c
Code
encoding BUUU
Range: c = {0,1}
StepCode = [000b111b]
Unit: none
Resol.: (not applicable)
Datapoint Types
ID: Name:
3.008 DPT_Control_Blinds
4.5.1 General
DPT 4.xxx is defined for transmitting individual (text) characters. The coding sent on the
bus corresponds to the coordinates of a look up table, containing the different characters.
8 bit
Format 1
AAAAAAAA
Unit -
Datapoint types
MSN 0 1 2 3 4 5 6 7 8 9 A B C D E F
LSN
0 NUL DLE 0 @ P ` p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
4.001 DPT_Char_ASCII
5 ENQ NAK % 5 E U e u
4.002 DPT_Char_8859_1
6 ACK SYN & 6 F V f v
7 BEL ETB 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
A LF SUB * : J Z j z
B VT ESC + ; K [ k {
C FF FS , < L \ l |
D CR GS - = M ] m }
E SO RS . > N ^ n ~
F SI US / ? O o
4.6.1 General
DPT 5.xxx is defined for transmitting unsigned values up to 255.
Encoding UUUUUUUU
Encoding: binary encoded
msb lsb
U U U U U U U U
0 0 0 0 0 0 0 0 = range min. /off
0 0 0 0 0 0 0 1 = value low
1 1 1 1 1 1 1 1 = range max.
Range: U = [0255]
Datapoint Types
Examples
Encoding UUUUUUUU
Encoding: binary encoded
Range: UsignedValue = [0255]
Datapoint Types
4.7.1 General
DPT 6.xxx is defined for transmitting values from -128 up to +127.
Negative numbers are represented as twos complement. To do so, the binary
representation of the positive number is inverted and 1 is added.
encoding V V V V V V V V
Encoding: Two's complement notation
Range: -128 127
Datapoint Types
4.8.1 General
DPT 7.xxx is defined for transmitting values up to 65535.
Datapoint Types
ID: Name: Range: Unit: Resol.:
7.001 DPT_Value_2_Ucount [065 535] pulses 1 pulse
4.9.1 General
DPT 8.xxx is defined for transmitting values from -32768 up to +32767. As for 1 octet with
sign, negative values are transferred as twos complement.
Datapoint Types
4.10.1 General
DPT 9.xxx is defined for transmitting floating point values. Various datapoint types have
been defined for different physical variables.
Not all datapoint types use the maximum value range. Devices shall ignore invalid or
undefined values.
The value to be transferred shall be coded in the mantissa. If the value multiplied by 100
(because of the resolution of 0,01) does not fit in the range of 2048 and +2047, the
mantissa shall be divided by a factor, which constitutes the exponent. The sign bit
indicates whether the value is a negative (S bit = 1) or a positive value (S bit =0). In case
of negative values, the mantissa shall moreover be the twos complement of the
corresponding positive value.
encoding M E E E E M M M MM M M M M M M M
(E)
Encoding: FloatValue = (0,01*M)*2
E = [0 15]
M = [-2 048 2 047], twos complement notation
For all Datapoint Types 9.xxx, the encoded value 7FFFh shall always be used to denote invalid data.
Range: [-671 088,64 670 760,96]
Datapoint Types
ID: Name: Range: Unit: Resol.:
9.001 DPT_Value_Temp -273 C 670 760 C C 1 C
9.002 DPT_Value_Tempd -670 760 K 670 760 K K 1K
9.003 DPT_Value_Tempa -670 760 K/h 670 760 K/h K/h 1 K/h
9.004 DPT_Value_Lux 0 Lux 670 760 Lux Lux 1 Lux
9.005 DPT_Value_Wsp 0 m/s 670 760 m/s m/s 1 m/s
9.006 DPT_Value_Pres 0 Pa 670 760 Pa Pa 1 Pa
9.007 DPT_Value_Humidity 0 % 670 760 % % 1%
9.008 DPT_Value_AirQuality 0 ppm 670 760 ppm ppm 1 ppm
9.010 DPT_Value_Time1 -670 760 s 670 760 s s 1s
9.011 DPT_Value_Time2 -670 760 ms 670 760 ms ms 1 ms
9.020 DPT_Value_Volt -670 760 mV 670 760 mV mV 1 mV
9.021 DPT_Value_Curr -670 760 mA 670 760 mA mA 1 mA
2 2 2
9.022 DPT_PowerDensity -670 760 W/m 670 760 W/m W/m 1 W/m2
9.023 DPT_KelvinPerPercent -670 760 K/% 670 760 K/% K/% 1 K/%
9.024 DPT_Power -670 760 kW 670 760 kW kW 1 kW
9.025 DPT_Value_Volume_Flow -670 760 l/h 670 760 l/h l/h 1 l/h
4.10.3 Example
A temperature value of - 30 degrees C can be calculated according DPT 9.001 as follows:
Step 1: Calculate the mantissa
Due to the resolution of 0.01, the value to be coded must be multiplied by 100: 30 x 100 =
3000
Number: 1 0 1 1 1 0 1 1 1 0 0
4.11 Time
4.11.1 General
DPT 10.001 is defined for transmitting the time of the day (e.g. cyclically by a system
clock).
Datpoint Types
ID: Name: Field: Encoding: Range: Unit: Resol.:
10.001 DPT_TimeOfDay Day 1 = Monday [07] none none
7 = Sunday
0 = no day
Hour binary encoded [023] hours h
Minutes binary encoded [059] minutes min
Seconds binary encoded [059] seconds s
4.12 Date
4.12.1 General
DPT 11.001 is defined for transmitting the date of the day (e.g. cyclically by a system
clock). Please note that the day of the week is not transmitted in DPT 11.001.
It shall be noted that values shall be interpreted as follows by a receiver:
Year data 90 signifies year in the 20th century.
Year data < 90 signifies year in the 21st (this) century.
The coding therefore covers years between 1990 and 2089.
Example:
YYYYYYY = 99 d equals 1999
YYYYYYY = 0 d equals 2000
YYYYYYY = 4 d equals 2004
Format: 3 octets: r 3 U 5 r 4 U 4 r 1 U 7
octet nr. 3 MSB 2 1 LSB
NDoW
NWD
0 0 Minutes 0 0 Seconds 0 0 0 0 0 0 0
SUTI
CLQ
WD
ND
NY
NT
F
Encoding r r U U U U U U r r U U U U U U B B B B B B B B B r r r r r r r
Datapoint Types
ID: Name:
19.001 DPT_DateTime
Field Description Encoding Range Unit Resol.:
Year Year Value binary encoded, offset 1900 [0255] year 1 year
0 = 1900
255 = 2155
Month Month Value binary encoded [112] Month 1 month
1 = January
12 = December
DayOfMonth D Value binary encoded [131] none none
1 = 1st day
31 = 31st day
DayOfWeek Day of week Value binary encoded [07] none none
0 = any day
1 = Monday
7 = Sunday
HourOfDay Hour of day Value binary encoded. [024] h 1h
Minutes Minutes Value binary encoded. [059] min 1 min
Seconds Seconds Value binary encoded. [059] s 1s
F Fault 0 = Normal (No fault) {0,1} none none
1 = Fault
WD Working Day 0 = Bank day (No working day) {0,1} none none
1 = Working day
NWD No WD 0 = WD field valid {0,1} none none
1 = WD field not valid
NY No Year 0 = Year field valid {0,1} none none
1 = Year field not valid
ND No Date 0 = Month and Day of Month fields {0,1} none none
valid
1 = Month and Day of Month fields
not valid
NDOW No Day of 0 = Day of week field valid {0,1} none none
Week 1 = Day of week field not valid
NT No Time 0 = Hour of day, Minutes and {0,1} none none
Seconds fields valid
1 = Hour of day, Minutes and
Seconds fields not valid
SUTI Standard 0 = Time = UT+X {0,1} none none
Summer Time 1 = Time = UT+X+1
CLQ Quality of 0 = clock without ext. sync signal {0,1} none none
Clock 1 = clock with ext. sync signal
4.13.2 Comments
Without the value 24:00:00 one can not differentiate between a full 24 h period and a 0 h
period.
Examples:
A daily program with 24 h comfort level is encoded as "start comfort: 00:00:00" and
"end of comfort: 24:00:00".
A daily program with 0 h comfort level ( all day economy level) is encoded as "start
comfort: 00:00:00" and "end of comfort: 00:00:00".
The receiver (e.g. a room unit, MMI) will interpret Date&Time with "Fault" as corrupted
and will either ignore the message or show --:--:-- or blinking 00:00:00 (as known from
Video recorders after power-up).
Encoding
0: Clock without an external synchronisation signal.
The device sending date&time information has a local clock, which can be inaccurate !
1: Clock with an external synchronisation signal (like DCF77, videotext, etc.).
The device sending date & time information sends signals which are synchronised
(time to time) with external date & time information.
The default value is 0.
Also an externally synchronised clock should send CLQ = 0 after start-up (until reception
of first synchronisation signal) or after a synchronisation timeout.
4.14.1 General
DPT 12.xxx is defined for transmitting unsigned counter values up to 4294967295.
encoding UU U U U U U U UU U U U U U U UU U U U U U U UU U U U U U U
Encoding: Binary encoded
Range: UnsignedValue = [04 294 967 295]
PDT PDT_UNSIGNED_LONG
Datapoint Types
ID: Name: Unit: Resol.:
12.001 DPT_Value_4_Ucount counter pulses 1 pulse
4.15.1 General
DPT 13.xxx is defined for transmitting signed counter values from -2147483648 up to
+2147483647, where negative values are transmitted as 2s complement.
encoding VV V V V V V V VV V V V V V V VV V V V V V V VV V V V V V V
Encoding: Twos complement notation
Range: SignedValue = [-2 147 483 648 2 147 483 647]
PDT PDT_LONG
Datapoint Types
4.16.1 General
DPT 14.xxx is defined for floating point values with greater accuracy. Various datapoint
types have been defined depending on the different physical variables.
The IEEE floating point format is used in accordance with IEEE 754 so that
higher values than for DPT 9.xxx can be transferred,
compatibility to other systems using this format is ensured.
79 different datapoint types have been defined, of which some are given in the
underneath paragraph.
encoding F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F
Encoding: The values are encoded in the IEEE floating point format according IEEE 754.
Range: S (Sign) = {0,1}
Exponent = [0 255]
Fraction = [0 8 388 607]
Datpoint Types
ID: Name: Unit: Resol.: Comment:
14.007 DPT_Value_AngleDeg 1 angle, degree
14.019 DPT_Value_Electric_Current A 1A electric current
14.027 DPT_Value_Electric_Potential V 1V electric potential
14.028 DPT_Value_Electric_PotentialDifference V 1V electric potential difference
14.031 DPT_Value_Energy J 1J energy
14.032 DPT_Value_Force N 1N force
14.033 DPT_Value_Frequency Hz = s-1 1 Hz frequency
14.036 DPT_Value_Heat_FlowRate W 1W heat flow rate
14.037 DPT_Value_Heat_Quantity J 1J heat, quantity of
14.038 DPT_Value_Impedance 1 impedance
14.039 DPT_Value_Length m 1m length
14.051 DPT_Value_Mass kg 1 kg mass
14.056 DPT_Value_Power W 1W power
14.065 DPT_Value_Speed m s-1 1 m s-1 speed
14.066 DPT_Value_Stress Pa = N m-2 1 Pa stress
14.067 DPT_Value_Surface_Tension N m-1 1 N m-1 surface tension
14.068 DPT_Value_Common_Temperature C 1C temperature, common
14.069 DPT_Value_Absolute_Temperature K vK temperature (absolute)
14.070 DPT_Value_TemperatureDifference K 1K temperature difference
14.078 DPT_Value_Weight N 1N weight
14.079 DPT_Value_Work J 1J work
4.17.1 General
DPT 15.000 is defined to represent or log access procedures.
Encoding: D6, D5, D4, D3, D2, D1: binary encoded value
N: binary encoded value
E, P, D, C: See below
Range: See below.
Unit: Not applicable.
Resol.: Not applicable.
Datapoint Types
ID: Name:
15.000 DPT_Access_Data
Field Description Encoding Range
D6, D5, D4, digit x (16) of access identification code. Only a card Values binary encoded. [0 9]
D3, D2, D1 or key number should be used. System number, version
number, country code, etc are not necessary. Ciphered
access information code should be possible in principle.
If 24 bits are not necessary, the most significant
positions shall be set to zero.
E Detection error 0 = no error {0,1}
1 = reading of
access information code was
not successful).
P Permission (informs about the access decision made by 0 = not {0,1}
the controlling device) accepted
1 = accepted
D Read direction (e.g. of badge) 0 = left to right {0,1}
If not used (e.g. electronic key) set to zero. 1 = right to left
C Encryption of access information. 0 = no {0,1}
1 = yes
Index Index of access identification code Value binary encoded. [0 15]
(future use)
EXAMPLE 1: Transmission of the access identification code 123456, without error indication, permission accepted, badge
read from left to right, no encryption and index 13.
4.18.1 General
To transfer strings of characters, datapoint types 16.000 and 16.001 allow sending text of
up to 14 characters. The coding of the individual characters corresponds to the datapoint
types 4.001 and 4.002. The contents in both cases starts with the MSB.
Two data types exist: DPT 16.001 (DPT_String_ASCII unused characters are set to
value 00h) and DPT 16.002 (DPT_String_8859_1).
4.18.2 Example
KNX is OK is transmitted as:
K N X i S O K
4B 4E 58 20 69 73 20 4F 4B 00 00 00 00 00
4.19.1 General
In KNX three different approaches exist for setting scenes
Setting the scene conditions via ETS parameters and calling the desired
parameterized scene by using the DPT_Scene_AB (1.022) 1 bit datapoint type. In this
case, it is not possible that the user changes the scene.
Setting the scene conditions of the connected actuators and storing this scene as a
scene number in the connected actuators by using the DPT_Scene_Control. With the
same DPT, scenes can thus be set and called.
By using the DPT_SceneNumber: this DPT is identical to the DPT_Scene_Control,
however it does not allow to store new scenes.
encoding 0 0 U U U U U U
PDT: PDT_GENERIC_01
Datapoint Types
ID: Name: Encoding: Resol: Range:
17.001 DPT_SceneNumber Scene- Value binary encoded 1 [0 63]
Number
encoding Br UUUUUU
Datpoint Types
ID: Name: Encoding: Range:
18.001 DPT_SceneControl C 0= activate the scene corresponding to the [0, 1]
field Scene Number
1= learn the scene corresponding to the field
Scene Number
R Reserved (0) {0}
Scene- Scene number [0 63]
Number
4.20.1 General
In earlier developments, the operating mode of room thermostat was set by one bit
datapoint types.
Since some years, a general new DPT_HVACMode has been introduced, of which the
use has become obligatory for new developments. The operating mode may be
additionally set by single bit DPTs.
Next to this, a number of enumerations have been standardised for amongst others
building occupancy and building mode.
Room thermostats inform on their status with the standardised DPT_HVACContrMode.
encoding NNNNNNNN
5.1 General
For two very common device types, the combination of DPTs into devices has been
standardized and is obligatory for certification.
These standards called functional blocks are respectively the Dimming actuator basic
and the Sunblind Actuator basic.
5.2.1 General
A dimming actuator shall per channel at least support three group objects complying to
the underneath stated DPTs:
Switch, DPT 1.001
Relative dimming, DPT 3.007
Absolute dimming, DPT 5.001
Any other group objects are optional.
State Description
Name Meaning
The event Value reached is an internal event. The function of the application software of
a dimming actuator is illustrated by the following status diagram. The ellipses represent
the states while the arrows represent the events.
This behaviour is checked during KNX certification tests.
Dimming value X%
Dimmer UP Dimming
Dimmer DOWN
OFF command
Dimming value OFF
STOP
Value reached
ON command
Dimming value X%
Dimmer UP
Dimming value OFF Dimmer DOWN
OFF command Dimmer UP
Dimmer DOWN Dimming value X%
ON command
STOP STOP
ON command
OFF ON
OFF command
Dimming value OFF
5.3.1 General
The function Drive Control is used primarily for controlling blind and roller shutter
motors.
A sunblind actuator shall per channel at least support two group objects complying to the
underneath stated DPTs:
StopStep UpDown, DPT 1.007
Move UpDown, DPT 1.008
Any other group objects are optional.
Important: Group objects using this function shall not reply to read requests through the
bus (Group Value Read messages). This restriction ensures that drives are not
inadvertently set into motion. The READ flag of the group objects shall therefore be reset!
This applies both to sensors AND actuators!
If devices are not of the type BCU1, the above is not needed, provided the update flag in
the respective objects are not set.
Status Description
Stopped No movement
In motion The connected drive moves upwards or downwards
Step UP The drive is in the step mode and is moved upwards by one step
Step DOWN The drive is in the step mode and is moved downwards by one step
The following events trigger the changeover from one status to another:
Name Meaning
The event Time elapsed is an internal event. The operation of an actuator for the control
of blinds and shutters is illustrated by the following status diagram. The ellipses represent
the states whereas the arrows indicate the events. This behaviour is checked during KNX
certification tests.
Motion upwards
Motion downwards Motion upwards Step UP
Motion downwards
Motion Step UP
Step UP
Motion downwards
Motion upwards
Time elapsed
Step DOWN
Time elapsed
Halted Step
Step DOWN DOWN