ESPHome has a new component for multi-channel spectral light sensors. Anton Viktorov's as734x drives the AS7341, the AS7343 and the TCS3448 from a single driver, and goes further than raw readings per colour band: it turns them into lux, colour temperature and the light measures used for growing plants. The three pull requests were merged into the development branch on 15 October 2026. Together they replace an earlier single pull request (#6285) that was closed for being too large.

From raw counts to lux and PPFD

The component builds up in layers, matching the three parts:

  • counts: publishes the raw count of each band, for example F1 to F8, clear and NIR on the AS7341.
  • basic_counts: scales each band to one unit of gain and one millisecond of integration time, then applies the dark current, the manufacturer's gain and channel corrections and the glass attenuation factor from calibration:. That makes readings taken with different exposure settings comparable. normalize_basic_counts: can divide them by all channels, the visible bands or the clear channel when you care about the shape of the spectrum rather than its level.
  • saturation_level: reports the highest raw channel as a percentage of full scale, so you can see how close a reading is to saturating.
  • The derived sensors are illuminance: in lux, irradiance_photopic: weighted by the human eye's response curve, irradiance_par: for 400-700 nm, ppfd: (photosynthetic photon flux density, in µmol/s·m²), color_temperature: in kelvin and an rgb_hex: text sensor.

The author dropped one quantity on purpose. An earlier version also reported full-band irradiance in W/m², but the coefficient tables cannot support it: a field report on an AS7343 showed 135.73 W/m² of PAR against 127.71 W/m² in total, which is impossible because PAR is a part of the full band.

How accurate it is

Viktorov tested an AS7341 and an AS7343 on one ESP32 running ESP-IDF, at midday under diffuse north-sky daylight, against an uncalibrated handheld lux meter that showed 950-1000 lx. The AS7341 reported 1113 lx and the AS7343 922 lx, both within 15% of the reference, and the two chips agreed on colour temperature to within 6%. The ratio of lux to PPFD, which does not depend on absolute error, came out at 73 and 82 under a warm white LED (expected 70-80) and 51 and 50 in daylight (expected about 54). As OHF Daily notes, absolute accuracy still depends on the optics and calibration of each installation.

Moving from the old as7341 component

ESPHome already had an as7341 component. It read the chip's data registers in the wrong byte order, so its counts were 256 times too large below 256 and byte-swapped above that. The new driver reads them correctly, which means every count changes when you switch, along with anything you calculated from them. The first pull request leaves as7341 itself unchanged. Switching means setting type: AS7341 under the new as734x: hub and moving the bands under counts: on the as734x sensor platform.

The documentation went into the next branch of esphome.io and the code into the development branch, which is at 2026.11.0-dev, so the component should arrive with ESPHome 2026.11.