Heating control via HA and ESPhome

Hello everyone,

I am planning to control a large heating system with two heat generators, a hot water tank, and three heating circuits using ESPhome. On a smaller scale, I have already implemented this successfully, so I don’t expect major software issues. The system runs stably and reliably. Various functions such as weather forecasts, presence predictions, automatic adjustment of heating curves, runtime optimization for heat generators, calendar functions for events, and other features are integrated.

The goal is to generate heat energy only when it is actually needed—except in cases of energy surplus, for example, from PV electricity, while complying with legal requirements like legionella protection.

Additionally, the system should be designed in such a way that no one has to actively manage it. Especially with large systems with many users, it’s often just about keeping the rooms warm, not about efficient heating.

In light of climate change, I see enormous potential for CO2 savings here.

After completing the project, I would also like to create and publish a detailed documentation that describes all aspects in detail.

Now to my problem: the right hardware. I need a suitable controller. Since communication between Home Assistant and ESPhome is particularly stable, the controller must be based on an ESP. This way, important connections can be configured directly on the ESP, which increases reliability. In my model test, for example, the entire PID controllers as well as some safety chains are configured on the ESP, so that the system continues to run reliably even if Home Assistant is unreachable for any reason.

For such a project, I can’t simply solder a few shields to the ESP and put it in a junction box. It needs to be a certified controller that can be mounted on a DIN rail since it will be integrated into a control cabinet. The cost is of lesser concern in such a system (at least in operation, though more so during testing :wink:).

Here are my requirements for the controller:

  • Ethernet port
  • Analog inputs (0–10 volts)
  • Analog outputs (0–10 volts)
  • Digital inputs
  • Digital outputs
  • Relay output (230 volts)
  • 1-Wire input for DS18B20 temperature sensors

I hope someone has an idea about which hardware I could use to implement this.

I have already looked at the Industrial ESP32 PLC. However, it cannot be fully configured via ESPhome. Additionally, 1-Wire and Ethernet cannot be used simultaneously on that device.

I look forward to your feedback.

Best regards

Certified to what standard?

UL?

A-tick?

CE?

A CE certification should be sufficient.

Have a look if they have right model for you.

That’s heading in the right direction. I’ve taken a look at the controller.

  • Ethernet port: Integrated via the W5500 module and appears to be configurable in ESPhome at first glance.
  • Analog inputs (0–10 volts): Managed via an ADS1115 module and also configurable in ESPhome.
  • Analog outputs (0–10 volts): An extension must be used for this. This extension works with an AD74413R, which is not configurable in ESPhome. A solution needs to be found for this.
  • Digital inputs: No issues.
  • Digital outputs: No issues.
  • Relay output (230 volts): No issues.
  • 1-Wire input for DS18B20 temperature sensors: I’m not sure about this.

What kind of output you need? Could you use pwm from transistor output and add a certified rc-filter to smooth pwm?

For my curiosity, why you have doubts with 1-wire?

The kincony brand have a good reputation around here, and there are din rail versions. Not sure whether they are certified, and there are too many versions to go through as I post.

I have already looked at this PLC:
https://www.industrialshields.com/industrial-esp32-plc-iot-lp-202401
It turned out that the 1-Wire signal doesn’t work simultaneously with Ethernet, so I would have to switch entirely to WiFi.As for the analog signal, I can’t say for sure. I suspect it might also be possible with a PWM signal using a low-pass filter. However, in the documentation of common heating systems, only a 0-10V analog output is described.

And reason for that?

They couldn’t tell me that. I also wanted to know how the analog signal is generated. Here, I received feedback that it is generated by a PWM signal. However, they couldn’t tell me whether a low-pass filter is installed and within which frequency range I can generate the 0-10 volts.

Because of this, and because the analog input signals are processed by an ADS1015, which cannot be reliably processed by ESPHome, I have initially refrained from using it and am looking for alternatives. If I don’t find anything suitable, I would order this controller and test it.

And the reason for that?

I need to correct myself here. I just read through the documentation, and it says that the ADS1510 is also supported. Somehow, I overlooked that.

1 Like