Zehnder ComfoAir CA350 integration via serial connection (RS232) and MQTT

Yes, that’s what I’m talking about. I connected to the Q350’s RJ45 port, into a keystone connector with open punchdown LSA’s at the back. Then, going by T568B wiring, I measured between pins 1 (orange/white) and 8 (brown). I couldn’t get a DC voltage out of that…
(I like to measure and confirm before I hook anything up!)

I think I’m starting to understand my confusion, documentation is very sparse, and there are a lot of different repo’s

This one by hcouplet, is for Q models, but doesn’t state clearly how the RJ45 is wired. If I dig deeper into matm3u’s repo, I read:

1. Cut the cable and use

* RJ45 White/Brown -> black in VMC
* RJ45 Brown -> Red in VMC
* RJ45 green  -> white in VMC (CAN_L)
* RJ45 orange -> yellow in VMC (CAN_H)

This suggests that the RJ45 doesn’t serve much purpose, it’s just a form of conveniently (dis)connecting the ESP unit.

On the other hand, Yoziru’s repo, also for ESPhome and Q models (??), does use the RJ45 connector, but states it doesn’t supply 12/24v off the RJ45, and you need to get it elsewhere.

I guess I’ll take my own approach and do a separate connector for power, and do data over the RJ45 without cutting any cables…

He! Did you got it to work with the analog input? I have a E300 and it has the same technical schematics. Would be great to control my unit via home-assistant.

Hi everyone,

I’m trying to connect to the serial port of my WHR950, which is located at the top of the unit (I’ve attached a picture for reference). Unfortunately, I’m not seeing any data passing through when attempting to connect. This is particularly troublesome as the front display of the unit is not functioning, so I can’t control it through the usual interface.

Has anyone experienced this issue or have any suggestions on how to troubleshoot this problem? Any help would be greatly appreciated!

Thanks in advance!

Where is this RS port connected to on the board? When connecting make sure that the cabling to the unit’s board is in line with the cabling described here.

Hi adorobis,

I noticed, in several of your posts that your CA unit shows a higher Supply Temp. than the Return Temp.
In this post Dec 2021 the Outside Temp. is quite low (7 C), so it shouldn’t be possible in a passive heat exchanger to have the Supply Temp. as high as the Return Temp.
Moreover, even if the heat exchanger had 100% efficiency (real Supply Temp. = real Return Temp.), it should not be possible to have 1 K difference between measured Supply Temp. and measured Return Temp. The accuracy of the NTC sensors is stated in the CA 350 Installation Manual and is +/- 0.2 K @ 20 C.

I see the same “issue” in my CA 350 and I wonder if the temperature sensors are possibly mixed up in the unit?

Yeah, I’ve noticed that as well and to be sure where the problem is coming from I’ve even installed 4 ds18b20 sensors connected to an esp module. And the temperatures seem to be more correct - those sensors are not installed at exactly the same locations, I tried to keep them within the air flow and maybe that’s preventing some influence of the chassis or something like that. I have also created template sensors that calculates the efficiency for both sets of sensors but the results are strange sometimes, anyway quite similar. I don’t have long term stats for this apparently so can’t compare how it looked like in colder weather.

Edit: actually it is quite the opposite. Looks like supply temp is always lower than the return temp so this looks good. Not sure what was in those charts before but it seems to be correct in the last few months at least.

But when I look at the history now I believe that the sensors are swapped, probably a mistake in the RS232 protocol documentation, or some other reason. I’ll swap it in the code in free time and see how it works (and probably be able to remove the additional sensors).

Nice plots. Is the last plot from your Dallas sensors or is it from the CA built-in sensors?
Yes, I think the temperatures in this plot are as expected with higher Return Temp. than Supply Temp. Particularly during the night time, when it is colder outside.

I also first had the idea, that the order of the temperatures in the 0x10 and 0xD2 messages could be swapped, but then I found posts from other users in this thread, where the Return and Supply temperatures looks more reasonable (Supply Temp. lower than Return Temp.). If we assume that all implementations follows the “Protokollbeschreibung Zehnder ComfoAir”, then I doubt that the documentation is wrong.

