Rule reminder
'Avere caldo' = to be hot / to feel warm (literally: to have heat). 'Avere freddo' = to be cold / to feel cold (literally: to have cold). These refer to how a PERSON feels, not the weather. For weather: 'Fa caldo' (it's hot) / 'Fa freddo' (it's cold).
Come si dice 'I am hot' (I feel warm)?