```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
}
```
