How to program a setup before use?

flameproof:
Is it possible to set a value in the setup externally with i.e. a rotary encoder?

Well yes, but make sure it's really where you want to do that?
Presumably, you want to be able to change the set point while it's running, so the set temperature should be available from loop()

The more I think about it the more I believe it's not because it would require some sort of loop which I guess is not available in setup.

You can run a loop in setup(), but then the loop within setup() is not accessable from loop()

What I want is:

Connect to power
Set the desired temperature with the encoder
Push a button to confirm it
Let it run till I disconnect

OK. here's a possibility, in pseudocode:

void setup() {
      set up anything required for the rotary encoder
      set up anything required for the PID
      while button not pressed {
           set_temperature();
      }
}

void loop() {
      set_temperature();
      if button pressed
             copy new set point into temperature variable(s)
      do anything required to run PID
}

set_temperature() {
    check for input from rotary encoder
     if it has input, set temperature variables
     else return
}