Welcome to IDDataLogger, a data logger for Volkswagen ID vehicles. Features include:
- A website displaying current status, history graphs and previous charging sessions.
- An iOS widget (using Scriptable)
- A Better Route Planner live data integration
- An easy-to-use API for integration with other systems. If you are interested see here.
You have never set up something similar? Don't worry, the beginners guide guides you through every step you need to take. Common problems and answers to frequently asked questions can be found here. Should you have any remaining questions or issues please see getting help.
You can install this software using docker with the instructions here. Alternatively continue with the instructions below for installing on a system directly:
- PHP 8 cli with pdo-pgsql (or pdo-mysql), curl, gd, pcntl and dom
- A webserver serving .php files (PHP 8 with pdo-pgsql (or pdo-mysql))
- (strongly recommended) HTTPS enabled server with certificate
- A PostgreSQL server (Any version from 9 and up should work, although testing has only been done on 11 and up)
- alternatively MySQL / MariaDB is supported, but PostgreSQL is recommended.
Looking at the automated install script for debian install.sh alongside the following instructions might be helpful. (Instructions for using it can be found here)
Clone this repository.
git clone https://github.com/robske110/IDDataLogger.git --recursive
Create a database (and a user) in your PostgreSQL (or other) server for this project and fill in the details into
config/config.example.json
and .env.example.
We'll need these files later.
You can do this using the config setup wizard by running the config-wizard.sh
script, or manually.
Note: for a detailed description of the possible config values visit config.md.
After creating the config.json from config.example.json run ./start.sh
.
The necessary tables in the database will be automatically created.
After a successful connection to the db, the setup wizard will help you create an API key for the widget and a user for
the website. You can create additional API keys or add additional users at any time using ./start.sh --wizard
.
All files in the public
directory of this repository must now be placed somewhere in the webroot.
It is recommended to place them in the second level (not directly in webroot).
Then copy the .env
file (created from .env.example
) outside the webroot with the db credentials set in it.
Note:
env.php
looks for a .env
file two folders up from its location.
(If you put the contents of the public folder in /path/to/webroot/vwid/
it will look in /path/to/.env
)
If you place the files deeper inside the webroot, please consider editing env.php and configuring the correct path in
the first line. It is strongly recommended keeping the .env file out of the webroot.
You can alternatively set the environment variables through your webserver. (Or anything else that populates php's $_ENV
)
You now need to set up your system to automatically start start.sh
on system start. Using systemd is recommended.
You can now visit idView.php or use the iOS widget after setting it up!
To update the software at a later data execute git pull && git submodule update
in the repository directory and
replace the files in the webroot with the new contents of the public
folder. Make sure to restart the php process.
(The one started by start.sh
)
Contributions are always welcome! You can help to improve the documentation, fix bugs in the code or add new features.
Improving the beginners guide and documentation are currently something I would love to have help with. Feel free to open a PR!
- @drego83 - Invaluable help with general testing and MySQL support
This project is not endorsed by Volkswagen in any way, shape or form. This project is to be used entirely at your own risk. All brands and trademarks belong to their respective owners.
Copyright (C) 2021 robske_110
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.