openuv: Add Current UV Level to list of conditions (#16042)
Calculated from UV index, based on table from https://www.openuv.io/kb/uv-index-levels-colors
This commit is contained in:
parent
18d19fde0b
commit
a708a81fa8
2 changed files with 23 additions and 4 deletions
|
@ -11,10 +11,10 @@ from homeassistant.core import callback
|
|||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.components.openuv import (
|
||||
DATA_UV, DOMAIN, SENSORS, TOPIC_UPDATE, TYPE_CURRENT_OZONE_LEVEL,
|
||||
TYPE_CURRENT_UV_INDEX, TYPE_MAX_UV_INDEX, TYPE_SAFE_EXPOSURE_TIME_1,
|
||||
TYPE_SAFE_EXPOSURE_TIME_2, TYPE_SAFE_EXPOSURE_TIME_3,
|
||||
TYPE_SAFE_EXPOSURE_TIME_4, TYPE_SAFE_EXPOSURE_TIME_5,
|
||||
TYPE_SAFE_EXPOSURE_TIME_6, OpenUvEntity)
|
||||
TYPE_CURRENT_UV_INDEX, TYPE_CURRENT_UV_LEVEL, TYPE_MAX_UV_INDEX,
|
||||
TYPE_SAFE_EXPOSURE_TIME_1, TYPE_SAFE_EXPOSURE_TIME_2,
|
||||
TYPE_SAFE_EXPOSURE_TIME_3, TYPE_SAFE_EXPOSURE_TIME_4,
|
||||
TYPE_SAFE_EXPOSURE_TIME_5, TYPE_SAFE_EXPOSURE_TIME_6, OpenUvEntity)
|
||||
from homeassistant.util.dt import as_local, parse_datetime
|
||||
|
||||
DEPENDENCIES = ['openuv']
|
||||
|
@ -31,6 +31,12 @@ EXPOSURE_TYPE_MAP = {
|
|||
TYPE_SAFE_EXPOSURE_TIME_6: 'st6'
|
||||
}
|
||||
|
||||
UV_LEVEL_EXTREME = "Extreme"
|
||||
UV_LEVEL_VHIGH = "Very High"
|
||||
UV_LEVEL_HIGH = "High"
|
||||
UV_LEVEL_MODERATE = "Moderate"
|
||||
UV_LEVEL_LOW = "Low"
|
||||
|
||||
|
||||
async def async_setup_platform(
|
||||
hass, config, async_add_devices, discovery_info=None):
|
||||
|
@ -105,6 +111,17 @@ class OpenUvSensor(OpenUvEntity):
|
|||
self._state = data['ozone']
|
||||
elif self._sensor_type == TYPE_CURRENT_UV_INDEX:
|
||||
self._state = data['uv']
|
||||
elif self._sensor_type == TYPE_CURRENT_UV_LEVEL:
|
||||
if data['uv'] >= 11:
|
||||
self._state = UV_LEVEL_EXTREME
|
||||
elif data['uv'] >= 8:
|
||||
self._state = UV_LEVEL_VHIGH
|
||||
elif data['uv'] >= 6:
|
||||
self._state = UV_LEVEL_HIGH
|
||||
elif data['uv'] >= 3:
|
||||
self._state = UV_LEVEL_MODERATE
|
||||
else:
|
||||
self._state = UV_LEVEL_LOW
|
||||
elif self._sensor_type == TYPE_MAX_UV_INDEX:
|
||||
self._state = data['uv_max']
|
||||
self._attrs.update({
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue