From c7d480bfcf9d52babace4e77feb150a303907ba6 Mon Sep 17 00:00:00 2001 From: grabowski Date: Thu, 9 Jul 2026 12:03:05 +0700 Subject: [PATCH] Switch lamps to internal IDs; EAN becomes optional metadata Directories rename from bare EANs to L0001..L0010 (measurement order). metrics.json gains an ean field, and a rated block with advertised values (flux, CCT, power, lifetime) where already documented, so the site can show advertised-vs-measured deltas. One EAN can now cover several lamp versions (variant field) and unbranded lamps need no barcode. --- README.md | 18 ++++++++++++------ lamps/{8718696822708 => L0001}/metrics.json | 10 +++++++++- lamps/{8718696822708 => L0001}/spd.csv | 0 lamps/{8718696822708 => L0001}/tm30.csv | 0 lamps/{8850646092349 => L0002}/metrics.json | 8 +++++++- lamps/{8850646092349 => L0002}/spd.csv | 0 lamps/{8850646092349 => L0002}/tm30.csv | 0 lamps/{8850646092905 => L0003}/metrics.json | 8 +++++++- lamps/{8850646092905 => L0003}/spd.csv | 0 lamps/{8850646092905 => L0003}/tm30.csv | 0 lamps/{2897624480138 => L0004}/metrics.json | 3 ++- lamps/{2897624480138 => L0004}/spd.csv | 0 lamps/{2897624480138 => L0004}/tm30.csv | 0 lamps/{8718696821909 => L0005}/metrics.json | 3 ++- lamps/{8718696821909 => L0005}/spd.csv | 0 lamps/{8718696821909 => L0005}/tm30.csv | 0 lamps/{8718696844984 => L0006}/metrics.json | 3 ++- lamps/{8718696844984 => L0006}/spd.csv | 0 lamps/{8718696844984 => L0006}/tm30.csv | 0 lamps/{8718696844960 => L0007}/metrics.json | 3 ++- lamps/{8718696844960 => L0007}/spd.csv | 0 lamps/{8718696844960 => L0007}/tm30.csv | 0 lamps/{6988766215712 => L0008}/metrics.json | 3 ++- lamps/{6988766215712 => L0008}/spd.csv | 0 lamps/{6988766215712 => L0008}/tm30.csv | 0 lamps/{3897624480137 => L0009}/metrics.json | 3 ++- lamps/{3897624480137 => L0009}/spd.csv | 0 lamps/{3897624480137 => L0009}/tm30.csv | 0 lamps/{6988766215705 => L0010}/metrics.json | 3 ++- lamps/{6988766215705 => L0010}/spd.csv | 0 lamps/{6988766215705 => L0010}/tm30.csv | 0 31 files changed, 49 insertions(+), 16 deletions(-) rename lamps/{8718696822708 => L0001}/metrics.json (92%) rename lamps/{8718696822708 => L0001}/spd.csv (100%) rename lamps/{8718696822708 => L0001}/tm30.csv (100%) rename lamps/{8850646092349 => L0002}/metrics.json (94%) rename lamps/{8850646092349 => L0002}/spd.csv (100%) rename lamps/{8850646092349 => L0002}/tm30.csv (100%) rename lamps/{8850646092905 => L0003}/metrics.json (94%) rename lamps/{8850646092905 => L0003}/spd.csv (100%) rename lamps/{8850646092905 => L0003}/tm30.csv (100%) rename lamps/{2897624480138 => L0004}/metrics.json (97%) rename lamps/{2897624480138 => L0004}/spd.csv (100%) rename lamps/{2897624480138 => L0004}/tm30.csv (100%) rename lamps/{8718696821909 => L0005}/metrics.json (97%) rename lamps/{8718696821909 => L0005}/spd.csv (100%) rename lamps/{8718696821909 => L0005}/tm30.csv (100%) rename lamps/{8718696844984 => L0006}/metrics.json (97%) rename lamps/{8718696844984 => L0006}/spd.csv (100%) rename lamps/{8718696844984 => L0006}/tm30.csv (100%) rename lamps/{8718696844960 => L0007}/metrics.json (97%) rename lamps/{8718696844960 => L0007}/spd.csv (100%) rename lamps/{8718696844960 => L0007}/tm30.csv (100%) rename lamps/{6988766215712 => L0008}/metrics.json (97%) rename lamps/{6988766215712 => L0008}/spd.csv (100%) rename lamps/{6988766215712 => L0008}/tm30.csv (100%) rename lamps/{3897624480137 => L0009}/metrics.json (97%) rename lamps/{3897624480137 => L0009}/spd.csv (100%) rename lamps/{3897624480137 => L0009}/tm30.csv (100%) rename lamps/{6988766215705 => L0010}/metrics.json (97%) rename lamps/{6988766215705 => L0010}/spd.csv (100%) rename lamps/{6988766215705 => L0010}/tm30.csv (100%) diff --git a/README.md b/README.md index 19dfd05..b0b0a9f 100644 --- a/README.md +++ b/README.md @@ -11,16 +11,22 @@ renaming a directory here requires updating the matching page in the web repo. ## Layout ``` -lamps//spd.csv SPD 380-1050 nm: wavelength_nm,value -lamps//tm30.csv ANSI/IES TM-30-18 per-hue-bin data (16 bins): Rcs, Rhs, Rf_h, ... -lamps//metrics.json Summary: TM-30 Rf/Rg, CRI Ra + R1-R15, CCT, flux, instrument metadata +lamps//spd.csv SPD 380-1050 nm: wavelength_nm,value +lamps//tm30.csv ANSI/IES TM-30-18 per-hue-bin data (16 bins): Rcs, Rhs, Rf_h, ... +lamps//metrics.json Summary: TM-30 Rf/Rg, CRI Ra + R1-R15, CCT, flux, instrument metadata solar-charge-controllers/.csv Efficiency sweep: set/measured Vin, Iin, Pin, Vout, Iout, Pout, eff_pct, heatsink and board temperature ``` -Lamps are identified by their EAN barcode so results stay unambiguous across brands and -packaging variants. EANs starting with 2 are retailer-internal barcodes that cannot be -resolved publicly. +Every lamp has an internal ID (`L0001`, `L0002`, ...) as its primary key, assigned in +measurement order by `lamp_station.py`. The EAN barcode is optional metadata in +`metrics.json` (`ean`): one barcode can cover several versions of a lamp (daylight and +warm white sharing box art get distinct IDs and a `variant` field), unbranded lamps have +no barcode at all, and EANs starting with 2 are retailer-internal codes that cannot be +resolved publicly. `metrics.json` may also carry a `rated` block with the advertised +values from the packaging (`Phi_lm`, `CCT_K`, `Power_W`, `Ra`, `lifetime_h`, `W_equiv`), +keyed like their measured counterparts so consumers can render +advertised-vs-measured comparisons. ## Provenance diff --git a/lamps/8718696822708/metrics.json b/lamps/L0001/metrics.json similarity index 92% rename from lamps/8718696822708/metrics.json rename to lamps/L0001/metrics.json index d924367..e39c1f7 100644 --- a/lamps/8718696822708/metrics.json +++ b/lamps/L0001/metrics.json @@ -1,8 +1,16 @@ { - "name": "8718696822708", + "name": "L0001", + "ean": "8718696822708", "manufacturer": "Philips", "model": "LEDBulb 8W E27 3000K (68W equivalent, 770 lm)", "notes": "", + "rated": { + "Phi_lm": 770, + "CCT_K": 3000, + "Power_W": 8, + "lifetime_h": 15000, + "W_equiv": 68 + }, "instrument": "HPCS6500", "measured_at": "2026-07-08T12:01:34+07:00", "instrument_date": "2026-07-08", diff --git a/lamps/8718696822708/spd.csv b/lamps/L0001/spd.csv similarity index 100% rename from lamps/8718696822708/spd.csv rename to lamps/L0001/spd.csv diff --git a/lamps/8718696822708/tm30.csv b/lamps/L0001/tm30.csv similarity index 100% rename from lamps/8718696822708/tm30.csv rename to lamps/L0001/tm30.csv diff --git a/lamps/8850646092349/metrics.json b/lamps/L0002/metrics.json similarity index 94% rename from lamps/8850646092349/metrics.json rename to lamps/L0002/metrics.json index 0845ee0..86eb927 100644 --- a/lamps/8850646092349/metrics.json +++ b/lamps/L0002/metrics.json @@ -1,8 +1,14 @@ { - "name": "8850646092349", + "name": "L0002", + "ean": "8850646092349", "manufacturer": "LAMPTAN", "model": "LED Bulb Gloss V2 9W E27 Daylight 6500K", "notes": "", + "rated": { + "CCT_K": 6500, + "Power_W": 9, + "lifetime_h": 10000 + }, "instrument": "HPCS6500", "measured_at": "2026-07-08T12:09:22+07:00", "instrument_date": "2026-07-08", diff --git a/lamps/8850646092349/spd.csv b/lamps/L0002/spd.csv similarity index 100% rename from lamps/8850646092349/spd.csv rename to lamps/L0002/spd.csv diff --git a/lamps/8850646092349/tm30.csv b/lamps/L0002/tm30.csv similarity index 100% rename from lamps/8850646092349/tm30.csv rename to lamps/L0002/tm30.csv diff --git a/lamps/8850646092905/metrics.json b/lamps/L0003/metrics.json similarity index 94% rename from lamps/8850646092905/metrics.json rename to lamps/L0003/metrics.json index 93ce487..34f0f7e 100644 --- a/lamps/8850646092905/metrics.json +++ b/lamps/L0003/metrics.json @@ -1,8 +1,14 @@ { - "name": "8850646092905", + "name": "L0003", + "ean": "8850646092905", "manufacturer": "LAMPTAN", "model": "LED Bulb Gloss V2 9W E27 Warm White 2700K", "notes": "Gloss V2 series attribution from retailer listings; verify against packaging.", + "rated": { + "CCT_K": 2700, + "Power_W": 9, + "lifetime_h": 10000 + }, "instrument": "HPCS6500", "measured_at": "2026-07-08T12:11:17+07:00", "instrument_date": "2026-07-08", diff --git a/lamps/8850646092905/spd.csv b/lamps/L0003/spd.csv similarity index 100% rename from lamps/8850646092905/spd.csv rename to lamps/L0003/spd.csv diff --git a/lamps/8850646092905/tm30.csv b/lamps/L0003/tm30.csv similarity index 100% rename from lamps/8850646092905/tm30.csv rename to lamps/L0003/tm30.csv diff --git a/lamps/2897624480138/metrics.json b/lamps/L0004/metrics.json similarity index 97% rename from lamps/2897624480138/metrics.json rename to lamps/L0004/metrics.json index 0968853..2a91407 100644 --- a/lamps/2897624480138/metrics.json +++ b/lamps/L0004/metrics.json @@ -1,5 +1,6 @@ { - "name": "2897624480138", + "name": "L0004", + "ean": "2897624480138", "manufacturer": "", "model": "", "notes": "Retailer-internal barcode (GS1 restricted range 20-29); brand and model not publicly resolvable.", diff --git a/lamps/2897624480138/spd.csv b/lamps/L0004/spd.csv similarity index 100% rename from lamps/2897624480138/spd.csv rename to lamps/L0004/spd.csv diff --git a/lamps/2897624480138/tm30.csv b/lamps/L0004/tm30.csv similarity index 100% rename from lamps/2897624480138/tm30.csv rename to lamps/L0004/tm30.csv diff --git a/lamps/8718696821909/metrics.json b/lamps/L0005/metrics.json similarity index 97% rename from lamps/8718696821909/metrics.json rename to lamps/L0005/metrics.json index 0d48928..efd3bd5 100644 --- a/lamps/8718696821909/metrics.json +++ b/lamps/L0005/metrics.json @@ -1,5 +1,6 @@ { - "name": "8718696821909", + "name": "L0005", + "ean": "8718696821909", "manufacturer": "", "model": "", "notes": "", diff --git a/lamps/8718696821909/spd.csv b/lamps/L0005/spd.csv similarity index 100% rename from lamps/8718696821909/spd.csv rename to lamps/L0005/spd.csv diff --git a/lamps/8718696821909/tm30.csv b/lamps/L0005/tm30.csv similarity index 100% rename from lamps/8718696821909/tm30.csv rename to lamps/L0005/tm30.csv diff --git a/lamps/8718696844984/metrics.json b/lamps/L0006/metrics.json similarity index 97% rename from lamps/8718696844984/metrics.json rename to lamps/L0006/metrics.json index ac3e54f..31b284c 100644 --- a/lamps/8718696844984/metrics.json +++ b/lamps/L0006/metrics.json @@ -1,5 +1,6 @@ { - "name": "8718696844984", + "name": "L0006", + "ean": "8718696844984", "manufacturer": "Philips", "model": "MyCare 9.5W", "notes": "", diff --git a/lamps/8718696844984/spd.csv b/lamps/L0006/spd.csv similarity index 100% rename from lamps/8718696844984/spd.csv rename to lamps/L0006/spd.csv diff --git a/lamps/8718696844984/tm30.csv b/lamps/L0006/tm30.csv similarity index 100% rename from lamps/8718696844984/tm30.csv rename to lamps/L0006/tm30.csv diff --git a/lamps/8718696844960/metrics.json b/lamps/L0007/metrics.json similarity index 97% rename from lamps/8718696844960/metrics.json rename to lamps/L0007/metrics.json index 6b716ec..6a8615c 100644 --- a/lamps/8718696844960/metrics.json +++ b/lamps/L0007/metrics.json @@ -1,5 +1,6 @@ { - "name": "8718696844960", + "name": "L0007", + "ean": "8718696844960", "manufacturer": "Philips", "model": "MyCare 9.5W", "notes": "", diff --git a/lamps/8718696844960/spd.csv b/lamps/L0007/spd.csv similarity index 100% rename from lamps/8718696844960/spd.csv rename to lamps/L0007/spd.csv diff --git a/lamps/8718696844960/tm30.csv b/lamps/L0007/tm30.csv similarity index 100% rename from lamps/8718696844960/tm30.csv rename to lamps/L0007/tm30.csv diff --git a/lamps/6988766215712/metrics.json b/lamps/L0008/metrics.json similarity index 97% rename from lamps/6988766215712/metrics.json rename to lamps/L0008/metrics.json index 06755f3..83ec215 100644 --- a/lamps/6988766215712/metrics.json +++ b/lamps/L0008/metrics.json @@ -1,5 +1,6 @@ { - "name": "6988766215712", + "name": "L0008", + "ean": "6988766215712", "manufacturer": "ST", "model": "ST-009", "notes": "", diff --git a/lamps/6988766215712/spd.csv b/lamps/L0008/spd.csv similarity index 100% rename from lamps/6988766215712/spd.csv rename to lamps/L0008/spd.csv diff --git a/lamps/6988766215712/tm30.csv b/lamps/L0008/tm30.csv similarity index 100% rename from lamps/6988766215712/tm30.csv rename to lamps/L0008/tm30.csv diff --git a/lamps/3897624480137/metrics.json b/lamps/L0009/metrics.json similarity index 97% rename from lamps/3897624480137/metrics.json rename to lamps/L0009/metrics.json index d9f8ac0..2f233b1 100644 --- a/lamps/3897624480137/metrics.json +++ b/lamps/L0009/metrics.json @@ -1,5 +1,6 @@ { - "name": "3897624480137", + "name": "L0009", + "ean": "3897624480137", "manufacturer": "TKL", "model": "TK-A013", "notes": "", diff --git a/lamps/3897624480137/spd.csv b/lamps/L0009/spd.csv similarity index 100% rename from lamps/3897624480137/spd.csv rename to lamps/L0009/spd.csv diff --git a/lamps/3897624480137/tm30.csv b/lamps/L0009/tm30.csv similarity index 100% rename from lamps/3897624480137/tm30.csv rename to lamps/L0009/tm30.csv diff --git a/lamps/6988766215705/metrics.json b/lamps/L0010/metrics.json similarity index 97% rename from lamps/6988766215705/metrics.json rename to lamps/L0010/metrics.json index 0919e84..c78399a 100644 --- a/lamps/6988766215705/metrics.json +++ b/lamps/L0010/metrics.json @@ -1,5 +1,6 @@ { - "name": "6988766215705", + "name": "L0010", + "ean": "6988766215705", "manufacturer": "ST", "model": "ST-012", "notes": "daylight", diff --git a/lamps/6988766215705/spd.csv b/lamps/L0010/spd.csv similarity index 100% rename from lamps/6988766215705/spd.csv rename to lamps/L0010/spd.csv diff --git a/lamps/6988766215705/tm30.csv b/lamps/L0010/tm30.csv similarity index 100% rename from lamps/6988766215705/tm30.csv rename to lamps/L0010/tm30.csv