From 2d1afc1c7dbd86f054d328a196d7fc08050eeb9f Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Sat, 14 Oct 2023 10:31:46 -0600 Subject: [PATCH] Add state translations for OpenUV UV Level sensor (#101978) --- homeassistant/components/openuv/sensor.py | 13 ++++++++----- homeassistant/components/openuv/strings.json | 9 ++++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/openuv/sensor.py b/homeassistant/components/openuv/sensor.py index 6c4bff855a4..8434b6d5591 100644 --- a/homeassistant/components/openuv/sensor.py +++ b/homeassistant/components/openuv/sensor.py @@ -6,6 +6,7 @@ from dataclasses import dataclass from typing import Any from homeassistant.components.sensor import ( + SensorDeviceClass, SensorEntity, SensorEntityDescription, SensorStateClass, @@ -54,11 +55,11 @@ class UvLabel: UV_LABEL_DEFINITIONS = ( - UvLabel(value="Extreme", minimum_index=11), - UvLabel(value="Very High", minimum_index=8), - UvLabel(value="High", minimum_index=6), - UvLabel(value="Moderate", minimum_index=3), - UvLabel(value="Low", minimum_index=0), + UvLabel(value="extreme", minimum_index=11), + UvLabel(value="very_high", minimum_index=8), + UvLabel(value="high", minimum_index=6), + UvLabel(value="moderate", minimum_index=3), + UvLabel(value="low", minimum_index=0), ) @@ -104,6 +105,8 @@ SENSOR_DESCRIPTIONS = ( key=TYPE_CURRENT_UV_LEVEL, translation_key="current_uv_level", icon="mdi:weather-sunny", + device_class=SensorDeviceClass.ENUM, + options=[label.value for label in UV_LABEL_DEFINITIONS], value_fn=lambda data: get_uv_label(data["uv"]), ), OpenUvSensorEntityDescription( diff --git a/homeassistant/components/openuv/strings.json b/homeassistant/components/openuv/strings.json index 2534622975c..9349d2cc116 100644 --- a/homeassistant/components/openuv/strings.json +++ b/homeassistant/components/openuv/strings.json @@ -51,7 +51,14 @@ "name": "Current UV index" }, "current_uv_level": { - "name": "Current UV level" + "name": "Current UV level", + "state": { + "extreme": "Extreme", + "high": "High", + "low": "Low", + "moderate": "Moderate", + "very_high": "Very high" + } }, "max_uv_index": { "name": "Max UV index"