I don't think you will find one that fits your needs/Code..
Auto tuning a PID requires a set point and process value of course.
P = comes in different flavors GAIN or Bandwidth..
For heating it's normally proportional band width which means it dictates the output level depending how close to the Set point the process value it. To high of a P value may not allow you to reach your goal, to small could make it jittery..
The (I) integral for heat controllers is basically a time sampling factor.., basically amount of ms to sample and sum the error before making output adjustments.
The (D) derivative is a rate which the clime of heat is allowed. Higher values normally will retard the output lower or longer..
etc.
Like I said, I think you are on your own
\
P.S.
Auto tuning involves slamming the output on, measuring the rate of clime for heat and the rate of decline for cooling from the set point, once the first value is reached you lower the output to half of that in both directions and keep flags around to know at what point you are at.. If it takes too long with the new values then you split those values between the old and new etc.