Skip to content

Feature vw euda refactoring - #4148

Open
LKuemmel wants to merge 3 commits into
feature_filter_log_file_typesfrom
feature_vw_eua_refactoring
Open

LKuemmel wants to merge 3 commits into
feature_filter_log_file_typesfrom
feature_vw_eua_refactoring

Conversation

@LKuemmel

Copy link
Copy Markdown
Contributor

@rleidner Es stand ja noch ein Refactoring Deiner VW Implementierung aus.
Ich habe mich da mit der KI mal dran gewagt. Das Problem mit dem Hintergrund-Thread habe ich durch ein verkürztes Abfrage-Intervall, dass das Modul vorgeben kann, gelöst: #4147
Die Paket-Daten werden in Variablen abgelegt, nicht in Dateien. Die Anforderungen aufgrund der spezifischen Portal-Eigenheiten habe ich der KI mitgegeben. Bitte schau mal rein und teste, ob Du mit diesem Stand weiter arbeiten kannst.

Vor Nutzung muss die kontinuierliche Abfrage im Portal angestoßen werden:
https://eu-data-act.drivesomethinggreater.com/de/de/eu-data-act.html
Benutzerdefinierte Daten abrufen - All Data - 15 min.
Es kann mehrere Stunden dauern, bis erste nicht-leere Datenpakete ankommen.
Die Fahrzeugdaten können auch danach deutlich verzögert eintreffen.

Das Modul fragt das Portal synchron über den normalen openWB-SoC-Scheduler ab.
Empfehlung: die Abfrageintervalle während und außerhalb des Ladens auf 600 Sekunden
setzen. Bei Abruffehlern fordert das Modul über den Intervall-Callback höchstens
60 Sekunden bis zum nächsten Versuch an, unabhängig vom Drei-Fehler-Zähler.
Nach erfolgreichem Abruf gelten wieder die konfigurierten Intervalle.
Manuelle und reguläre frühere Abfragen bleiben möglich; die Einstellung für
Abfragen nur bei eingestecktem Fahrzeug gilt auch für Wiederholungen.

Alle noch nicht verarbeiteten Datenpakete werden von alt nach neu ausgewertet.
Fehlende, ungültige oder ältere SoC-Werte überschreiben keinen gültigen Stand.
Fehlende Reichweite und Kilometerstand bleiben aus dem letzten gültigen Stand
erhalten; der Kilometerstand wird nicht zurückgesetzt. Numerische Nullwerte gelten.
Der Zeitstempel stammt vorrangig aus dem Caddy-SoC-Feld timestampUtc, sonst aus
dem Maximum aller car_captured_time-Werte, ersatzweise aus timestamp (PR #4127).
Wenn keine Reichweite bekannt ist, wird sie aus SoC, Kapazität und Verbrauch berechnet.

Cache, verarbeitete Datensätze und Retry-Flag bleiben ausschließlich im Arbeitsspeicher
des Fahrzeugmoduls. Es werden weder persistente Zustandsdateien noch Rohdaten in der
Ramdisk gespeichert oder eingelesen. Nach einem Prozessneustart oder einer Neuerstellung
des Moduls muss der Cache durch einen erfolgreichen Portalabruf neu gefüllt werden.
Bei Portalausfall wird der Cache mit ursprünglichem Zeitstempel und Warnung
zurückgegeben. Ohne gültigen Cache wird ein Fehler gemeldet, kein künstlicher 0%-Wert.
In beiden Fällen wird nach höchstens einer Minute erneut versucht.

Code-Aufbau:
api.py Login, Wiederanmeldung und HTTP-/ZIP-Abrufe
vehicle_data.py Feldzuordnung, Zeitstempel und Datenauswertung
libeuda.py Synchroner Abruf und In-Memory-Cache
soc.py Einbindung und gemeinsamer Zustand der Scheduler-Callbacks

@LKuemmel
LKuemmel added this pull request to stack #4149 October 20, 2026 12:48
@LKuemmel
LKuemmel marked this pull request as draft October 20, 2026 12:48
@LKuemmel
LKuemmel requested a review from rleidner October 20, 2026 12:49
@LKuemmel
LKuemmel marked this pull request as ready for review October 21, 2026 06:33
@LKuemmel LKuemmel changed the title Feature vw eua refactoring Feature vw euda refactoring Oct 21, 2026
@LKuemmel

Copy link
Copy Markdown
Contributor Author

Ich habe das VW-EUDA-Modul vorerst aus der Beta genommen. Sobald wir mit diesem PR eine konistente Lösung haben, nehmen wir es gerne ins 2.4.0 Release auf.

@rleidner rleidner left a comment •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@LKuemmel ,
tested and it basically works.
2 observations:

  1. directly after restarting openWB I see 2 errors http 429, disappears after a few minutes
    EDIT: looks like error 429 is returned by the portal when all 30 datasets are downloaded in a very short time.
    I added for a test a time.sleep(.5) after each file and the 429 disappeared. #4161

  2. in logging level DEBUG I get large binary data written to soc.log, example:
    2026-10-20 22:08:29,668 - {modules.common.req:53} - {DEBUG:fetch soc_ev2} - Get-Response: PC T]y J {G%WVWZZZE1Zxxxxxxxx_20261020200139.json [o 7 } _a u B N M GX[2d9 x @i j ....

Apart it works pretty well and refactored code is definitely a considerable improvement.

@LKuemmel
LKuemmel force-pushed the feature_vw_eua_refactoring branch from 7be4ab8 to 5833099 Compare October 22, 2026 07:34
@LKuemmel
LKuemmel removed this pull request from stack #4149 October 22, 2026 07:36
@LKuemmel
LKuemmel changed the base branch from feature-soc-request-retry to feature_filter_log_file_types October 22, 2026 07:36
@LKuemmel
LKuemmel added this pull request to stack #4165 October 22, 2026 07:37
@LKuemmel
LKuemmel force-pushed the feature_vw_eua_refactoring branch from 5833099 to 763838b Compare October 22, 2026 07:41
@LKuemmel

LKuemmel commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor Author

Danke für Dein Feedback!

Punkt 2 habe ich hier gelöst: #4164

@LKuemmel LKuemmel added this to the 2.4.0 milestone Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants