diff --git a/tests/veml6070_test.py b/tests/veml6070_test.py index 4cd6cb5..08a47b7 100644 --- a/tests/veml6070_test.py +++ b/tests/veml6070_test.py @@ -90,6 +90,17 @@ class TestVeml6070(snapshottest.TestCase): self.assertEqual(veml.get_uva_light_intensity(), 0x0106 * (0.1/0.1125) * 0.05 / 4) self.assertMatchSnapshot(mockbus._log) + def test_get_estimated_risk_level(self): + mockbus = setup_mockbus(initial_read={ + 0x38+1: [0x01, 0x04], + 0x38+0: [0x06, 0x01] + }) + veml = veml6070.Veml6070() + intensity = veml.get_uva_light_intensity() + self.assertEqual(veml.get_estimated_risk_level(intensity), "low") + intensity = veml.get_uva_light_intensity() + self.assertEqual(veml.get_estimated_risk_level(intensity), "moderate") + def test_get_refresh_time(self): mockbus = setup_mockbus() veml = veml6070.Veml6070(rset=veml6070.RSET_240K) diff --git a/veml6070/veml6070.py b/veml6070/veml6070.py index 09c2e3e..f7ce0f3 100644 --- a/veml6070/veml6070.py +++ b/veml6070/veml6070.py @@ -102,3 +102,19 @@ class Veml6070(object): INTEGRATIONTIME_4T: 4 } return self.rset * RSET_TO_REFRESHTIME_SCALE * case_refresh_it[self.integration_time] + + @staticmethod + def get_estimated_risk_level(intensity): + """ + returns estimated risk level from comparing UVA light intensity value + in W/(m*m) as parameter, thresholds calculated from application notes + """ + if intensity < 24.888: + return "low" + if intensity < 49.800: + return "moderate" + if intensity < 66.400: + return "high" + if intensity < 91.288: + return "very high" + return "extreme"