[Software Projekt - Teilenummer Matcher] - BMW Modell auf Teileebene vergleichen

elkloso

macht Rennlizenz
Registriert
2 Juli 2017
Wagen
BMW Z4 e85 roadster 2,5i
Hi,
wie ich die Tage bereits im Kurze Frage - Kurze Antwort - Thread angekündigt hatte, baue ich gerade ein Tool, um Teilenummern im ETK zu vergleichen zwischen verschiedenen Fahrzeugen.

Die Idee:
Immer öfters kommt es in letzter Zeit zu Umbauten (im Forum). E85 3.0SI Bremse, E85 2.5i -> 2.5si, ein Kumpel baut von E36 316i auf 318is um, usw... Jetzt muss man sich mühsam von Hand heraussuchen, welche Teile sich zwischen den beiden Modellen unterscheiden. Bei einer Bremse geht es vielleicht noch, bei Umrüstung des N52 auf si, wird es schon schwieriger.
Daher meine Idee ein kleines Daten-Projekt zu schreiben, das zwischen zwei ausgewählten Modellen und ausgewählten Baugruppen die Teilenummern vergleicht und mir die unterschiedlichen Teile strukturiert ausgibt.

Setup:
Das ganze Script habe ich in Python 3 geschrieben, da es meine Lieblingssprache ist und relativ leicht zu verstehen ist. Grundsätzlich sieht die Architektur/Flow so aus:
  1. Der ETK muss als CSV o.ä. strukturiert vorliegen
  2. Ich wähle Modell, Variante und Teilegruppe (und Subgruppe) aus
  3. Er zieht mir einen Vergleich zwischen beiden Dateien und gibt mir eine Tabelle aus, die alle Teile enthält, die in Tabelle B (z.B. E85 3.0si) aber nicht in Tabelle A (z.B. E85 2.5i) drin sind.
Der Aufbau der Tabelle ist relativ eingängig und sollte alle wichtigen Infos enthalten.
Die Unterscheidung in Kategorie und Subkategorie habe ich gewählt, da ich oftmals mehrere Kategorien brauche (z.B. Vorderradbremse-Bremsscheibe und Hinterradbremse-Bremsscheibe) und so auf einem höheren Level (z.B. Bremsen) suchen kann.

Bildschirmfoto 2020-06-28 um 10.12.11.png

Im nächsten Schritt soll das ganze in eine kleine Webanwendung (Flask) verlagert werden, so dass ich es per Browser benutzen kann. Vermutlich baue ich ein kleines Interface mit Bootstrap 3. Meine Idee ist, dass ich dann ein Modell - Motor - Jahr Dropdown habe und dann darauf basierend auch die Mulit-Auswahl der verfügbaren Kategorien und der verfügbaren Subkategorien erfolgt. Klicke ich dann auf "Los", bekomme ich o.g. Tabelle ausgegeben und kann mir sie dann auch direkt per CSV exportieren oder drucken (wer sowas heute noch macht).

Limitationen:
  • Der ETK ist frei verfügbar, aber ein Download ist nochmal etwas anderes. Eine Datenbank ist urheberrechtlich geschützt und somit darf sie nicht heruntergeladen werden, selbst wenn ich sie nur im RAM speichern würde, wäre das schon verboten. Somit kann ich den ETK nicht als CSV zur Verfügung stellen, da das Ding urheberrechtlich geschützt ist, auch wenn es frei verfügbar ist. Weitere Infos hier: Grenzen des "Web Scrapings"
  • Um die Webanwendung vom eigenen Computer auszuführen, müsste man Python (und Flask) installiert haben auf dem System, was bei den meisten Windows-Usern nicht der Fall ist. Die Anwendung kann ich aus der o.g. ETK-Problematik aber auch nicht auf einen Server mit Datenbank stellen, so dass Problem #2 behoben wäre
  • Grundsätzlich erfolgt der Vergleich nur auf Teilenummer Basis. Man muss also immer noch selbst mitdenken, ob es Sinn macht oder sich vllt einfach nur die TN zwischen FL und VFL geändert hat.
  • Man bekommt nur die neuen Teilenummern ausgegeben. Ich könnte darüber nachdenken, auch noch die alten Teilenummern (die nicht im neuen Fahrzeug enthalten sind) auszugeben in einer gesonderten Datei/Abschnitt/Spalte. Ein direkter Vergleich z.B. auf Basis des Namens, um die Unterschiede direkt nebeneinander zu stellen, ist kaum möglich. Dazu ist die Benamung im ETK nicht einheitlich z.B. "Bremsscheibe" vs. "Bremsscheibe Innenbelüftet". Das würde ein bisschen was an Sprachverarbeitung benötigen, um generische Begriffe auszufiltern und dann mit Keywords einen Vergleich zu fahren. Das ist erstmal nicht im Scope
