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.
This commit is contained in:
grabowski committed 2026-07-09 12:03:05 +07:00
1 parent 6672dce92d
commit c7d480bfcf
31 files changed
+49 -16

No files matched your search

+12 -6
View File
@@ -11,16 +11,22 @@ renaming a directory here requires updating the matching page in the web repo.
## Layout
```
lamps/<EAN>/spd.csv SPD 380-1050 nm: wavelength_nm,value
lamps/<EAN>/tm30.csv ANSI/IES TM-30-18 per-hue-bin data (16 bins): Rcs, Rhs, Rf_h, ...
lamps/<EAN>/metrics.json Summary: TM-30 Rf/Rg, CRI Ra + R1-R15, CCT, flux, instrument metadata
lamps/<ID>/spd.csv SPD 380-1050 nm: wavelength_nm,value
lamps/<ID>/tm30.csv ANSI/IES TM-30-18 per-hue-bin data (16 bins): Rcs, Rhs, Rf_h, ...
lamps/<ID>/metrics.json Summary: TM-30 Rf/Rg, CRI Ra + R1-R15, CCT, flux, instrument metadata
solar-charge-controllers/<device>.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
@@ -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",
File renamed without changes.
Internal Server Error - B4L Gitea
500 Internal Server Error

An error occurred:

An error occurred

Gitea Version: 28.2.0