# OpenTherm protocol, anyone interested?

**URL:** <https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201>\
**Category:** Interfacing\
**Created:** [February 4, 2009, 8:14pm UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201 "2009-02-04T20:14:22Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [February 4, 2009, 8:14pm UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/1 "2009-02-04T20:14:22Z")

</div>

The OpenTherm protocol is used for communication between central heating units and digital thermostats. Honeywell Chronotherm thermostats use it, for example.

The protocol consists of a 32 bit message, Manchester-encoded (so it's similar to RC5) and it is used to communicate, for example, burner status, room/outside temperature, if warm water is being drawn, etcetera.

If have found some information about the message structure (but not about the content, so I know that bits X to Y are data, but not what kind of data), and an electrical schematic that can be used to evesdrop on the communication between heater and thermostat.

I am thinking about starting a project to read this information from the wires and decode it for use in external applications.

Has anyone already built an implementation of OpenTherm? Would anyone be _interested_?

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [March 16, 2009, 12:14am UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/2 "2009-03-16T00:14:32Z")

</div>

Interested: yes! (stumbled upon your post via Google)

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [March 16, 2009, 4:32am UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/3 "2009-03-16T04:32:46Z")

</div>

me too, interest

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [March 16, 2009, 8:53am UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/4 "2009-03-16T08:53:37Z")

</div>

What you are looking for is probably something like this  
world wide web dot domoticaforum.eu/uploaded/bwired/OpenThermostat.pdf  
It's in Dutch but exactly what you are looking for?  
I'm going to try to make an implementation to manipulate the opentherm stuff. The 2.2 protocol can also be found with google ;-).

regards

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [March 17, 2009, 4:32pm UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/5 "2009-03-17T16:32:23Z")

</div>

@wwsparks: yes, that's what I found. My Dutch is pretty good, so no problems there.

I ordered the PCB and bought the part and everything's now lying here waiting till I have some time to solder everything together.

Don't know about the 2.2 protocol, but I found some info about an OpenTherm tester tool, which explains a little more in detail what's going on on the bus. Google for _F-401\_05_, that's the document name.

When there's (Arduino) code I'll post it, but it can take a while. Too many interests asking for attention 😉

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [October 18, 2009, 10:00am UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/6 "2009-10-18T10:00:09Z")

</div>

The PCB arrived and I built the circuit, but it doesn't quite work.

When the circuit is placed between the heater and the thermostat, the thermostat displays a fault message even though the LEDs are flashing (though very faintly).

I think the circuit draws too much current, leaving not enough for the thermostat. That, or the combined resistance in the line exceeds the maximum resistance mentioned in the spec (5 ohms). I know other people had it working, but maybe their heater was closer to the thermostat resulting in less wire resistance.

Unfortunately I do not own an oscilliscope to check the actual values of the signals going over the line.

So I'm stuck now.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [October 18, 2009, 10:29am UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/7 "2009-10-18T10:29:16Z")

</div>

I have to correct myself.

When I was debugging, at some point I replaced the TLC272 opamp with a 741. This was kind of silly because, except for the inputs, the pinout is different from the TLC272. But... that was the only time when I saw the LEDs flash.

Replacing the 741 with the TLC272 again made the system go in error mode: full heat on. ☹

Replacing the 4.7 ohm resistor with a 3.3 didn't improve things, nor did removing (bridging) the LEDs or skipping the rectifying diodes (in order to gain 0.7 V on the input voltage).

For the curious (or equally desperate 😉 ) I'm talking about this schematic.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 6, 2021, 7:57pm UTC](https://forum.arduino.cc/t/opentherm-protocol-anyone-interested/39201/8 "2021-05-06T19:57:33Z")

</div>

Closed on May 6, 2021, 7:57pm UTC