Wo kann ich mir den aktuellen Stand anschauen?
Das Projekt hat ein Github Repo und kann da angeschaut werden. Beachtet, dass ich nicht mit dem Git-Workflow arbeite und nur fertige Releases im Repo update. Daher hängt das Projekt immer etwas nach.

Ideen, Anregungen oder Fragen?
Her damit! Ich bin für jeden Input dankbar
 
So es gibt Fortschritte. Nachdem ich beruflich auf 150% Auslastung laufe, habe ich doch mal Zeit gefunden und ein bisschen an der App weitergebaut.
Vorher musste ich heute erstmal noch meine (sauteure) Razer Maus reparieren, da meine Apple Maus und meine Sehne im Arm sich nicht mehr mögen. Die Razer lag ein Jahr im Regal, weil sie immer zur Notabschaltung des USB-Ports geführt hatte. Ich vermutete einen Kurzschluss auf der Platine. Letztendlich war es "nur" ein kaputtes USB Kabel, dass einen Kurzschluss von + auf Schirm hatte. Eine alte Logitech MX518 leiht gerade ihr Kabel, bis das neue da ist. 5€ Materialkosten für das Ersatzkabel, welches gerade aus China auf dem Weg ist, dafür lagen dann die 80€ über ein Jahr ungenutzt im Regal, aber ich schweife ab...

Die Backend Logik steht soweit. Ich habe es recht einfach gehalten:
  1. Man wählt Links den ursprünglichen Wagen aus
  2. Man wählt Rechts den Wagen zum Vergleich aus
  3. Man kann die Kategorien anklicken die einen interessieren
  4. Es kommt eine Tabelle zurück, die alle Teile aus den Kategorien anzeigt, die beim "neuen" Wagen unterschiedlich zum "alten" Wagen sind
Das sieht jetzt noch etwas wüst aus, aber da wird noch ein Design und paar Animationen drüber gelegt, so dass man auch nur die Auswahl gerade sieht. Außerdem überlege ich mir noch, wie ich die Kategorien-Auswahl etwas reduziere. Vermutlich wird es hier auf Hauptkategorien, die aufgeklappt werden können hinaus laufen.

Letztendlich hab ich das Projekt genutzt, um meine erste SPA (Single-Page-Application) zu bauen. Heißt, die ganze App funktioniert auf einer Seite (momentan noch die Ergebnisse auf einer zweiten, aber das wird geändert sobald das Design kommt). Das hält das Projekt schlank und sorgt dafür, dass ich nicht noch 10 Unterseiten und ein Menü bauen muss. Was ich noch gerne machen würde, sind die ausgewählten Werte im Cache zu speichern, so dass ein Reload der Seite nicht ein erneutes Auswählen aller Dropdowns nach sich zieht. Hat den Vorteil, dass man auch nochmal editieren kann und Kategorien zu/abwählen kann.

Bildschirmfoto 2020-07-11 um 19.58.51.pngBildschirmfoto 2020-07-11 um 19.59.09.png
 
leichtes offtopic: was mach ich, wenn ich Teilenummern hab, die weder bei bmwfans noch realoem auffindbar sind? 🤨
 
Dich über BMW ärgern, weil die ihren Produktfeed nicht pflegen :D

Ne, keine Ahnung. Das Problem hatte ich auch bei Querlenkern hinten. Die Nummer gibts einfach nicht, zumindest nicht im Deutschsprachigen Raum. Gehe davon aus, dass das so Zwischenserien waren und die einfach nicht im TIS gepflegt wurden.
Meistens haue ich die Nummer in Google und dann findest du irgendwen bei Ebay, der das anbietet und im Besten Fall eine Vergleichsnummer dabei hat
 
google, ebay und co hab ich alles durch. Wäre dann Kauf auf Verdacht. Schwieriges Thema leider
 
Wenn man die Vorgänger Teilenummern eines Teils noch mit einpflegen könnte, wäre das gerade bei den älteren Modellen echt super. Dort haben sich Teilenummern bei Sensoren, Steuergeräte und son Krempel ja doch mehrfach geändert, obwohl es nach wie vor das gleiche Teil ist. Wobei ich fürchte, dass es da nicht ganz trivial ist, weils dann bestimmt so Permutationen gibt (wahrscheinlich vorallem bei Steuergeräten), dass es dann doch net kompatibel ist.
Der prinzipielle Ansatz ist aber super.:thumbsup: Bin gespannt in wie weit sich die BMW ETK Struktur dafür als logisch/automatisiert verarbeitbar zeigt. Bei VAG & Co ist das der blanke Wahnsinn und nur für die Illuminaten durchschaubar.
 
