A containerized solution for connecting to your car's API and visualizing data with Grafana.
This project is made possible thanks to Till Steinbach's CarConnectivity project.
- Audi
- Seat/Cupra
- Skoda
- Volkswagen
- Volvo
- Tronity (multi-brand support)
- Podman and podman-compose installed
- Python 3 (for configuration setup)
Run the interactive configuration script to set up your car connector and credentials:
./create_config.pyThe script will prompt you for:
- Connector type: Choose your car brand
- Car API credentials: Username/password (or client_id/client_secret for Tronity)
- Polling interval: How often to fetch data from your car (in seconds)
- WebUI credentials: Username and password for the web interface
- Grafana credentials: Admin username and password for Grafana
This creates two files:
config/carconnectivity_config.json- Car connector and plugin configuration.env- Grafana admin credentials
Start all services using podman-compose:
podman-compose -p carconnect upOptions:
- Add
-dto run in detached mode (background):podman-compose -p carconnect up -d - View logs:
podman-compose -p carconnect logs -f
podman-compose -p carconnect downOnce the services are running, you can access:
| Interface | URL | Port | Description |
|---|---|---|---|
| WebUI | http://localhost:4000 | 4000 | Car connectivity web interface (login with WebUI credentials) |
| Grafana | http://localhost:4001 | 4001 | Data visualization dashboard (login with Grafana credentials) |
- Main service that connects to your car's API
- Polls data at configured intervals
- Stores data in SQLite database
- Provides WebUI for monitoring
- Visualization and dashboard platform
- Connects to the carconnectivity database
- Pre-configured to access car data
- Accessible on port 4001
The following volumes are created for persistent data:
carconnectivity-data: Stores the SQLite database and car datagrafana-data: Stores Grafana dashboards and settings
Default polling intervals by connector type:
- VW/Skoda/Audi/Seat/Volvo: 300 seconds (5 minutes)
- Tronity: 60 seconds (1 minute)
You can customize these during configuration setup. Note that the API endpoints are rate limited, better do not go lower than the defaults.
The default log level is set to error. To change it, edit
config/carconnectivity_config.json and modify the log_level field.
Available options:
debuginfowarningerror
The configuration script automatically creates backups:
- Previous configs:
config/carconnectivity_config.json.backup_YYYYMMDD_HHMMSS - Previous .env files:
.env.backup_YYYYMMDD_HHMMSS
# All services
podman-compose -p carconnect logs -f
# Specific service
podman-compose -p carconnect logs -f carconnectivity
podman-compose -p carconnect logs -f grafanapodman-compose -p carconnect restartIf you've made changes to Containerfiles:
podman-compose -p carconnect up --buildTo start fresh (WARNING: deletes all data):
podman-compose -p carconnect down -vThen recreate your configuration and start again.
Services communicate via a dedicated bridge network
(carconnectivity-network), allowing secure inter-container communication.