Your other theory is, that the T2 (Supply) and T4 (Exhaust) NTC sensors are mounted on the chassis close to the fans and conducted heat from the fans are affecting the measurements. That sounds likely, but then it is definitly a bad design and it makes it impossible to estimate efficiency of the device. Likely the efficiency estimate will be to optimistic. I guess the T2 and T4 sensors can be off by several degress.

It is from the built-in sensors. Here are both built-in and dallas ones on one chart:

I would agree, especially that last months show rather proper values in my case.

The are mounted on the chassis but on the opposite side of the air duct in relation to the fans. Moreover the fans are running on a low speed most of the time. It might just be a matter of proper calibration - maybe they do it in the factory? Or they don’t and that’s why such differences? Not sure really and I don’t have any way to calibrate my Dallas ones so hard to say.

Thanks a lot for the nice plots.
Your ESP sensors seems to track the true air temperature much better than the built-in sensors.
The built-in NTC sensors would not need to be individually calibrated. They should have a native accuracy of +/- 0.2 K, as stated in the Zehnder Installation Manual and can be replaced without any calibration.
I think you are right, that the issue is heat conduction from the fans through the chassis to the sensor. Maybe it is a deliberate “bad” design from Zehnder :slight_smile: -it will show a higher than true efficiency of the unit.

Hey @julianpas help here please!
I’ve a Comfoari 180 with the Comfosense interface wired up.
CAn you better explain how to wire in parallel my ESP32 C3 I intend to use?
I put it together the can bus interface, dc stepdown regulator and the esp32.
Now what are the steps?
Many thanks in advance!

Hi samumar, from the plans for CA180 it looks like it’s the same as mine (CA310) in terms of wiring. So the images on my github page should be comparable. I haven’t used the ESP32 C3 variant but it seems to have two hardware UARTs so it should work even better but I don’t know what would be the right config in the ESPHome yaml file for the UART section for this board.

Lastly my design is not to wire the board in parallel bur tather in series with the ComfoSense so it acts as a proxy for the ComfoSense unit. This is neccessary because the RS232 protocol is not capable of multi-point operation.

If you share more your curent setup I can try to help describe what you need to complete it. It sounds like you got the power side done and have some of the wiring too. Did you get as far as to have the ESP32 board work on it’s own without the ComfoSense unit?

1 Like

Ok got it thanks.
The thing is that the machine is mounted vertical on the wall and the lan cable connection is on the backside at the bottom and it’s not easy reachable. Can’t see any screw to open it up.
But I have this green connector, do you think I can wire the canbus straight from there?
Using a voltmeter looks like the 1st pin is the ground and the 4th is the line, pushing out 20V.

Yes this is directly connected to the RJ45 port inside the unit which is RS232 interface. So you get the Vcc, GND, RX, TX pins there. My unit has the same connector but with 5 pins the last one being simply a PE ground pin.

Awesome so do you think I can just try to wire the canbus on rs232 interface directly? Leaving the comfosense connected?

You seem to call this a canbus but I don’t think this designation is right as this is a RS232 serial interface which is not actually a bus but a peer-to-peer connection. Therefore you can’t wire them in parallel this is not how the RS232 serial protocol works. It expects that there are exactly two endpoints that each drive the TX line on their end. Also the ComfoAir protocol itself requires bi-directional exchange to execute commands and fetch data and if you had two endpoints trying to do that they will mess each other all the time. This is why I built the solution as a proxy so that it can make sure not to overlap communication between the two.

Again I would suggest to start by replacing the ComfoSense altogether and see if this works before you try to integrate it as well. Also make sure you are using the right RS232/TTL tranciever because RS232 uses up to 15v signalling while the ESP32 UART is 3.3v only and you will fry it if you wire it directly to the TX/RX pins on the unit.

Not sure if I can do it as the comfosense is connected in a very difficult position which I cannot easily reach :frowning:
My components are wired this way, yellow and green are the ones from V+ and GND (putting out 20V) to a stepdown to 3,3V. Purple and blue are tx/Rx going into the canbus.

Where do the blue and purple cables on your picture go? The module you got is indeed a canbus adapter but there is no canbus interface on the comfoair or comfosense units to my knowledge (at least on the lower end devices like ours)

Blue and purple should be connected to RX/TX on the RS232 interface, the green one in the photo I posted above. While the other 2 pins are for V+ and GND. Isn’t it correct?