OVMS.V3 | ||
OVMS.V3-idf@1ff5e24b1b | ||
.gitignore | ||
.gitmodules | ||
jenkins.xml | ||
ovms-ca.crt | ||
README.MD |
OVMS3 Fork
I forked OVMS3 Original project to work on a vehicle integration for my Renault Zoe Phase 2.
Orignal project: https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3
Firmware-Version
The fork is fixed at Version 3.3.002 with their provided modified ESP-IDF
To-Do List
- Integrate my server to assistant and server recommendation and add CA as well
- Integrate PIDs for reading values like odometer, battery cell voltage and so on, via OBD connector (because of gateway read-only)
- Accessing CAN bus after gateway to get full access to controllers use all available CAN bus interfaces OVMS hardware has
- Get more useful PIDs with direct access of CAN busses
- Try to control things like wake-up, charge control
- Implement own control routines like stopping charge after certain soc, try to control Cabine heaters to heat while charging (use debug commands to enable them)
Releases
Successful build will be uploaded to my own OTA ovms-server at https://ovms-ota.bit-cloud.de or under Releases tab so self host them. You can just enter my OTA server URL under Config -> Firmware -> Update Server and click Flash from web-tab with empty URL to flash my firmware.
I will maintain main and edge version tag, please only flash main versions if you want to use it.
Version numbers
Firmware versions will be named like openvehicles ones. I will add a dash with a counting number so I can signal if an update is available. If I push my fork to newest version from openvehicles, I increase original Firmware number.
Example
Version string: 3.3.002-cs131
3.3.002 = Original firmware my fork based on.
-cs131 = counting number of my version.
Build prerequisites
If you have a freshly installed Debian or Ubuntu based operating system, you can install prerequisites with following commands. On other distributions you need to install these with your package manager
apt install git build-essential pyhton3 python3-pip python ncurses-dev flex bison gperf dos2unix
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2.7 get-pip.py
Build
Clone my repository and init submodules
git clone https://git.bit-cloud.de/carsten.schmiemann/OVMS3.git
cd OVMS3/
git submodule init
git submodule update
Install provided ESP IoT Development Framework
cd OVMS.V3-idf/
./install.sh
If you have trouble to install because another version of the IDF installed, delete the entire folder and try step above again
rm -rf ~/.espressif
Enable IDF (everytime you open a shell and want to compile project)
cd OVMS.V3-idf/
source export.sh
Go to OVMS Folder copy sdkconfig for your hardware and build firmware In this example for hardware 3.1 and above. You can customize it via make menuconfig
cd OVMS.V3/
cp support/sdkconfig.default.hw31 sdkconfig
make -jX
X = number of cpu cores to speed up build process
Then upload built firmware to your webserver and flash it via OTA function in OVMS webinterface.
Hint: If you build your first time, you need to execute make multiple times, because of downloading dependencies.
Security concerns
The OVMS3 project use an outdated and modified IDF, there are many security problems with them. Major problem is missing firewall so your webinterface and services like SSH is open to public ip of 3G/LTE interface. Most providers use an CG-NAT, but this is no a reliable protection at all.
Many of used libraries are outdated too. For example mongoose webserver has a lot of security problems fixed with newer versions.
I cannot fix these issues because I am not an experienced C programmer, I will focus on my vehicle integration.
I hope original project maintainers will fix them in the future, I know it is not an easy task because there a lot of changes in the IDF and dependencies.
OVMS Server
I use my own OVMS server, because I love privacy. So there are no push available only E-Mail for notifications.
You can use it too if you want, just register a account and vehicle at https://ovms.bit-cloud.de and point your OVMS module at https://ovms-server.bit-cloud.de Port 6870 with TLS enabled. You need to insert my CA into your OVMS3, because I cannot proxy it with nginx and letsencrypt certificates so I used self signed certs.
Create a file called ovms-ca at /store/trustedca with bult in editor in the webinterface. (Create folder if not exist) Paste content of ovms-ca.crt file to it and save it. The go to the web shell or ssh and typ in
tls trust reload