OpenTherm protocol, anyone interested?

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?

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

me too, interest

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

@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 :wink:

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.

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. :frowning:

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 :wink: ) I'm talking about this schematic.