Ich habe die SOC-Abfrage des VAG-Porsche Moduls mit der Porsche-Connect-API zum Laufen gebracht. Dank an paraglider für den Tipp mit der Porsche-Connect-API. Voraussetzung ist wie bereits beschrieben eine Python-Version > 3.6. Da die OpenWB-Software auf dem RPI unter Buster läuft, habe ich eine Buster-Lite-Version (Linux Kernel 5.10.17-v7) installiert, die hat Python 3.7.3 an Bord.
Die Installation von OpenWB auf dem Raspi lief fehlerfrei.
Bei der Buster-Version sollten dann noch folgende Pakete installiert werden:
pip3:
sudo apt-get install python3-pip
dann:
sudo pip3 install –-upgrade requests
Anschließend wird die Porsche Connect-api installiert:
pip3 install pyporscheconnectapi
Jetzt sollte die Abfrage der Daten vom Taycan funktionieren.
Die Kontrolle der korrekten Installation kann jetzt mit den Zugangsdaten (email, PW, VIN) wie folgt durchgeführt werden:
porschecli -e "email-Adresse" -p "Passwort" emobility -v "WP0ZZZYxxxxxxxxxxxx"
Jetzt sollten die Daten vom Taycan ausgelesen werden und angezeigt werden. Falls nicht, dann ist an der Stelle eine Fehlersuche angesagt.
Ich habe Dank der verschiedenen Anwendungsbeispiele im Netz ein kleines Python-Programm geschrieben, welches die Login-Daten von OpenWB übernimmt, sich mit der Porsche Connect-Api einloggt und den SOC ausliest und wieder übergibt. Dazu wird im Home-Verzeichnis (/home/pi) eine Datei porsche_short.py kreiert.
sudo nano porsche_short.py
Dann den Code in die Datei reinkopieren und anschließend abspeichern:
Code: Alles auswählen
import asyncio
import sys
from sys import argv
from pyporscheconnectapi.connection import Connection
from pyporscheconnectapi.client import Client
email = argv[1]
password = argv[2]
vin = argv[3]
async def vehicles():
conn = Connection(email, password)
data = await conn.get(f"https://api.porsche.com/service-vehicle/se/sv_SE/vehicle-data/{vin}/stored")
global batterysoc
batterysoc = data['batteryLevel']['value']
await conn.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(vehicles())
sys.stdout.write(str(batterysoc))
sys.exit(0)
Anschließend muss die Shell des VAG-Porsche-Moduls (Datei main.sh) noch geändert werden.
cd /var/www/html/openWB/modules/soc_vag
sudo nano main.sh
dann folgende Zeile in der getAndWriteSoc()-Subroutine:
answer=$($MODULEDIR/../evcc-soc $fztype --user "$username" --password "$password" --vin "$vin" 2>&1)
gegen diese Zeile austauschen und die Datei abspeichern:
answer=$(python3 /home/pi/porsche_short.py "$username" "$password" "$vin")
und dabei auf die korrekte Anzahl der Leerzeichen zu Beginn der Zeile achten. Der Austausch bewirkt dass statt des veralteten EVCC-Moduls das obige Pythonprogramm aufgerufen wird, welches den SOC übergibt.
Die Zugangsdaten zum Taycan werden wie beim original VAG-Porsche-Modul in der entsprechenden Maske von OpenWB am Ladepunkt eingegeben. Das war es schon. Viel Vergnügen damit.