Understanding Feed Forward

Greetings,

Just finished up a beer here and have an empty fermentation chamber (upright freezer); nothing but the fermentor (conical) in there.

Updated the software to Brewblox Release 2025/03/05.
Added my ambient sensor to my PID blocks.
I have an ambient sensor in the garage, which is where the fermentation chamber is located, and where the brew day magic happens as well (RIMS tube, insulated mash tun).

I have 4 PIDs: Chill and Heat for the fermentation chamber, Mash PID which drives a set point driver for the RIMS PID.

Now for the discussion…
I currently have the fermentation chamber set to 37F and the ambient temp has been swinging from about 76F to 81F daily.
In my mind, the only reason that the chamber temp would warm up is due to ambient losses.
Would the ideal Kff value be tuned by setting P = I = D = 0 and adjusting Kff for the best possible control?
This makes sense to me.
This also makes me think that once Kff is set correctly, P, I, and D will have to be adjusted to no longer compensate for the Kff value that is now accounted for separately.
Is this how you envisioned the process of introducing Feed Forward?

I will save my thoughts on the Mash PID for later, so we can focus on the thoughts above.
Thanks for your thoughts.

I will add some thoughts that just surface now after looking at some graphs.
With guidance from the community here, I remember tuning PID values with a setting near ambient temp so that ambient losses would all be accounted for with I over time.
If I performed that tuning correctly, adding Kff gain should not require adjusting original PID values.
Kff should handle ambient losses ahead of I building slowly.

I guess I am still asking for a good technique for setting the value of Kff.
Should I leave the PID values as they are and adjust Kff to minimize I?

Thanks for your thoughts.