-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenTherm v3.0 Compatibility? #1
Comments
Hi @regnerus , |
Hi @ihormelnyk, thanks for the fast reply! I know that the specification is not online... I actually emailed the OpenTherm association about this however you have to become a (paid) member in order to see those documents. I have the Honeywell Round Modulation thermostat which supports OpenTherm. I tried however to build an OpenTherm adapter to the exact schematic and components as provided on your page and validated that all the connections are working as supposed to, however I get a constant timeout message from the Arduino library. The wikipedia page about OpenTherm https://en.wikipedia.org/wiki/OpenTherm mentions OpenTherm V3.0 which has something called OpenTherm Smart Power, to allow thermostats running of the power from the connection, which got me wondering if the actual voltages could differ in that case or if just the amperage is different. Currently I am just trying to explore all options to why the adapter I've built is not working... |
Hi @regnerus , |
@ihormelnyk I used the exact schematic and components as in this post (http://ihormelnyk.com/Page/arduino_opentherm_controller) with the exception that I used a rectifier IC that I still had laying around instead of 4 separate diodes. Here are two screenshots from Eagle, I used to board layout to visualise how the components fit on the breadboard but I soldered the connections by hand so the traces are different in reality of course. I'll update this post with some pictures of the physical breadboard and the connections when I get home. Update I see now that the value of the transistor is wrong in the schematic, I used the BC558A. I also created a version on a solderless breadboard so I can quickly debug by switching components. For debugging I am currently running the code on an (original) Arduino Uno, however if I get it to work I would like to include an ESP8266 controller (For example a Wemos). |
So you've used this sketch https://github.com/ihormelnyk/opentherm_library/blob/master/examples/OpenTherm_Demo/OpenTherm_Demo.ino and J2.IN is connected to UNO GPIO2 and J2.OUT to GPIO3? Does boiler enable heating when adapter is connected? |
Any updates for this topic? I have a BAXI boiler which run with OT 3.0. But I found that with This OT Library, I can only read states from boiler, but cannot set any thing including boiler status(heaitng on off extra). |
@zenz there is 4.2 version already, it is fully compatible with 2.2 version, there are no breaking changes. |
As I tested with my BAXI boiler, it's running with OT3.0, I have to add some more status bits to make it to work. I have to set bit 5 to true to disable winter mode. or else the boiler will enable CH automatically. so weird. |
You are not the first who is saying about weird Baxi logic. A common practice in addition to clearing CH flag is to set the boiler temperature to 10 degrees celsius. |
Hi @senz |
Just look at code and wonder why setBoilerStatus() call buildSetBoilerStatusRequest() were in turn seems that setBoilerStatus() really is getBoilerStatus(), and right setBoilerStatus() must call buildRequest(OpenThermMessageType::WRITE_DATA, .... |
Should read the OT protocol definition. READ_DATA is correct for this MSG ID. |
@Evgen2 a quotation from OpenTherm 2.2 specification, just in case:
|
In my case, with a BAXI boiler with OT 3.0 using the default library opentherm_library, almost everything it's working fine (enable / disable hot water, set temperature of hot water, enable / disable heating, setting the temperature of heating with PID) except tell to boiler when must start heating or stop, in other words, the thermostat. If I enable the heating, it's start heating and if I disable heating it stops, but I think that is not the correct way..... |
OT protocol makes me crazy OK
but how you fix it? |
I already write down my solution with BAXI boiler, please check my above post. |
Check this repo for what you want. |
very interesting.
|
Please read OT definition. |
With OT you have two controllers on both side of OT. The main task of gas boiler's controller is to control gas boiler, not to read-write OT bus. I have no idea how boiler's controller work, in worse case it don't use interrupts as we have in void OpenTherm::sendBit() function (with delayMicroseconds(500) in it!). So it seems that we should use OT no more than 50% of time, One sendrequest and get response take about 250 ms in my case, and 2 times per second for communication is good enough/ And there are no reasons for fast change of CH temp within 1 second except measurement noise. On the other hand boiler's controller react within about minute, not seconds and there is no cense to change target temp every second. Moreover, my Navien has some too fast cycle protection. It seems to me more reasonable to calculate the average temperature for some time and use this average value for PID regulator |
@Evgen2 |
and in your code there is no limits for number of communications per second
In my case slow down from 65 to 45C output T take about 15 min. From 45 to 65 it take about 20 min, with delay about 1 min from time of command to burning flame, next 30 sec took low flame with 15% modulation, next 2 min goes to 40% . |
I'm trying to switch "eco" mode on a de Dietrich boiler. It controls DHW pre-heating. It can be set in the configuration menu of the boiler, but I don't know how to set it in OpenTherm. Their OpenTherm-based thermostat AD301 has this feature documented in the manual, so I think it should be possible. The boiler reports OT version 3.0. I tried setting the bit 6 in the master status, but that disables DHW completely. I tried also setting the bit 7 and all bits in the master configuration, but it doesn't seem to be doing anything. There are zero TSPs reported and no other remote parameters than the two specified in OT2.2. I tried iterating over all unspecified IDs and found four that can be read: 35, 36, 113, 114. The first two change value when the boiler is heating, one of them looks like fan speed. The other two always return zero. Any suggestions what else could I try? |
I'm dumb. Only now I tried the obvious thing. It's the bit 1 of the master status which disables and enables the eco mode on this boiler. I guess that's the reason why bit 6 was added later to have something to actually disable DHW. What a mess of specification. |
I understand this might be the wrong repository to ask such a question, however I was wondering if you have any information about compatibility with OpenTherm protocol specification v3.0. Unfortunately I can not find the specification information online but as I understand the signal low and signal high voltages are higher then with specification V2.2.
If I measure the voltage between the OpenTherm connections on my central heating unit/boiler I measure around 26.5V. Would it be possible to switch out the Zeners to higher value ones? Furthermore does anyone happen to know what the signal low and signal high values for V3.0 are? I assume the signal low will be around that 26.5V, but is there a method to also measure the signal high voltage?
Help would be greatly appreciated however please do not hesitate to close this issue since it is not directly related to the OpenTherm library.
The text was updated successfully, but these errors were encountered: