```plantuml [*] --> Idle Idle --> Cooling : ambient > setpoint &&\nwort > setpoint Idle --> Heating : ambient < setpoint &&\nwort < setpoint state Cooling { [*] --> CoolIdle CoolIdle --> CoolerRunning : wort > threshold &&\nidleTime > minIdleTime CoolIdle : idleTime CoolerRunning --> CoolIdle : wort <= threshold CoolIdle --> Heating : wort < setpoint } Cooling : minIdleTime state Heating { [*] --> HeatIdle HeatIdle --> HeaterRunning : wort < threshold HeaterRunning -> HeatIdle : wort >= threshold HeatIdle --> Cooling : wort > setpoint } ```