Assuming outdoor reset is the same as what we what we call weather compensation in Europe, the main function is to adjust the temperature setpoint of the heatpump based on the outside temperature.
As the outside temperature drops the required flow temp to heat emitters rises. Set correctly you can have a reasonably consistent inside temp without a thermostat.
Extract from Worcester Bosch heat pump technical info.
The above functionality can mostly be achieved with this code.
Code:
float ost;
ost = 20 - Outside;
WCtarget = ((WCcurve * 0.16 * ost) + 20);
WCtarget += WCofset;
Outside is the measured outside temp
WCcurve is the chosen heat curve (0.1 to 10, try 3 for underfloor heating, 5 for radiators)
WCofset is the chosen ofset (-10 to + 10)
WCtarget is the output of the equation and therefore the target temp for the heat pump.
Whilst this code works fine it takes a lot of tinkering with to get the exact settings for YOUR HOUSE.
Simpler code, simpler setup for the same result.(I've not tested this but see no reason why it won't work)
Code:
DesiredWaterTemp = map(osTemp, coldOS, hotOS, coldWater, hotWater);
osTemp it the current outside temp
coldOS is the outside temp on a cold day, you need to record this value and the required water return temp needed to heat your house.
coldWater is the return water temp you recorded on the above cold day
hotOS is the outside temp on a warm day (that still requires heating), you need to record this value and the required water return temp needed to heat your house.
hotWater is the return water temp you recorded on the above hot day
DesiredWaterTemp is the flow/target temp from your heat emitter or buffer tank.
Hope this helps
Steve