bittner / lego-mindstorms-ev3-comparison

LEGO Mindstorms EV3 Comparison
GNU General Public License v3.0
50 stars 12 forks source link

proposal about "No LEGO part with that number found in set" #8

Closed bonidier closed 6 years ago

bonidier commented 6 years ago

Hi @bittner,

Some (large) notes about elements list for the diff between sets 31313 and 45544, following python script output about the nine "No LEGO part with that number found in set #45544" message

1. An element to drop

part no 4156151, "Technic 11M Beam", is not referenced into Lego's element survey PDF the good part is 4611705, which is already present in your ODS and data files

2. Lego has missed some elements

(referenced in Lego's PDF, and your files)

most part of them can be added in the "element number" input field, except 4514558 (which is an old piece than users can find in their old Lego Technic.

3. remaining EV3 elements

Concern the most expensive : sensors, battery

Sensor elements can't be found from the the "element number" input field, but user can find them from https://shop.lego.com/en-US/search/ev3 (the order is added to this website when validating order from Selenium managed bag)

You'll note this elements have other Lego ID than official PDF !

An idea for python script

creating a mapping file for ev3 "electronic" elements, mapped to https://shop.lego.com "real Lego ID"

Something like that :

6008472 45507

and print the URL following selected language :

https://shop.lego.com/{shop}/search/45507

PS

Cheers !

bittner commented 6 years ago

I'm not sure whether it makes sense to fix issues with LEGO's database. If they have mistakes in either their official flyers or their shop's product data, or both, we can do little about it that actually makes sense.

The most sustainable solution would be to find out who can fix their data and let them know about the issues. Tricky and questionable if this will lead to a solution. Looking at the options, I'd start with social media before contacting customer support.

It's difficult to predict how long coded "fixes" will survive. In any case, if you rather want to code a solution please go ahead. I'll try to support you as much as I can, I have little time for LEGO at the moment, unfortunately.

bonidier commented 6 years ago

Hi,

Thanks for your feedback !

I was ready to contact Lego when I've discovered something about Element ID, which solves missing parts problem :

When Lego stops production of a piece, and relaunch it, they change the Element ID (with a greater value in the most case).

So, there is no error about Element ID on Lego's replacement parts URL : the Element ID is just "refreshed", and they print the more recent.

I've list mapping from old to new Element ID for sets 31313/45544 + verified on brickowl.com, ~10 parts concerned.

I need your advice for the next, before starting :

finally, I'll use a CSV file to grab new element ID, and add this one to the bag when order.

Also, some parts are duplicated in CSV file (like "Ms-Ev3, Ir Sensor" in 31313 set). In my mind, BrickSet CSV files should keep the original Element ID we can find in official PDF, and a part should be uniq (otherwise, a same part can be called twice with the good and bad Element ID, useless)

Regards !

bittner commented 6 years ago

Will it be sure that the new replacement ID will not also be replaced one day? In this case we would have a chain of IDs, which needs to be processed. This can be covered by a two-column table, though we'll need a loop to do the processing until there is an ID accepted by the shop. In theory, there could be a cyclic dependency (though there shouldn't be any if the process is cleanly followed by LEGO as you describe).

Is that what you need to be thought through?

bittner commented 6 years ago

Can we close this issue now? Or is there anything else to address with a PR?

bonidier commented 6 years ago

Hi, Thanks for your advice, create chain of element ID is a nice idea ! I'll work on the fix as soon as possible.

You can close the issue, It's on my todo-list :-)

bittner commented 6 years ago

Fixed by PR #9.