I just got myself a brand new car: an ID.Buzz with seven seats so that I can fit the whole family at once. I’m very happy with the car this far, but since it has connectivity, I want to see if I can integrate it into HomeAssistant.
To do this, I wanted to use the CarConnectivity project by Till Steinbach. It is a Python package that comes in a few parts. The main project, a Volkswagen connector, an MQTT bridge and a HomeAssistant MQTT discovery helper.
Having played with the software for a bit (and reported a bug that Till fixed asap – I’m impressed!) I decided to setup the whole thing on my little RaspberryPi that runs a few little services I use around the house.
Preparing this, I setup a new user and installed the software in a Python virtual environment:
sudo adduser carconnectivity
sudo su carconnectivity
cd
mkdir carconnectivity
cd carconnectivity/
python -m venv venv
source venv/bin/activate
pip install carconnectivity-connector-volkswagen==0.5a1 carconnectivity-plugin-mqtt carconnectivity-plugin-mqtt_homeassistant
vim carconnectivity.json
Using the vim
command, I created the CarConnectivity configuration file. Update usernames, passwords and IPs to your needs. I will experiment with the interval
parameter, as I don’t want to discharge the 12v battery by querying the car too much.
{
"carConnectivity": {
"log_level": "error",
"connectors": [
{
"type": "volkswagen",
"config": {
"interval": 1800,
"username": "hello@example.com",
"password": "secret"
}
}
],
"plugins": [
{
"type": "mqtt",
"config": {
"broker": "my-mqtt.local",
"username": "user",
"password": "secret"
}
},
{
"type": "mqtt_homeassistant",
"config": {}
}
]
}
}
Having configured the service (and having run it manually to fix my mistakes) I created the carconnectivity.service
systemd service shown below (in /etc/systemd/system
):
[Unit]
Description=Car Connectivity to MQTT
After=network-online.target
[Service]
Type=simple
User=carconnectivity
Group=carconnectivity
WorkingDirectory=/home/carconnectivity/carconnectivity/
Environment="LC_ALL=sv_SE"
ExecStart=/home/carconnectivity/carconnectivity/venv/bin/carconnectivity-mqtt /home/carconnectivity/carconnectivity/carconnectivity.json
[Install]
WantedBy=multi-user.target
And then I started and enabled the service.
sudo systemctl start carconnectivity
sudo systemctl enable carconnectivity
Finally, I had a look at the status and made sure that everything looks ok.
sudo systemctl status carconnectivity
And, viola, the car shows up as a device in Home Assistant. Magic!
