Looks like you can use a regular curve and apply some 1d perlin noise to it.
Again you'll need to define either a min/max range or a maximum rate of change.
Since you're using a formula/procedurally generating the temperatures anyway, might as well do it for the whole year in one go. The coolest temperatures in winter and the warmest in summer. It would just be another similar looking curve as the daily temperatures but on a different timescale. That's actually how perlin noise works in general.
If you don't mind waiting a bit I can experiment later on putting this together, probably with a variables for yearly, monthly, and daily variation. A tropical location would have less variation across seasons than others. Maybe also need a start/target temperature variable, which would basically be your average.