Seite 4 von 4

Re: SOC Modul Porsche Taycan

Verfasst: Sa Jul 31, 2021 6:17 pm
von rowi
Der Porsche-Server war die letzte Zeit auch etwas buggy, mag sein, dass es nicht an OpenWB lag…

Re: SOC Modul Porsche Taycan

Verfasst: Do Jul 14, 2022 7:39 pm
von paraglider
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:

Code: Alles auswählen

Error from EVCC: 2022/07/14 21:25:25 invalid character '<' looking for beginning of value (LV0))
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...

Re: SOC Modul Porsche Taycan

Verfasst: Do Jul 14, 2022 8:18 pm
von rowi
Mit der OpenWB wirst du wohl über das Kabel keine Daten bekommen, sondern nur über das Internet von den Porsche-Servern.

Re: SOC Modul Porsche Taycan

Verfasst: Fr Jul 15, 2022 2:03 pm
von paraglider
Mit der OpenWB wirst du wohl über das Kabel keine Daten bekommen, sondern nur über das Internet von den Porsche-Servern.
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 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

Verfasst: Fr Jul 15, 2022 2:13 pm
von rowi
Hab's beim zweiten Lesen dann auch verstanden :D. 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?

Re: SOC Modul Porsche Taycan

Verfasst: Fr Jul 15, 2022 3:20 pm
von derNeueDet
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

Re: SOC Modul Porsche Taycan

Verfasst: Mi Feb 08, 2023 7:55 pm
von Dual01
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.

Re: SOC Modul Porsche Taycan

Verfasst: Do Jun 15, 2023 5:31 pm
von Dual01
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.

Re: SOC Modul Porsche Taycan

Verfasst: Sa Jul 06, 2024 2:45 pm
von Dual01
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.

Re: SOC Modul Porsche Taycan

Verfasst: Sa Jul 06, 2024 2:47 pm
von Dual01

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)