UV index monitoring (VEML6075, ultra-violet)

I live in Australia so UV is a big deal. I have VEML6075 connected to Tasmota, running fine (well, i2c works and sensor provides data), the sensor looks at the clear sky through a thin glass (and I checked it reduces readings for less than 10%), typical winter readings are:

|VEML6075 UVA intensity|3973 W/m²|
|VEML6075 UVB intensity|5491 W/m²|
|VEML6075 UV Index|10.0|

The actual sensor provides UVA/UVB readings as “counts/μW/cm2” so these thousands of watts look odd but it is likely an interface problem (should be 39.73W/m2, and so on?).

The main problem is the UV index which is calculated by the formula on page6 of [3]. It is winter here now and the actual index is less than 3 but the formula returns 10. So something is really wrong bit I cannot pinpoint what?

Are these indexes the same as the local meteorology service (bom.gov.au) uses? A chart from [3] suggests the max index of 12 but the calculations return 20+ during the summer.
Or actual readings are too high for some reason, then what are the expected numbers? [1] suggests it should be mW/m2, not W.

Has anyone figures this out? Or may be esphome gets it right (does not like it is any different, the same math).

Useful links:
[1] Ultraviolet index - Wikipedia
[2] https://cdn.sparkfun.com/assets/3/c/3/2/f/veml6075.pdf
[3] https://cdn.sparkfun.com/assets/3/9/d/4/1/designingveml6075.pdf
[4] Tasmota/xsns_70_veml6075.ino at adff41f962f7157fe0678f1a5ab9683d0e7535aa · arendst/Tasmota · GitHub

1 x/cm2 ➜ 10,000 x/m2
10,000 μx ➜ 0.01 x
so:
1 μW/cm2 ➜ 0.01 W/m2 or 10 mW/m2

Just for comparison, this is what my Ecowitt weather station reported today in Sydney:

And if you want to try that VEML6075 sensor with ESPHome you can use this custom component code: esphome-customisations/veml6075 at master · exxamalte/esphome-customisations · GitHub

1 Like

Hello. Can you show the UVB and UVA graphs?

Your values are too high. This can’t be true.

My weather station does not distinguish between UVA and UVB.

I’m not a meteorologist, so can’t verify that this data is absolutely correct. However, according to Wikipedia, the “maximum normal surface irradiance at approximately 1000 W/m2 at sea level on a clear day”. I am at a latitude of about 33.5ºS, and the graph is from May (mid-autumn), so kind of makes sense to me.
Today (in mid-summer) my peak reading was around 950 W/m2.

Solar Radiation is not equal to UVB and equally to UVA.
The photo shows only UVB!

What sensor are you using?
I just thought that you had VEML6075, since you provided a link to its integration.

Your values are too high. This can’t be true.

I am using the Ecowitt WS80 which includes a solar radiation sensor and calculates the UV index.

I did play around with the VEML6075 sensor and built the custom component for ESPHome, but have never actually installed this outside for longer.

1 Like

VEML6075 returns the UVA and UVB levels as a 16bit value.
The value is returned as counts/µW/cm²
Why did you use W/m²?

I have just wrapped the Adafruit library, but unfortunately that does not actually mention the unit of measurement as far as I can see.
So, my pick of W/m² might be wrong.

My understanding of the Adafruit library is that it integrates the sensor values over a short period of time, and that would at least explain why the “counts” of the original sensor don’t matter.

If you don’t mind, can you show at least some of the UVB and UVA values that your VEML6075 produces?

Here are the UVB values on the same day measured in different regions with special devices.