two things i noticed in your code:
as safety features, you should add in a debounce-like feature to your temperature actions.
i.e., if your temp bounces over a set point for a millisecond, you dont want your lights/other devices cycling on and off. make it hold temp for 5-10 minutes before you take an action.
along that same vein, if your temp probe freaks out and reads way above or below your temperature range, you should have it throw and error and ignore actions. specificially, if your temps show greater than 95 or less than 65, you know that those values arent reality and shouldnt result in a taken action.