In a world of smart homes, why is my car still silent?
Introduction#
I’ve long been able to talk to the devices in my house—turn on the lights, control the TV, ask for the room temperature. But one thing was still missing: my car. It’s 2025, and somehow I still couldn’t ask my car how much range I had left or tell it to turn on the AC. That had to change. So, I built a project that lets me talk to my Škoda using Google Home.
The Idea#
My Škoda comes with its own smartphone app. I used it now and then to quickly check how much fuel I had left or to remotely start the ventilation before heading out. Handy in theory, but in practice… kind of a hassle. Opening the app, logging in, waiting for data to load or commands to send—it all took longer than it should. These are exactly the kinds of things that should be quicker and easier.
So I thought: why not just ask Google Assistant, “How many kilometers can I still drive?” or “Can you start the ventilation in my car?” If the official app can do it, then the underlying services must be accessible somehow. That meant digging into how their app actually communicates with their backend – a bit of reverse engineering was definitely on the cards. It should be possible to build something myself to interact with those same services, just in a more natural, voice-controlled way.
How It Works#
Making this all come together required several components, each with a specific role in the system. It all starts with the Škoda API. To simplify communication with it, I built a custom proxy/gateway. This gateway acts as a middle layer, making it easier to talk to Škoda’s backend services without dealing with all the low-level complexity each time.
To interact with Škoda’s API, authentication is required, and that’s not exactly straightforward. So I created a separate service that handles the login flow. This “Škoda Connector” mimics the steps the official app performs: making the same requests, handling redirects, and ultimately retrieving the necessary tokens.
To streamline everything, I also built a skoda-api-client library that handles both authentication and the actual API calls. It abstracts away the messy details and offers a clean interface to fetch vehicle data or send commands.
Finally, to bridge the gap between voice control and the car, I exposed an API that integrates with Google Home. This API registers two virtual devices in the Google Home app:
- A sensor, which can answer questions like “Hey Google, how many kilometers can I still drive in my Škoda?”
- A fan, which can be told to start or stop—for example, “Hey Google, turn on the ventilation in my car”—triggering the car’s ventilation remotely.
Conclusion#
What started as a small annoyance—digging through an app just to check my fuel level—turned into a fun and rewarding project. By combining smart home tools, some custom services, and a bit of reverse engineering, I gave my car a voice. Now I can just ask Google how far I can drive or whether it’s time to cool things down inside the car. It’s faster, more convenient, and honestly a bit more fun.
This kind of integration opens up a world of possibilities for truly connected living. Imagine not just ventilation, but remote locking, window control, or even pre-heating your battery on a cold morning—all with a simple voice command. This project shows that with a little ingenuity, we don’t have to wait for manufacturers to deliver the seamless smart experiences we envision.
Extra#
If you’re interested in exploring the implementation details, you can access the code on GitHub.