YAROP - Yet Another Reflow Oven Project

I hope this is the correct place to post this.
I am using the PID Beta6 library to control a reflow oven.

The Sensor will be a type K Thermo couple with Maxim MAX 6675 digitiser.

I have copied the PID Sample2. I still need to make more changes. The following is a shell of my code

Init Variable
Init IO
Setup PID

Loop for ever
If (start) Preheat = 1
 While (Preheat){
  
    //Set Point Ramp
     if(millis()-RampStartTime<90000)
     {
       Setpoint = ((double)(millis()-RampStartTime))/(90000.0)*150.0;
     }
     else {Setpoint = 150;
     preheat =0;
     Soak = 1; }
   
     //Set Tuning Parameters based on how close we are to setpoint
     if(abs(Setpoint-Input)>100)pid.SetTunings(6,4,1);  //aggressive
     else pid.SetTunings(3,4,1); //comparatively moderate
   
     //give the PID the opportunity to compute if needed
     Input = analogRead(0);
     pid.Compute();
   
     //turn the output pin on/off based on pid output
     if(millis()-windowStartTime>4000) windowStartTime+=4000;
     if(Output > millis()-windowStartTime) digitalWrite(0,HIGH);
     else digitalWrite(0,LOW);
 }
While (Soak){
//do soak (150 to 235 in 90 seconds)
//Drop out soak

While (Reflow)
//Hold temp at Reflow ( 235degree)
//Drop out of reflow

While (Cool)
//Turn exhaust fan on
// drop  out when cool

Start will be instigated using a PB on an interrupt. Emergency Stop, another interrupt will kill the oven.

This project is at the ideas stage and will develop as I have time to put in it. My oven is quite capable of meet the needs as I simply do control it manually by flicking the top elements on & off for the ramps and temp holding. Actual built story will be posted on my website when that gets up.