Block Heater automation based on outdoor temp


Hi folks, this is for turning on your block heater in the morning earlier if it’s colder outside, it has a couple time based triggers at the beginning which run the piston and then a series of conditions which check the temperature at certain times.

I.E for the block heater to turn on very early it must be very cold.

All the times and temperatures are easily adjustable and adding more specific or narrow temp/time ranges should be easy with the current layout. If I update the piston with more specific control or cleaner execution I will post again here.

PS: the last condition is meant to shut the switch off if it was left on after you leave the property


Hi, I can read the logic of the piston but am struggling as to the logic of a window of time AND a window of temperature at the same time. As I see it there will be more chance of the heater NOT turning on whilst it is still cold outside.
Being from a warm climate I don’t know what a block heater is, but I would have thought that the heater status would be a function of the interior temperature, not the exterior.
Thanks for sharing. Hope you can put my mind at rest.


This really had me confused so I spent far too long reading the code. I think i understand it all now. My only suggestion, for what it’s worth would be to review based on time and whether the temperature is less than a limit. This would prevent the rare events where it is colder than the limit at a given time (colder than it was an hour before).
What happens if at 9am the temperature is -8.5C? I’m focused on the anomalies rather than the norm. Thanks for providing my mental gymnastics for the day.