Proportional Mixer Valve with PID Controller?

Dear Forum,
This is my first post but let me thank you all for 100’s of interesting and helpful articles I was reading through before.
In the last month I made to build my heating, mostly from discrete components.
For the management I decided to use home assistant with ESP home.
I’m using 3 way valves, powered by 24 V and controlled by a signal 0 - 10 V.
With that signal I can directly set the valves to any position between 0 and 100 %.
To get the output signal, I connected a GP8403 DAC to the I2C output of an ESP32.
(Which allows me to control all 3 valves over 2 wires.)
The heater is a wood burner that consumes logs or pellets. Meaning also, that the water in the return should not be below 60°C (degree Celsius).

TH: Hot water, returning from heater
TR: Water return into heater
TI: Water from buffer

Signal 0 V means: TR = TI
Signal 10 V means: TR = TH

For everything in between: TR = x * TH + (1-x) * TI
or: x = (TR - TI) / (TH - TI)

TR can be set through a slider.
Putting this formula into a template sensor was easy and the whole things works pretty fine.
The temperature sensors (DS18B20) are updated every 15 seconds and the heater is not rapidly moving. So the sensor is pretty stable and only moving slowly over the time.
Another sensor is a little more “nervous” because in temperature sensors are not measuring that precise and I see that the target temperature is jumping around its targeted value.
So I thought a PID controller would do the trick.
Unfortunately, I found no clue to get started with that. All posts I found are about switching an output on or off.
Maybe someone of you was facing the same issue?
Any help would be highly appreciated.

PS: If anyone is interested in the rest of the installation, I’m happy to share what I’ve done. E.g. using Danfos Alpha3 BLE connection, using an ESP32 as bluetooth proxy or adopting to the real mixer curves with a templated GP4803 output.

Have you seen the PID Climate component?