SOC Modul Porsche Taycan
Re: SOC Modul Porsche Taycan
Der Porsche-Server war die letzte Zeit auch etwas buggy, mag sein, dass es nicht an OpenWB lag…
-
- Beiträge: 4
- Registriert: Do Jul 14, 2022 6:55 am
Re: SOC Modul Porsche Taycan
Hi,
nachdem ich nun stolzer Besitzer einer OpenWB 2+ bin lade ich meinen Taycan da drüber. Wechsel zwischen 1p und 3p (hin und zurück) funktioniert tadellos. Den SOC kann ich leider mit dem VAG/Porsche Modul nicht mehr auslesen. Es gibt einen Parsing-Fehler:
Schafft es jemand von Euch den SOC seines Taycans auszulesen - ich rede jetzt nicht von der EVCC Cloud-Lösung. Auf Cloud habe ich wenig Lust, u.a. habe ich mir deshalb eine OpenWB gekauft...
nachdem ich nun stolzer Besitzer einer OpenWB 2+ bin lade ich meinen Taycan da drüber. Wechsel zwischen 1p und 3p (hin und zurück) funktioniert tadellos. Den SOC kann ich leider mit dem VAG/Porsche Modul nicht mehr auslesen. Es gibt einen Parsing-Fehler:
Code: Alles auswählen
Error from EVCC: 2022/07/14 21:25:25 invalid character '<' looking for beginning of value (LV0))
Re: SOC Modul Porsche Taycan
Mit der OpenWB wirst du wohl über das Kabel keine Daten bekommen, sondern nur über das Internet von den Porsche-Servern.
-
- Beiträge: 4
- Registriert: Do Jul 14, 2022 6:55 am
Re: SOC Modul Porsche Taycan
Ich habe mich doof ausgedrückt. Natürlich wäre das Auslesen des SOC per Ladekabel (so wie es der Porsche-Lader kann) die beste Lösung.Mit der OpenWB wirst du wohl über das Kabel keine Daten bekommen, sondern nur über das Internet von den Porsche-Servern.
Mit Cloud meine ich, dass ich mich an die evcc Cloud anbinden muss. Was ich eher suche ist ein Weg, dass die OpenWB direkt den Porsche-Server abfrägt. Diese inoffizielle API funktioniert, wenn der Porsche Server keine Probleme hat, sehr zuverlässig.
Re: SOC Modul Porsche Taycan
Hab's beim zweiten Lesen dann auch verstanden . Die Lösung über das Kabel wäre speziell beim Taycan aber tatsächlich super, denn die Mobilfunkanbindung ist wieder mal extrem schlecht. Die Porsche-App hat schon seit zwei Wochen keine Verbindung mehr zum Auto. Da könnte ich wieder auf die direkte (inoffizielle) API gehen und schauen, woran es liegt. Die geht schon, eine weitere Lösung wie evcc ist zwar prima aus Sicht von OpenWB, wo man viele EVs mit einer Lösung anbinden kann, aber die direkte Anbindung ist viel angenehmer, tatsächlich. So habe ich es aber auch verstanden, dass genau das gemacht werden sollte. Den Status kenne ich aber nicht, vielleicht braucht der OpenWB-Support immer noch Zugangsdaten von einem Freiwilligen?
-
- Beiträge: 4446
- Registriert: Mi Nov 11, 2020 7:16 pm
- Has thanked: 4 times
- Been thanked: 26 times
Re: SOC Modul Porsche Taycan
Die inoffizielle Api wird auf der aktuellen 1.9 unter Stretch nicht laufen. In der Doku steht Python >3.6 die Raspbian Stretch hat nur Python 3.5 unter der Haube.
VG
Det
VG
Det
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 300 (06/2024)
Re: SOC Modul Porsche Taycan
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:
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.
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.
Zuletzt geändert von Dual01 am Mi Nov 15, 2023 6:45 pm, insgesamt 1-mal geändert.
Re: SOC Modul Porsche Taycan
Falls die Abfrage nicht mehr funktioniert, was bei mir heute der Fall war, muss ein Update der Porsche Connect-Api durchgeführt werden:
pip3 install pyporscheconnectapi -U
Dann sollte es wieder funktionieren.
pip3 install pyporscheconnectapi -U
Dann sollte es wieder funktionieren.
Re: SOC Modul Porsche Taycan
Porsche hat wohl wieder mal den Zugriff zu den Daten geändert.
Anbei das aktualisierte Python-Programm zum Abruf des SOC des Taycans mit der pyporscheconnect api. Ich habe dazu Example2 von der Version 0.2.0 adaptiert.
Anbei das aktualisierte Python-Programm zum Abruf des SOC des Taycans mit der pyporscheconnect api. Ich habe dazu Example2 von der Version 0.2.0 adaptiert.
Re: SOC Modul Porsche Taycan
Code: Alles auswählen
import sys
import asyncio
from pyporscheconnectapi.connection import Connection
from pyporscheconnectapi.client import Client
from sys import argv
import logging
# logging.basicConfig()
# logging.root.setLevel(logging.DEBUG)
email = argv[1]
password = argv[2]
vin1 = argv[3]
async def vehicles() -> None:
conn = Connection(email, password)
client = Client(conn)
vehicles = await client.getVehicles()
for vehicle in vehicles:
# print(
# f"VIN: {vehicle['vin']}, Model: {vehicle['modelName']}, Year: {vehicle['modelType']['year']}"
# )
mf = ["BATTERY_LEVEL", "LOCK_STATE_VEHICLE"]
measurements = "mf=" + "&mf=".join(mf)
data = await conn.get(
f"https://api.ppa.porsche.com/app/connect/v1/vehicles/{vin1}?{measurements}"
)
global soc
soc = (next((x for x in data["measurements"] if x["key"] == mf[0]), None))[
"value"
]["percent"]
await conn.close()
if __name__ == "__main__":
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
try:
loop.run_until_complete(vehicles())
except KeyboardInterrupt:
pass
sys.stdout.write(str(soc))
sys.exit(0)