google, ebay und co hab ich alles durch. Wäre dann Kauf auf Verdacht. Schwieriges Thema leider
Schreib mir gerne mal eine PN. Vielleicht finde ich noch was raus

Wenn man die Vorgänger Teilenummern eines Teils noch mit einpflegen könnte, wäre das gerade bei den älteren Modellen echt super. Dort haben sich Teilenummern bei Sensoren, Steuergeräte und son Krempel ja doch mehrfach geändert, obwohl es nach wie vor das gleiche Teil ist. Wobei ich fürchte, dass es da nicht ganz trivial ist, weils dann bestimmt so Permutationen gibt (wahrscheinlich vorallem bei Steuergeräten), dass es dann doch net kompatibel ist.
Der prinzipielle Ansatz ist aber super.:thumbsup: Bin gespannt in wie weit sich die BMW ETK Struktur dafür als logisch/automatisiert verarbeitbar zeigt. Bei VAG & Co ist das der blanke Wahnsinn und nur für die Illuminaten durchschaubar.
Das ist ein kompliziertes Thema. Grundsätzlich wäre das schon möglich, aber wie du sagst, die veränderte Teilenummer hat auch oft ein verändertes Bauteil mit sich gebracht.
Einige Beispiele sind:
  • LSZ -> Ab bestimmter TN/SW-Version Tippblinken möglich
  • GM5 -> Ab bestimmter TN andere Relais, die länger halten
  • Lenksäule -> Ab bestimmter TN Klebelenkung behoben
Man könnte es aber mit einem Button lösen "Alte TN miteinbeziehen" oder sowas.

Die Struktur ist bei BMW eigentlich recht gut. Die Aufbereitung als Tabelle hat soweit auch vernünftig geklappt.
Was mir noch Sorgen macht, ist der Vergleich zwischen Baureihen (z.B. E46 Teile auf E85 oder AG vs. GmbH). Meine Vermutung ist nämlich, dass da teilweise die Kategorien anders heißen. Dann bekäme ich Probleme beim Matching.
 
Gehts eigentlich nur mir so, oder ist BMW mit der Einfachheit und Verfügbarkeit (für Konzernfremde) vom ETK ziemlich weit vorne im Vergleich zu anderen Herstellern? Hatte mittlerweile Erfahrungen mit VAG, Peugeot, Hyundai/KIA und Ford, da war/ist das gefühlt meilenweit schlechter. Nicht nur das raussuchen der passenden Teilenummern ohne das Altteil ausgebaut zu haben, sondern auch die Zugänglichkeit des ETK. Ich meine bspw. bei VAG kann man, soweit ich weiß, selbst mit ETKA (ist glaube ich die interne VAG ETK Software) und VIN oftmals Teile nicht eindeutig raussuchen.
Ist für mich als Feierabendbastler eines der Hauptargumente für BMW neben RWD und R6. Daimler gefällt mir von von der Optik her nicht und dann hat man ja schon fast keine Alternative mehr.
 
Wenn man die Vorgänger Teilenummern eines Teils noch mit einpflegen könnte, wäre das gerade bei den älteren Modellen echt super. Dort haben sich Teilenummern bei Sensoren, Steuergeräte und son Krempel ja doch mehrfach geändert, obwohl es nach wie vor das gleiche Teil ist.
Da bietet sich www.realoem.com an
Man sollte einen Werbeblocker installieren, dann geht die Seite perfekt.
Wenn du da eine Teilenummer angiebst, dann siehst du in der Teileliste auch die anderen Nummern





.
teileverwendung31116781023.PNG
 
Zuletzt bearbeitet:
@Z3bastian geht nicht nur dir so. Immer wenn ich für Kollegen Teile suchen muss finde ich nichts. Meistens schwierig überhaupt an einen Teilekatalog zu kommen. Das würde mich extrem nerven, daher sehe ich das bei BMW auch als Pluspunkt. BMW selbst hat schließlich auch Vorteile dadurch, wenn der Kunde gleich seine Nummer weiß und nicht alles über Serviceberater abgewälzt wird.
 
Dann schaut euch das mal an


Hilft evtl. weiter

.
 
Zurück
Oben Unten