OT Protocol Specification v4 2
OT Protocol Specification v4 2
2 10 November 2020
©1996-2020 The OpenTherm Association Page 1
The OpenTherm
Communications Protocol
A Point-to-Point Communications System
for HVAC Controls
Protocol Specification
The OpenTherm Association is an independent European organisation, constituted under Dutch law, whose object is to
promote the introduction and adoption of the OpenTherm technical standard for HVAC system control communication, laid
down in this Protocol Specification. The OpenTherm Association controls the application by, and the granting of licences
for use of, the OpenTherm trademark and logo.
OpenTherm, OpenTherm/Plus, OpenTherm/Lite and the OpenTherm logo are registered trademarks of The OpenTherm
Association.
OpenTherm Protocol Specification v4.2 10 November 2020
©1996-2020 The OpenTherm Association Page 2
5.3.4 Day, Time, Date, Year , Solar storage & collector temp. added to Information Data class
5.3.8 New class added for new applications
5.3.8.1 Cooling control signal added
5.3.8.2 Boiler sequence control signal added
1.3C DRAFT 5.3.1 Correction made to error in definition of “Remote Reset enable” bit.
24 October 1999
2.3B DRAFT 5.3.2 Description ID3:HB6 “Remote water filling function changed.
5 May 2004 5.3.3 Description ID4 command changed to request.
5.3 Ventilation and heat-recovery ID’s added
5.4 Description ID4 command changed to request
2.3D DRAFT 5.3.1. Clarified description ID70HB bi1 1and 2 (bypass mode and position)
17 August 2005 5.3.1. Type specification ID71 improved
5.3.1. Updated new ID70LB bit 3 and 4 Automatic bypass and free ventilation status
5.3.1. New ID’s 101 and 102 added
5.3.2. New ID’s 103 and 104 added
5.3.3. ID4 extended with new request code 3..9
5.3.4. Changed description ID116
5.3.4. Type specification ID77 and ID78 improved
5.3.4. New ID’s 34, 35, 113 and 114 added
5.3.5. Type specification ID87 improved
5.3.6. New ID’s 105 and 106 added
5.3.7. New ID’s 107 and 108 added
5.4. Changed description ID116
5.4. Type specification ID71, ID77, ID78, ID87 improved
5.4. New ID’s 34, 35, 101-108, 113, 114 added
5.4. ID 50 and 58 removed (OTC heat curve items)
2.3E DRAFT ID103 page 27. Type should be flag8 instead of u8.
11 November 2005 ID4 page 28. Msg LB should be the same as for HB.
ID4 page 28. request code 10 added
ID35 page 29. Name should Actual boiler fan speed.
ID116 page 30. Extend description with successful.
ID87 page 31. Indicate in Name that value is in HB.
ID87 page 36. Change type to u8 /- (meaning HB)
ID116 page 37. Extend description with successful.
Table of Contents
Description of Changes 2
1. INTRODUCTION 8
1.1 Background 8
2. SYSTEM OVERVIEW 11
2.1 System Architecture and Application Overview 11
3. PHYSICAL LAYER 15
3.1 Medium Definition- Characteristics of the Transmission Line 15
1. Introduction
1.1 Background
The trend in boiler technologies towards high-efficiency appliances with gas/air modulation and increased
sophistication in control electronics has created a requirement for system communication between boilers
and room controllers. At the higher end, home-systems buses provide extensive communications capability
and several such systems are available, although no single standard has emerged. Generally, they all
require hardware/software solutions whose cost is significant at the lower-end of the market, especially for
point-to-point systems. Several proprietary solutions at this low-end have been developed, but offer no cross-
compatibility with products from different manufacturers.
There is an increasing demand for a new standard to be established to connect room controllers and boilers
in a simple point-to-point fashion with very low entry-level costs. OpenTherm was developed to meet this
requirement. Since then it has been extended with support for various HVAC applications and is not limited
to boiler applications, the protocol is being extended further as required by new technologies and
applications.
One of the key characteristics of the OpenTherm standard is the two-level approach which allows analogue-
type solutions at the low-end.
OT/+ The OpenTherm/plus protocol provides a digital communications system for data-exchange between
two microprocessor-based devices.
OT/- The OpenTherm/Lite* protocol uses a PWM signal and simple signalling capabilities to allow
implementation on analogue-only products.
IMPORTANT: As of OpenTherm version 4.1 OpenTherm/Lite – OT/- is no longer being tested
nor certified and has been demoted to legacy functionality, it should not be incorporated in
new designs. The information should only to be used as reference for existing (legacy)
products
OpenTherm Protocol Specification v4.2 Introduction
©1996, 2011 The OpenTherm Association Page 9
Both protocols use the same physical layer for data transmission and power-feeding ensuring that the two
levels of communications are physically compatible.
This document specifies a communication system for use with boilers, heat pumps, ventilation systems and
room controls, which can also be applied to similar devices in the same or related applications. The
characteristics and communications features of both the infrastructure and the attached devices are specified
in detail. This document does not provide a prescriptive solution for OpenTherm-compatible controllers, but
rather specifies the requirements for such a solution.
Please use this document in conjunction with the following related documents:
Function Matrix (Excel sheet)
- This document contains information on the mandatory ID’s based on device functions
Application Functional Specification (pdf)
- This documentation contains information on how to implement specific features
Data-Id Overview Map (pdf)
- The OpenTherm ID map, containing all available OpenTherm IDs
Test Specification (pdf)
- The test specification for manually testing OpenTherm implementations
These documents are located in the on the OTA website at the: Members area
OpenTherm Protocol Specification v4.2 Introduction
©1996, 2011 The OpenTherm Association Page 10
OT/+ OpenTherm/plus
OT/- OpenTherm/Lite
OSI/RM The OSI 7-layer protocol reference model.
PWM Pulse-width modulation
Room Unit The device which calculates the “demand” in the system, which is communicated to the
Boiler Unit. The use of the term room is not intended to be literally restrictive but is used for
convenience.
Boiler Unit The device which receives the “demand” from the room unit and typically is responsible for
providing energy to satisfy that demand. The use of the term boiler is not intended to be
literally restrictive but is used for convenience.
AL Application Layer
DLL Data-Link Layer
PL Physical Layer
TSP Transparent Slave Parameter
RBP Remote Boiler Parameter
CH Central Heating
DHW Domestic Hot Water
OEM Original Equipment Manufacturer
OTC Outside Temperature Compensation
FHB Fault History Buffer
OpenTherm Protocol Specification v4.2 System Overview
©1996, 2011 The OpenTherm Association Page 11
2. System Overview
OpenTherm is a point-to-point communication system and connects boilers with room controllers, therefore it
is not possible to connect several boilers or room controllers in the manner of bus-based systems.
OpenTherm assumes that the room controller is calculating a heating demand signal in the form of a water
temperature Control Set point based on room temperature error (or other control form, e.g. OTC) which it
needs to transmit to the boiler so that it can control the output of the boiler. The boiler in turn can transmit
fault and system information to the room controller for display or diagnostics. A large number of data items
are defined in the OT/+ Application Layer Protocol, covering these and many other pieces of system data.
OpenTherm
Boiler Room Controller
The OpenTherm communication system is designed to allow for future expansion at the application layer by
provision of reserved data-ids and at the data-link layer by the use of reserved (spare) bits within the frame.
In order to address applications which would normally require a bus-based communications system, it is
conceived that intermediate gateways / interface devices would manage multiple OpenTherm
communications lines. In the example below, the interface device acts as a “virtual boiler” to the room
controller and acts as a “virtual room unit” to the boiler. In this way, other devices can be addressed while
maintaining the basic point-to-point approach. See also § 4.3.2
Other interfaces
OpenTherm OpenTherm
Boiler Interface Device Room Controller
All future revisions of the OpenTherm Protocol Specification must be approved by the Members of The
OpenTherm Association.
OpenTherm Protocol Specification v4.2 System Overview
©1996, 2011 The OpenTherm Association Page 12
All products marked with the OpenTherm logo must comply with the requirements of this document. The
OpenTherm logo, trademark and the protocol can only be used with the permission of The OpenTherm
Association. The OpenTherm Association is responsible for compliance testing procedures and licensing.
• A boiler or room controller can be marked with the OpenTherm logo if it conforms to the specification
contained herein for OT/+.
• A boiler or room controller can not be marked with the OpenTherm logo if it only conforms to the
specification contained herein for OT/-.
OT+
Room stat
OT+
When a room unit which can operate both in OT/+ and OT/- modes is connected to a boiler controller, some
configuration needs to take place to determine which protocol to use. This configuration should be achieved
automatically as follows :
On power-up or after the physical connection is made, the room unit tries to communicate using OT/+
messages. If the boiler controller does not respond to one of these messages after 20 seconds, then the
room unit switches to using OT/- signalling.
An OT/+ boiler controller must start communications within this 20 second period or future OT/+
communications will not be possible unless the room unit is reset or re-connected.
The state diagram below illustrates the OT/+ to OT/- detection in the master.
OpenTherm Protocol Specification v4.2 System Overview
©1996, 2011 The OpenTherm Association Page 13
1.
TRYING OT/+
COMMUNICATION
2. 3.
OT/- OT/+
MODE MODE
4.
COMMUNICATIONS
FAULT
In order to describe the OpenTherm system, it is split up into a layered architecture based on the OSI
Reference Model. The OSI/RM is an abstract description of inter-process data communication. It provides a
standard architecture model that constitutes the framework for the development of standard protocols. The
OSI/RM defines the functions of each of 7 defined layers and the services each layer provides to the layers
above and below it. OpenTherm is only described in terms of the functions of the layers. Inter-layer
communication is considered an implementation issue. The diagram below shows the OpenTherm
Reference Model.
OT/+
Application Layer
OT/-
Application Data
Support
OT/+
Data-Link Layer
Physical Layer
OpenTherm Protocol Specification v4.2 System Overview
©1996, 2011 The OpenTherm Association Page 14
The Application Layer is responsible for transfer of application data between the application software in the
boiler and room controllers. It defines data-classes, data-id numbers and format of data-values for
transmission. It also specifies the minimum AL support for all OpenTherm-compatible devices.
The Data-Link Layer is responsible for building the complete frame incorporating the AL data-id and value
and calculating the error-check code. It defines message types and conversation formats and performs error-
checking on a received frame. It regulates the flow of information on the line.
The Physical Layer defines the electrical and mechanical characteristics of the medium and the
mechanism for transmission of a bit, including bit-level encoding. It also performs bit-level error checking on
an incoming frame(OT/+)
OpenTherm Protocol Specification v4.2 Physical Layer
©1996, 2011 The OpenTherm Association Page 15
3. Physical Layer
Number of Wires : 2
Wiring type : untwisted pair *
Maximum line length : 50 metres
Maximum cable resistance : 2 * 5 Ohms
Polarity of connections : Polarity-free, i.e. interchangeable.
* In electrically noisy environments it may be necessary to use twisted pair or screened cable.
The system operates by sending current signals from the boiler unit to the room unit and voltage signals in
the reverse direction. The signals are sent by switching between two defined levels, the idle and active state.
The idle and active levels are dependant of the Power Mode the system is working in.
Note that all specifications should be fulfilled within the complete temperature range in which the device is in
use.
5 5
9 9
Line Line
Current Current
17 17
23 23
Current
Ihigh
Ilow
Time
In low power mode the idle state equals the current signal low level. In medium and in high power mode the
idle state equals the current signal high level
Current
90%
10%
tr tf Time
Voltage
Vhigh
Vlow
Time
In low power mode the idle state equals the Voltage signal Low Level. In medium and in high power mode
the idle state equals the Voltage signal High Level
Voltage
90%
10%
tr tf Time
Active
Idle
Bit value = ‘0’ Bit value = ‘1’
Manchester encoding is a self-clocking code giving the advantage of bit-synchronisation since there is
always at least one transition in the middle of the bit-interval. It also has a fixed average d.c. component over
the frame of half the idle and active levels which allows greater predictability of power supply requirements,
and additionally the absence of an expected transition can be used to detect errors.
Example
1 0 0 1 1 1 0 1
Timing should be reset on each transition so that any timing errors do not accumulate
OpenTherm Protocol Specification v4.2 Physical Layer
©1996, 2011 The OpenTherm Association Page 20
500µs nominal
1ms -10%+15%
100µs 150µs
The primary error-checking method in OpenTherm is provided through the Manchester encoding.
Manchester validity should be checked by the receiver and the data frame rejected if an error is detected.
OpenTherm Protocol Specification v4.2 Physical Layer
©1996, 2011 The OpenTherm Association Page 21
It is the intention that OpenTherm provides suitable power from the boiler unit to the room unit such that no
additional power connection or use of batteries is required for the room unit. With the Smart Power
mechanism the power delivered via OpenTherm can be changed fast and easy.
Any OpenTherm room unit is permitted to exercise option (i) above, or use line-power within one of the
defined power modes
If the OpenTherm room unit is using line power, it always has to start-up in Low Power mode,
Normal (basic) operation of the OpenTherm room-unit must be guaranteed in Low Power mode.
*It is mandatory for a slave device to implement Smart Power support since OpenTherm version 3.0
Medium Power:
• Idle current high
• idle voltage is low
• Available power 136 mW (17mA at 8V) *
High Power:
• Idle current high
• idle voltage is high
• Available power 306mW (17mA at 18V) *
*) Available power at lowest allowed current provided by slave and highest allowed voltage created by
master.
Note: When a master without high power is disconnected for a short time, there’s a change that the slave
goes to high idle current. To prevent this, the slave must have received ID2 with Smart Power bit set before
it’s allowed to switch to high idle current.
3.4.2.5 Initiate High Idle Current (Start for High or Medium Power mode)
5ms
Slave
5ms
Slave
OpenTherm Protocol Specification v4.2 Physical Layer
©1996, 2011 The OpenTherm Association Page 23
3.4.2.6 Initiate Low Idle Current (Start for Low Power mode)
5ms
Slave
5ms
Slave
The room unit shall provide the functionality to operate regardless of polarity of the line signal.
The boiler interface shall provide safety isolation from the mains power line (ref. EN60730-1).
This feature is only mandatory for slave units who actually can create a heat demand. For instance a slave
with cooling only or ventilation do not have this feature.
A slave unit with heat demand control must support an important installation feature which allows the
terminals at the boiler to be short-circuited to simulate a heat demand such as can be done with existing
on/off boilers. The boiler unit should interpret the short-circuit as a heat demand within15 secs of the short-
circuit being applied. This must be supported by both OT/+ and OT/- boilers.
It is allowable that this can implemented by a software-detection method. The software short-circuit condition
is defined as a low-voltage state (Vlow) with no valid communications frame for at least 5 seconds.
1.
COMMUNICATIONS
ACTIVE
2.
SHORT-CIRCUIT
STATE
OpenTherm Protocol Specification v4.2 OT/+ DataLink Layer
©1996, 2011 The OpenTherm Association Page 25
4.1 Overview
• builds the complete frame from the information passed to it from the application layer.
• performs error-checking on an incoming frame.
• defines message types and allowable conversation exchanges.
Data is transmitted in 32 bit frames, with an added start bit (‘1’) at the beginning and stop bit (‘1’) at the end.
The frame format is identical for both directions, being laid out as follows:
The parity bit should be set or cleared such the total number of ‘1’ bits in the entire 32 bits of the message is
even.
The message type determines the contents and meaning of the frame. Seven of the eight possible values for
the message type are defined.
OpenTherm Protocol Specification v4.2 OT/+ DataLink Layer
©1996, 2011 The OpenTherm Association Page 26
These bits are unused in this release of the protocol. They should always be ‘0’.
The DATA-ID is an 8 bit value which uniquely identifies the data item or items being transmitted. A full list of
data ID’s and corresponding data items are listed in the OT/+ Application Layer section.
This contains the 16 bit value of the data item corresponding to the frame’s data identifier. In some
messages, the data-value is composed of two separate items, each of 8-bits in length. These will be denoted
as DATA-BYTE1 and DATA-BYTE2.
4.3.1 Overview
OpenTherm data transfer consists of a series of ‘conversations’ between the devices controlled by a strict
master/slave relationship. OpenTherm requires that the control device, e.g. a room unit, is always the master
and the control plant, e.g. a boiler, is always the slave.
In all cases the master initiates a conversation by sending a single frame. The slave is expected to respond
with a single frame reply within a defined period of 20ms to 400ms from the end of the master transmission.
The typical answering time of a slave should be 100ms or less.
In case the slave is functioning as a gateway (see also § 4.3.2) it must wait for an answer from the next slave
in line, so the maximum waiting time does not apply.
The master unit must wait 100ms (MWT) from the end of a previous conversation before initiating a new
conversation. The master must communicate at least every 1 sec (+15% tolerance) (MCI).
min: 100ms
master
min: 20ms
max: 400ms
slave
Maximum: 1.15s
A conversation is limited to a single exchange of frames. Three types of conversation are possible, listed in §
4.4..
A gateway is an intermediate device that acts as a slave to the connected master, and acts as a master to
the connected slave. The gateway is transparent for all messages sent by the master, unless the message is
mend for the gateway itself. The gateway should try not to disturb the normal operation between Room-unit
and Boiler when it needs to sent own commands to the Boiler. If the Boiler responds fast it may be possible
to sent an additional command to the boiler before handling the command from the Room-unit.
In order to maintain the normal timing between the first master and last slave in the line, the following
applies:
• A message received from the master side is checked. If it is addressed to the gateway, it will be
answered by the gateway, otherwise it is sent to the next slave in line.
• Within 7 ms a message has to be sent to the next slave in the line. In most cases the message
received will be sent. In case the received message is meant for the gateway itself it can sent
another message to the next slave.
• Wait for a answer from the slave (no maximum time of 400ms to answer the master)
• After the answer from the next slave in line is received, a answer is sent to the master. If the original
message was meant for the gateway, then the gateway will create the answer, otherwise the
received answer is forwarded to the master.
• Within 7ms an answer has to be sent to the master.
With the applied restrictions, a total of 4 intermediate devices can be connected in line, and still the slave
response times for the master are met.
OpenTherm Protocol Specification v4.2 OT/+ DataLink Layer
©1996, 2011 The OpenTherm Association Page 28
34ms
7ms
34ms
7ms
34ms
7ms
34ms
7ms
34ms
Max 796 ms
Max
400 ms
7ms 34ms
7ms 34ms
7ms 34ms
7ms 34ms
34ms
In the rest of this section and in the OT/+ Application Layer Protocol section, a function-style notation is used
to describe the various messages in order to aide explanation.
For some messages, no “real” data is being sent. e.g. in a normal Read-Data request. The data-value will be
set to a default value of zero. i.e. two bytes of 0x00 and 0x00.
OpenTherm Protocol Specification v4.2 OT/+ DataLink Layer
©1996, 2011 The OpenTherm Association Page 29
The master is requesting a data value, specified by the data identifier, from the slave. The message type
sent by the master is ‘Read-Data’, as shown above. Typically no data-value is sent and a value of 0x0000
will be used, but in some circumstances the master may, although it is requesting a value from the slave,
also send a value to the slave with this message e.g. for data-verification. This is defined by the OT/+
Application Layer protocol.
The slave should make one of the three possible responses listed below:
The master is writing a data value, specified by the data identifier, to the slave. The message type sent by
the master is ‘Write-Data’, as shown above.
The slave should make one of the three possible responses listed below: (Note that DATA-VALUE may be
modified by the slave in some circumstances.)
A data item to be sent by the master may be invalid in a particular application, but may still require to be
sent. In this case the master may use the message type ‘data invalid’.
OpenTherm Protocol Specification v4.2 OT/+ DataLink Layer
©1996, 2011 The OpenTherm Association Page 30
The slave should make one of the two possible responses listed below: (Note that DATA-VALUE may be
modified by the slave in some circumstances.)
In all cases of errors being detected in the incoming frame, the partial frame is rejected and the conversation
should be terminated. No errors are treated as recoverable.
If the slave does not respond, then the master should note that the conversation is incomplete.
If a conversation is terminated the master should re-attempt the same conversation at the next appropriate
scheduled time for communications.
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 31
5.1 Overview
The Application Layer of the OpenTherm protocol is divided into an Open-Area of data-item id’s and a Test &
Diagnostic area for Member use. Id’s 0 .. 127 are reserved for OpenTherm pre-defined information, while id’s
from 128 .. 255 can be used by manufacturers (members of the association) for test & diagnostic purposes
only. The MemberID codes of the master and slave can be used to handshake between two compatible
devices and enable the use of the Test & Diagnostic-Area data-items. MemberID codes are assigned and
managed by The OpenTherm Association.
Special abbreviations and data-types are used in the Application Layer Protocol section and are defined
below :
LB low-byte of the 16-bit data field.
HB high-byte of the 16-bit data field.
S>M information flow from slave to master
M>S information flow from master to slave
flag8 byte composed of 8 single-bit flags
u8 unsigned 8-bit integer 0 .. 255
s8 signed 8-bit integer -128 .. 127 (two’s compliment)
f8.8 signed fixed point value : 1 sign bit, 7 integer bit, 8 fractional bits (two’s compliment i.e. the
LSB of the 16bit binary number represents 1/256th of a unit).
u16 unsigned 16-bit integer 0..65535
s16 signed 16-bit integer -32768..32767
Example : A temperature of 21.5C in f8.8 format is represented by the 2-byte value 1580 hex
(1580hex = 5504dec, dividing by 256 gives 21.5)
A temperature of -5.25C in f8.8 format is represented by the 2-byte value FAC0 hex
(FAC0hex = - (10000hex-FACOhex) = - 0540hex = - 1344dec, dividing by 256 gives -5.25)
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 32
5.2.1 Mandatory ID’s for OpenTherm devices who support central heating
It is required that OpenTherm-compliant devices support the following data items in case they support central
heating or in case no OpenTherm functions (see 5.2.2) are defined for the device. Please consult the
OpenTherm Function matrix document which contains all mandatory ID’s per function for the full mandatory
ID list.
The slave can respond to all other read/write requests, if not supported, with an UNKNOWN-DATAID reply.
Master units (typically room controllers) should be designed to act in a manner consistent with this rule.
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 33
In OpenTherm are basic functions defined related to central heating, domestic hotwater, information,
diagnostics/service etcetera. For each function is defined which data-id’s are related and are mandatory to
implemented if the function is used. With the definition of functions the interoperability between devices with
the same function is improved. Also the function list can help to select the right product or product
combination.
If a manufacturer states that specific functions are supported then the related data-id’s must be implemented,
unless the data is related to sensors or signals which are not always available in the appliance.
The OpenTherm Function Matrix (excel sheet) gives an overview of all functions with the related data-id’s.
Consult the members area on www.opentherm.eu for the latest published version.
Data-ID’s marked with “B” for a specific function are mandatory for both master and slave.
Data-ID’s marked with “b” for a specific function are mandatory for a master, but only mandatory for the slave
if the data is available (i.e. sensor or input is available in appliance). Also called conditional mandatory Data-
ID’s for a slave.
Data-ID’s marked with “M” for a specific function are mandatory for Master devices
Data-ID’s marked with “m” for a specific function are conditional mandatory for Master devices
Data-ID’s marked with “S” for a specific function are mandatory for Slave devices
Data-ID’s marked with “s” for a specific function are conditional mandatory for Slave devices (i.e. only if data
or sensor is available)
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 34
This group of data-items contains important control and status information relating to the slave and master.
The slave status contains a mandatory fault-indication flag and there is an optional application-specific set of
fault flags which relate to specific faults in boiler-related applications, and an OEM fault code whose meaning
is unknown to the master but can be used for display purposes.
101 R - HB: Master Solar Storage flag8 bit: description [ clear/0, set/1]
Bit 2,1 and 0 = Solar mode
status
000 = off (solar completely switched off)
001 = DHW eco (solar heating enabled)
010 = DHW comfort (boiler keeps small part of storage
tank loaded)
011 = DHW single boost (boiler does single loading of
storage tank )
100 = DHW continuous boost (boiler keeps whole tank
loaded)
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 35
LB: OEM fault code u8 0..255 An OEM-specific fault/error code for ventilation
ventilation / heat-recovery / heat-recovery system
Note : The master decides the actual range over which the control Setpoint is defined. The default range is
assumed to be 0 to 100.
There is only one control value defined - data-id=01, the control Setpoint. The control Setpoint ranges
between a minimum of 0 and maximum of 100. It represents directly a temperature Setpoint for the supply
from the boiler. The slave does not need to know how the master has calculated the control Setpoint, e.g.
whether it used room control or OTC, it only needs to control to the value. Likewise, the master does not
need to know how the slave is controlling the supply.
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 36
The CHenable bit has priority over the Control Setpoint. The master can indicate that no CH demand is
required by putting the CHenable bit = 0 (i.e. CH is disabled), even if the Control Setpoint is non-zero.
The status exchange is a special form of conversation which should be initiated by the master by sending a
READ-DATA(id=0,MasterStatus,00) message. The slave must respond with READ-ACK(id=0,MasterStatus,
SlaveStatus) to send back the Slave Status information in the same single conversation. Since it is
mandatory to support this data object, the slave cannot respond with DATA-INVALID or UNKNOWN-DATAID. A
WRITE-DATA(id=0,…) from the master should not be used.
This group of data-items defines configuration information on both the slave and master sides. Each has a
group of configuration flags (8 bits) and an MemberID code (1 byte). A valid Read Slave Configuration and
Write Master Configuration message exchange is recommended before control and status information is
transmitted.
103 R - HB: Solar Storage flag8 0..255 bit: description [ clear/0, set/1]
LB: bit 0: system type
configuration
0 = DHW preheat system
1 = DHW parallel system
LB: Solar Storage u8 MemberID code of the Solar Storage
member ID
124 - W OpenTherm version f8.8 0..127 The implemented version of the OpenTherm
Master Protocol Specification in the master.
125 R- OpenTherm version f8.8 0..127 The implemented version of the OpenTherm
Slave Protocol Specification in the slave.
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 37
Note 1 ID2 is related to the Room unit and the slave interface of the Gateway It's advised to set bit 0 to the
value according the Gateway (in practice gateways will not have implemented Smart Power at the
Master interface) since protocol version 3.0 it is mandatory to support Smart Power on a slave
interface. A gateway therefore must support Smart Power on the slave interface and handle ID2
and Smart Power accordingly.
Note 3 The product version number/type should be used in conjunction with the “Member ID code”, which
identifies the manufacturer of the device.
ID93, ID94 and ID95 are mandatory for the slave. Every slave has to be readable concerning the brand
information- characters.
Example reading the brand index (ID93), ID94 and ID95 work similarly
To read the string of ASCII characters, the master uses the following command:
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 38
READ-DATA (id=93,brand-index-number,00).
The slave response will be either :
1. READ-ACK (id=93,max-brand-index-number, index-character) Everything OK, the requested character
is returned.
2. DATA-INVALID (id=93,max-brand-index-number,00) The brand-index-number is out-of-range
00 is returned.
3. UNKNOWN-DATAID (id=93, brand-index-number,00) The slave does not yet support ID93
This class of data represents commands sent by the master to the slave. There is a single data-id for a
request “packet”, with the Request-Code embedded in the high-byte of the data-value field.
Example
This group of data-items contains sensor data (temperatures, pressures etc.) and other informational data
from one unit to the other.
36 R - Flame current f8.8 0..127 Electrical current through burner flame [µA]
bits 7,6,5,4:
0000 = Room temp. controllers
0001 = Room temp. sensors
0010 = Outside temperature sensors
1111 = Not defined type
Others are reserved (example: Radiator
valves, humidity, CO2 sensors, wind
velocity)
-W LB : RF and battery special bits 1,0
indication 00 = No battery indication
01 = Low battery (possible loss of
functionality)
10 = Nearly low battery (advice to replace
battery)
11 = No low battery
bits 4,3,2
000 = No signal strength indication
001 = strength 1: Weak or lost signal str.
010 = strength 2
011 = strength 3
100 = strength 4
101 = strength 5: Perfect signal strength
bits 7,6,5
reserved
109 RW Electricity producer starts u16 0..65535 Number of start of the electricity producer.
Reset by writing zero. Writing is optional for
slave.
110 RW Electricity producer hours u16 0..65535 Number of hours the electricity produces is in
operation. Reset by writing zero. Writing is
optional for slave.
111 R Electricity production u16 0..65535 Current electricity production in Watt.
112 RW Cumulative Electricity u16 0..65535 Cumulative electricity production in KWh.
production Reset by writing zero. Writing is optional for
slave.
113 RW Number of un-successful u16 0..65535
burner starts
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 41
This group of data-items defines specific parameters of the slave device (Setpoints, etc.) which may be
available to the master device and may, or may not, be adjusted remotely. These parameters are pre-
specified in the protocol and are specifically related to boiler/room controller applications. There is a
maximum of 8 remote boiler parameters. Each remote-boiler-parameter has a upper- and lower-bound (max
and min values) which the master should read from the slave in order to make sure they are not set outside
the valid range. If the slave does not support sending the upper- and lower-bounds, the master can apply
default bounds as it chooses.
The remote-parameter transfer-enable flags indicate which remote parameters are supported by the slave.
The remote-parameter read/write flags indicate whether the master can only read the parameter from the
slave, or whether it can also modify the parameter and write it back to the slave. An Unknown Data-Id
response to a Read Remote-Parameter-Flags message indicates no support for remote-parameters
(equivalent to all transfer-enable flags equal to zero). In these flag bytes bit 0 corresponds to remote-boiler-
parameter 1 and bit 7 to remote-boiler-parameter 8.
This group of data-items defines parameters of the slave device which may (or may not) be remotely set by
the master device. These parameters are not pre-specified in the protocol and are “transparent” to the
master in the sense that it has no knowledge about their application meaning.
LB: TSP value Ventilation / u8 0..255 Value of above referenced TSP for ventilation
heat-recovery / heat-recovery system.
105 R - HB: Number of TSP’s Solar u8 0..255 Number of transparent parameters supported
Storage by the Solar Storage.
LB: TSP value Solar u8 0..255 Value of above referenced TSP for Solar
Storage Storage.
The first data-item (id=10) allows the master to read the number of transparent-slave-parameters supported
by the slave. The second data-item (ID=11) allows the master to read and write individual transparent-slave-
parameters from/to the slave.
Example
To read a TSP, the master uses the following command: READ-DATA (id=11,TSP-index,00).
The slave response will be either :
1. READ-ACK (id=11,TSP-index,TSP-value) Everything OK, the requested data-value is returned.
2. DATA-INVALID (id=11,TSP-index,00) The TSP-index is out-of-range or undefined, 00 is returned.
3. UNKNOWN-DATAID (id=11, TSP-index,00) The slave does not support transparent-slave-parameters.
To write a TSP, the master uses the following command: WRITE-DATA(id=11,TSP-index, TSP-value)
The slave response will be either :
1. WRITE-ACK (id=11,TSP-index,TSP-value) Everything OK, the value is echoed back. Note however,
that the TSP-value may be changed by the slave if it is out-
of-range.
2. DATA-INVALID (id=11,TSP-index,00) The TSP-index is out-of-range or undefined, 00 is returned.
3. UNKNOWN-DATAID (id=11,TSP-index,00) The slave does not support transparent-slave-parameters.
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 44
This group of data-items contains information relating to the past fault condition of the slave device.
LB: FHB-entry value u8 0..255 Value of above referenced Fault Buffer entry
ventilation / heat-recovery for ventilation / heat-recovery system.
107 R - HB: Size of Fault Buffer u8 0..255 The size of the fault history buffer for Solar
Solar Storage Storage.
LB: FHB-entry value Solar u8 0..255 Value of above referenced Fault Buffer entry
Storage Solar Storage.
The first data-item (id=12) allows the master to read the size of the fault history buffer supported by the
slave. The second data-item (ID=13) allows the master to read individual entries from the buffer.
Example
To read an entry from the fault history buffer, the master uses the following command:
READ-DATA (id=13,FHB-index,00).
The slave response will be either :
1. READ-ACK (id=13,FHB-index,FHB-value) Everything OK, the requested value is returned.
2. DATA-INVALID (id=13,FHB-index,00) The FHB-index is out-of-range or undefined, 00 is returned.
3. UNKNOWN-DATAID (id=13, FHB-index,00) The slave does not support a fault history buffer.
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 45
The cooling control signal is to be used for cooling applications. First the master should determine if the
slave supports cooling by reading the slave configuration. Then the master can use the cooling control signal
and the cooling-enable flag (status) to control the cooling plant. The status of the cooling plant can be read
from the slave cooling status bit.
The boiler capacity level setting is to be used for boiler sequencer applications. The control Setpoint should
be set to maximum, and then the capacity level setting throttled back to the required value. The default value
in the slave device should be 100% (i.e. no throttling back of the capacity). The master can read the
maximum boiler capacity and minimum modulation levels from the slave if it supports these.
HB: Remote Override special 0..255 Bit0..3: Operating Mode DHW (0..15)
Operating Mode DHW 0 = No override
1 = Auto (time switch program)
2 = Anti-Legionella
3 = Comfort
4 = Reduced
5 = Protection (e.g. frost)
6 = Off
7…15 = reserved
Bit4..7: Process bits DHW (Bitset)
[clear/0;set/1]
Bit4 = Manual DHW push2 [no push;
push]
Bit5..7 = reserved (set to 0)
100 R- LB: Remote Override flag8 0..255 bit: description [ clear/0, set/1]
Room Setpoint function 0: Manual change priority [disable overruling
remote Setpoint by manual Setpoint
change, enable overruling remote Setpoint
by manual Setpoint change ]
1: Program change priority [disable
overruling remote Setpoint by program
Setpoint change, enable overruling remote
Setpoint by program Setpoint change ]
2: reserved
3: reserved
4: reserved
5: reserved
6: reserved
7: reserved
HB: reserved u8 0 reserved
The master can read on Data ID 9 the remote override room Setpoint. A value unequal to zero is a valid
remote override room Setpoint. A value of zero means no remote override room Setpoint. ID100 defines how
the master should react while remote room Setpoint is active and there is a manual Setpoint change and/or a
program Setpoint change.
On ID39, the master can read the Remote Override Room Setpoint of a second zone (comparable to ID9).
The master can read on Data ID 99 (proposal) the remote override Operating Modes. A value unequal to zero is a
valid remote override Operating Mode. A value of zero means no remote override Operating Mode.
'Manual DHW-push' means: rise the DHW temperature once to Comfort level and return to previous
Operating Mode (for DHW storage tanks)
The Operating Modes are choosen according to prEN 15'500 with some extensions.
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 47
72 R- ASF-flags / OEM-fault-code flag8 / u8 Application-specific fault flags and OEM fault code ventilation / heat-
ventilation / heat-recovery recovery
73 R- OEM diagnostic code u16 An OEM-specific diagnostic/service code
ventilation / heat-recovery for ventilation / heat-recovery system
74 R- S-Config / S-MemberIDcode flag8 / u8 Slave Configuration Flags / Slave MemberID Code ventilation /
ventilation / heat-recovery heat-recovery
75 R- OpenTherm version f8.8 The implemented version of the OpenTherm Protocol Specification in
ventilation / heat-recovery the ventilation / heat-recovery system.
76 R- Ventilation / heat-recovery version u8 / u8 Ventilation / heat-recovery product version number and type
77 R - Rel-vent-level - / u8 Relative ventilation (0-100%)
78 R W RH-exhaust - / u8 Relative humidity exhaust air (0-100%)
79 R W CO2-exhaust u16 CO2 level exhaust air (0-2000 ppm)
80 R - Tsi f8.8 Supply inlet temperature (°C)
81 R - Tso f8.8 Supply outlet temperature (°C)
82 R - Tei f8.8 Exhaust inlet temperature (°C)
83 R - Teo f8.8 Exhaust outlet temperature (°C)
84 R- RPM-exhaust u16 Exhaust fan speed in rpm
85 R- RPM-supply u16 Supply fan speed in rpm
86 R- RBP-flags ventilation / heat-recovery flag8 / flag8 Remote ventilation / heat-recovery parameter transfer-enable &
read/write flags
87 R W Nominal ventilation value u8 / - Nominal relative value for ventilation (0-100 %)
88 R- TSP ventilation / heat-recovery u8 / u8 Number of Transparent-Slave-Parameters supported by TSP’s
ventilation / heat-recovery
89 RW TSP-index / TSP-value ventilation / u8 / u8 Index number / Value of referred-to transparent TSP’s ventilation /
heat-recovery heat-recovery parameter.
91 R- FHB-index / FHB-value ventilation / u8 / u8 Index number / Value of referred-to fault-history buffer entry
heat-recovery ventilation / heat-recovery
93 R- Brand u8 / u8 Index number of the character in the text string
ASCII character referenced by the above index number
94 R- Brand Version u8 / u8 Index number of the character in the text string
ASCII character referenced by the above index number
95 R- Brand Serial Number u8 / u8 Index number of the character in the text string
ASCII character referenced by the above index number
96 RW Cooling Operation Hours u16 Number of hours that the slave is in Cooling Mode. Reset by zero is
optional for slave
97 RW Power Cycles u16 Number of Power Cycles of a slave (wake-up after Reset), Reset by
zero is optional for slave
98 -W RF sensor status information special / For a specific RF sensor the RF strength and battery level is written
special
99 RW Remote Override Operating Mode special / Operating Mode HC1, HC2/ Operating Mode DHW
Heating/DHW special
100 R- Remote override function flag8 / - Function of manual and program changes in master and remote
room Setpoint
101 R- Status Solar Storage flag8 / flag8 Master and Slave Status flags Solar Storage
102 R- ASF-flags / OEM-fault-code Solar flag8 / u8 Application-specific fault flags and OEM fault code Solar Storage
Storage
103 R- S-Config / S-MemberIDcode Solar flag8 / u8 Slave Configuration Flags / Slave MemberID Code Solar Storage
Storage
OpenTherm Protocol Specification v4.2 OT/+ Application Layer
©1996, 2011 The OpenTherm Association Page 49
106 RW TSP-index / TSP-value Solar u8 / u8 Index number / Value of referred-to transparent TSP’s Solar Storage
Storage parameter.
108 R- FHB-index / FHB-value Solar u8 / u8 Index number / Value of referred-to fault-history buffer entry Solar
Storage Storage
109 RW Electricity producer starts U16 Number of start of the electricity producer.
110 RW Electricity producer hours U16 Number of hours the electricity produces
is in operation
111 R Electricity production U16 Current electricity production in Watt.
112 RW Cumulativ Electricity production U16 Cumulative electricity production in KWh.
All data id’s not defined above are reserved for future use.
OpenTherm Protocol Specification v4.2 OT/- Encoding & Application Support
©1996, 2011 The OpenTherm Association Page 50
IMPORTANT: As of OpenTherm version 4.1 OpenTherm/Lite – OT/- is no longer being tested or certified and
has been demoted to legacy functionality, it should not be incorporated in new designs
OpenTherm / Lite uses the same medium and physical signalling levels as OpenTherm/plus as described in
section 3. It can be implemented using the same hardware as for OT/+.
Voltage
Vhigh
Vlow
thigh tlow
tperiod
Time
Duty Cycle (%) = tlow / tperiod i.e. the % time over the period that the line is low.
The Duty Cycle Period (tperiod) does not require to be constant. The frequency of the PWM signal must lie
between 100Hz and 500Hz (2ms < tperiod < 10ms). The duty cycle can vary between 0% and 100%.
The boiler signals only by changing the current between the Ilow and Ihigh states. The high current state
represents the presence of a boiler lock-out fault. Different from OpenTherm/plus, it can permanently keep
the line in the high current state. It is mandatory for the room and boiler controller to support the transmission
and detection of this feature.
OpenTherm Protocol Specification v4.2 OT/- Encoding & Application Support
©1996, 2011 The OpenTherm Association Page 51
Current
Time
The PWM voltage signal sent from the room unit to the boiler unit, principally represents the water
temperature Control Setpoint It is mandatory for both the room and boiler units to support the transmission
and detection of this signal.
OpenTherm/Lite supports the following application data items, which are shown with their equivalent OT/+
Application Data-IDs.
CH-Enable Tset
90°
CH is enabled
10°
CH is disabled
0% 5% 100% Duty-Cycle
10% 90%
The tolerance of both generation and measurement of the Duty-Cycle signal should be less than ±2%.
OpenTherm Protocol Specification v4.2 OT/- Encoding & Application Support
©1996, 2011 The OpenTherm Association Page 52
A Duty-Cycle less than 5% is used to indicate a CH-disabled state (i.e. “positive-off” or no CH-demand
condition). It is not mandatory for the boiler controller to support this feature, or for the room unit to use it.