TCS34725 RGB Color Sensor

The tcs34725 sensor platform allows you to use your TCS34725 RGB color sensors (datasheet, Adafruit), color temperature and illuminance sensors with ESPHome. The I²C is required to be set up in your configuration for this sensor to work.

../../_images/tcs34725-full.jpg

TCS34725 RGB Color Sensor

../../_images/tcs34725-ui.png
# Example configuration entry
sensor:
  - platform: tcs34725
    red_channel:
      name: "TCS34725 Red Channel"
    green_channel:
      name: "TCS34725 Green Channel"
    blue_channel:
      name: "TCS34725 Blue Channel"
    clear_channel:
      name: "TCS34725 Clear Channel"
    illuminance:
      name: "TCS34725 Illuminance"
    color_temperature:
      name: "TCS34725 Color Temperature"
    gain: 1x
    integration_time: 2.4ms
    glass_attenuation_factor: 1.0
    address: 0x29
    update_interval: 60s

Configuration variables:

  • red_channel (Optional): Value of the red color channel relative to the clear channel, as a percentage. All options from Sensor.

  • green_channel (Optional): Value of the green color channel relative to the clear channel, as a percentage. All options from Sensor.

  • blue_channel (Optional): Value of the blue color channel relative to the clear channel, as a percentage. All options from Sensor.

  • clear_channel (Optional): Value of the clear (without a color filter) channel, relative to the maximum value for the chosen integration time. All options from Sensor.

  • illuminance (Optional): Get the total illuminance of the sensor in lx.

  • color_temperature (Optional): Get the calculated color temperature of the light in Kelvin.

  • gain (Optional): Set the gain for the internal ADCs to work better in certain low-light conditions. Valid values are 1x (default), 4x, 16x, 60x (highest gain). Will be overwritten if auto integration time is used

  • integration_time (Optional): The amount of time the light sensor is exposed. Valid values are auto (default), 2.4ms, 24ms, 50ms, 101ms, 120ms, 154ms, 180ms, 199ms, 240ms, 300ms, 360ms, 401ms, 420ms, 480ms, 499ms, 540ms, 600ms, 614ms.

  • glass_attenuation_factor (Optional): The attenuation factor of glass if it’s behind some glass facia. Default is 1.0 means 100% transmissivity. 2 means 50% transmissivity etc.

  • address (Optional, int): Manually specify the I²C address of the sensor. Defaults to 0x29.

  • update_interval (Optional, Time): The interval to check the sensor. Defaults to 60s.

For many applications, you can use AUTO timing or leave integration time empty to have the ESP select a suitable gain setting based on the previous measurement. If light levels change dramatically this may cause the next reading to saturate, after which the gain will adjust down and subsequent readings will be in range. If auto is used in a dynamic environment an update rate of 1 second is best. Filters can be used to throttle the output and prevent updates of marginal changes like:

illuminance:
name: "TCS34725 Illuminance"
filters:
  - or:
      - delta: 50
      - throttle: 60sec

When using integration times lower than 154ms the accuracy of the sensor drops with no further gain in possible light accumulation. Use faster timings only if fast readout is necessary with stable light conditions recommended.

See Also