Re: SoC Modul Skoda
Verfasst: Sa Jan 29, 2022 6:35 pm
Also ich hab den Skoda SoC prototypisch über "skodaconnect" bei mir eingebaut. Das ist allerdings ziemlich komplex, weil so gar nichts in der OpenWB Raspi Installation dazu geeignet ist das "skodaconnect" Modul zu benutzen. Trotzdem für sehr technisch versierte:
- das Beispielskript aus "scodaconnect" habe ich so modifiziert, dass es als Rückgabewert den SoC ausgibt.
- OpenWB ist auf "manual" SoC Modul konfiguriert.
- ein Bash-Skript prüft alle paar Minuten den Status des Ladesteckers aus der RAMDISK: plugstatlp1 0 --> plugstatlp1 1 # Stecker neu eingesteckt
- wird der Stecker gesteckt (unser noch einziger EV kommt an zum Laden), nach einer Wartezeit von 4 Minuten SoC mit Skript abfragen.
- SoC wird als Manual SoC in die RAMDISK geschrieben. Das ist als würde man es über die Webseite eingeben.
Das war der einfache Teil, leider. Skripte kann ich ggf. weitergeben
Funktioniert perfekt z.B. auf einem halbwegs aktuellen Ubuntu System.
Nun zum schwierigen Teil. Der kann Euch die Installation unbrauchbar machen oder ähnliches unschönes ...
- man braucht Python3 in 3.5 oder aktuellerer Version. Auf dem Rasibian gibt es lediglich Python 3 in einer älteren Version < 3.5
also
- Python 3.8 parallel zu den existierenden Python und Python3 installieren & über den Pfad aufrufen.
Jetzt wird es hässlich und man muss sehr genau wissen was man tut.
Python installieren geht grundsätzlich mit:
wget https://www.python.org/ftp/python/3.8.0 ... 8.0.tar.xz
tar xf Python-3.8.0.tar.xz
cd Python-3.8.0
./configure --enable-optimizations --prefix=/usr
make
sudo make altinstall
sudo rm -r Python-3.8.0
rm Python-3.8.0.tar.xz
Allerdings braucht die Installation vorher ein aktuelles Rust:
- also altes Rust deinstallieren
sudo apt remove rustc
sudo apt autoremove
- und ein aktuelles Rust installieren
sudo curl https://sh.rustup.rs -sSf
Vorher mit sudo su eine ROOTSHELL öffnen - RUST wird vom superuser benötigt werden während der Python Installation.
ggf. die Pfad variablen setzen nach:
https://github.com/rust-lang/rustup/issues/1085
Wenn Rust installiert ist und Python 3.8, dann sollte man "scodaconnect" einfach installieren können mit:
sudo python3.8 -m pip install skodaconnect
(muss auch wieder als sudo passieren damit es global verfügbar ist)
Das hat zumindest bei mir nicht geklappt. Unter den Modulen befindet sich "lxml", da bricht der C Compiler auf dem Raspibian mit einem Fehler ab.
Da wird es nochmal richtig tricky. Aber auch diese letzte Hürde lässt lösen indem man "lxml" vorab installiert:
sudo CFLAGS="-O0" python3.8 -m pip install lxml
Der Trick ist: die Option CFLAGS -O0 schaltet dabei alle Optimierungen des Compilers ab und der Fehler ist weg.
Nach einer manuellen Installation der lxml konnte ich dann "skodaconnect" wie oben beschrieben unter Python 3.8 installieren.
Ein Skript, das dann Python 3.8 benötigt startet man dann durch ein vorangestelltes pythonX.Y:
Aufruf des SoC Skripts z.B. mit:
python3.8 skodaconnect_get_SoC_only.py
Schön an dieser Integration ist, dass Updates von "Scodaconnect" einfach über ein
sudo python3.8 -m pip uninstall skodaconnect
sudo python3.8 -m pip install skodaconnect
installiert werden können und das ganze so sehr wartungsfreundlich ist, wenn Scoda die Schnittstelle ändert.
Andererseits und das wäre auch mein Fazit: investiert die 2 EUR/Monat für die alternative Lösung
- das Beispielskript aus "scodaconnect" habe ich so modifiziert, dass es als Rückgabewert den SoC ausgibt.
- OpenWB ist auf "manual" SoC Modul konfiguriert.
- ein Bash-Skript prüft alle paar Minuten den Status des Ladesteckers aus der RAMDISK: plugstatlp1 0 --> plugstatlp1 1 # Stecker neu eingesteckt
- wird der Stecker gesteckt (unser noch einziger EV kommt an zum Laden), nach einer Wartezeit von 4 Minuten SoC mit Skript abfragen.
- SoC wird als Manual SoC in die RAMDISK geschrieben. Das ist als würde man es über die Webseite eingeben.
Das war der einfache Teil, leider. Skripte kann ich ggf. weitergeben
Funktioniert perfekt z.B. auf einem halbwegs aktuellen Ubuntu System.
Nun zum schwierigen Teil. Der kann Euch die Installation unbrauchbar machen oder ähnliches unschönes ...
- man braucht Python3 in 3.5 oder aktuellerer Version. Auf dem Rasibian gibt es lediglich Python 3 in einer älteren Version < 3.5
also
- Python 3.8 parallel zu den existierenden Python und Python3 installieren & über den Pfad aufrufen.
Jetzt wird es hässlich und man muss sehr genau wissen was man tut.
Python installieren geht grundsätzlich mit:
wget https://www.python.org/ftp/python/3.8.0 ... 8.0.tar.xz
tar xf Python-3.8.0.tar.xz
cd Python-3.8.0
./configure --enable-optimizations --prefix=/usr
make
sudo make altinstall
sudo rm -r Python-3.8.0
rm Python-3.8.0.tar.xz
Allerdings braucht die Installation vorher ein aktuelles Rust:
- also altes Rust deinstallieren
sudo apt remove rustc
sudo apt autoremove
- und ein aktuelles Rust installieren
sudo curl https://sh.rustup.rs -sSf
Vorher mit sudo su eine ROOTSHELL öffnen - RUST wird vom superuser benötigt werden während der Python Installation.
ggf. die Pfad variablen setzen nach:
https://github.com/rust-lang/rustup/issues/1085
Wenn Rust installiert ist und Python 3.8, dann sollte man "scodaconnect" einfach installieren können mit:
sudo python3.8 -m pip install skodaconnect
(muss auch wieder als sudo passieren damit es global verfügbar ist)
Das hat zumindest bei mir nicht geklappt. Unter den Modulen befindet sich "lxml", da bricht der C Compiler auf dem Raspibian mit einem Fehler ab.
Da wird es nochmal richtig tricky. Aber auch diese letzte Hürde lässt lösen indem man "lxml" vorab installiert:
sudo CFLAGS="-O0" python3.8 -m pip install lxml
Der Trick ist: die Option CFLAGS -O0 schaltet dabei alle Optimierungen des Compilers ab und der Fehler ist weg.
Nach einer manuellen Installation der lxml konnte ich dann "skodaconnect" wie oben beschrieben unter Python 3.8 installieren.
Ein Skript, das dann Python 3.8 benötigt startet man dann durch ein vorangestelltes pythonX.Y:
Aufruf des SoC Skripts z.B. mit:
python3.8 skodaconnect_get_SoC_only.py
Schön an dieser Integration ist, dass Updates von "Scodaconnect" einfach über ein
sudo python3.8 -m pip uninstall skodaconnect
sudo python3.8 -m pip install skodaconnect
installiert werden können und das ganze so sehr wartungsfreundlich ist, wenn Scoda die Schnittstelle ändert.
Andererseits und das wäre auch mein Fazit: investiert die 2 EUR/Monat für die alternative Lösung