“Alexa, start the car”: warm up your car remotely with Raspberry Pi

Richard from the Break It Yourself YouTube channel could never remember to start the car ahead of time if it was super hot or cold outside. Sick of suffering through a less-than-comfortable start to his journeys, he decided to hack Home Assistant using Raspberry Pi to start the car automatically.

Subscribe to Break It Yourself; it’ll make Richard ever so happy

Disclaimer: this will not work with non-fancy cars, like mine. Break It Yourself Richard’s car key has a function that lets you press a button three times, holding it down for three seconds on the third press, and the car will start. My car key does not have that feature so you will still find me on my driveway, kettle of warmed water in hand, scuttling about trying to de-ice my windows. It keeps me humble.

A dining table for mice

Hardware

  • Raspberry Pi Zero W running Home Assistant
  • Push pull solenoid
  • Relay module
  • ESP32 development board running ESPHome, a Home Assistant extension
  • Bits of wood and some light carpentry skills

How does it work?

The Pi Zero runs Home Assistant and talks to the ESP32 board wirelessly. The ESP32 board activates the hardware components which physically press the button on the car key. ‘Remote Start’ and ‘Multi-Relay’ are the ESPHome software add-ons you need to make this happen. ChatGPT wrote the code the ESP32 board uses to get the push pull solenoid to perform just the right sequence of pushes on the car key button.

Raspberry Pi Zero scrapes data from Home Assistant to find out the date, the time, and the outside temperature. ESPHome then decides whether it is a work day, and whether the time is close to a regular journey time. It determines whether the outside temperature is so high or low that the car needs to be started to cool it down or warm it up before the driver gets in.

A 50°F (10°C) temperature at 5.30am on a work day morning would trigger the system to warm the car up before Richard’s journey to work. No need for him to wake up at an horrendous hour to check the weather and start the car ahead of time. Now he can jump straight in and be toasty warm.

4 comments

Dominic Spoeth avatar

But then he goes to work and realizes he needs his keys. XD

bsimmo avatar

“Raspberry Pi Zero scrapes data from Home Assistant to find out the date, the time, and the outside temperature.”

Not looked at the video (not a video person).
But why scrape outside of HA.
ESPhome does this natively.
Just set a time/date to run (or even check a config variable from HA for these) in the config script in ESPhome.
Then do the same checking the temp directly from HA in ESPHome, no scraping needed.
And off you go.
Bonus points if you use ESPhome on an PicoW/RP2040.

Note, in the UK don’t do this if you leave your car on the road, it’s against the law to idle while stationary or parked. This is to stop pollution.

Also I believe you need to be in the car when the engine is running too, (not in control of the car or something).

Although just put a jumper on if it 10C, save the environment a little bit. It’s not exactly ❄

Anders avatar

Also, an insurance company might not be too happy with the car running without its authorised driver present.

Raymond Ramirez avatar

I would not be too happy if my car was running without me inside! You meant the engine running, not the car. My car is a hybrid, so I can remotely turn on the air conditioner without starting or running the engine. No pollution.

Comments are closed