mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
refactor: Update price level and rating options to inline definitions for sensor initialization
This commit is contained in:
parent
9c6ebc45ec
commit
3f3edd8a28
2 changed files with 19 additions and 12 deletions
|
|
@ -128,6 +128,9 @@ PRICE_RATING_NORMAL = "NORMAL"
|
|||
PRICE_RATING_HIGH = "HIGH"
|
||||
|
||||
# Sensor options (lowercase versions for ENUM device class)
|
||||
# NOTE: These constants define the valid enum options, but they are not used directly
|
||||
# in sensor.py due to import timing issues. Instead, the options are defined inline
|
||||
# in the SensorEntityDescription objects. Keep these in sync with sensor.py!
|
||||
PRICE_LEVEL_OPTIONS = [
|
||||
PRICE_LEVEL_VERY_CHEAP.lower(),
|
||||
PRICE_LEVEL_CHEAP.lower(),
|
||||
|
|
|
|||
|
|
@ -34,9 +34,7 @@ from .const import (
|
|||
DEFAULT_PRICE_RATING_THRESHOLD_LOW,
|
||||
DOMAIN,
|
||||
PRICE_LEVEL_MAPPING,
|
||||
PRICE_LEVEL_OPTIONS,
|
||||
PRICE_RATING_MAPPING,
|
||||
PRICE_RATING_OPTIONS,
|
||||
async_get_entity_description,
|
||||
format_price_unit_minor,
|
||||
get_entity_description,
|
||||
|
|
@ -110,13 +108,16 @@ PRICE_SENSORS = (
|
|||
device_class=SensorDeviceClass.MONETARY,
|
||||
suggested_display_precision=1,
|
||||
),
|
||||
# NOTE: Enum options are defined inline (not imported from const.py) to avoid
|
||||
# import timing issues with Home Assistant's entity platform initialization.
|
||||
# Keep in sync with PRICE_LEVEL_OPTIONS in const.py!
|
||||
SensorEntityDescription(
|
||||
key="price_level",
|
||||
translation_key="price_level",
|
||||
name="Current Price Level",
|
||||
icon="mdi:gauge",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_LEVEL_OPTIONS,
|
||||
options=["very_cheap", "cheap", "normal", "expensive", "very_expensive"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="next_interval_price_level",
|
||||
|
|
@ -124,7 +125,7 @@ PRICE_SENSORS = (
|
|||
name="Next Price Level",
|
||||
icon="mdi:gauge-empty",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_LEVEL_OPTIONS,
|
||||
options=["very_cheap", "cheap", "normal", "expensive", "very_expensive"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="previous_interval_price_level",
|
||||
|
|
@ -133,7 +134,7 @@ PRICE_SENSORS = (
|
|||
icon="mdi:gauge-empty",
|
||||
entity_registry_enabled_default=False,
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_LEVEL_OPTIONS,
|
||||
options=["very_cheap", "cheap", "normal", "expensive", "very_expensive"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="current_hour_price_level",
|
||||
|
|
@ -141,7 +142,7 @@ PRICE_SENSORS = (
|
|||
name="Current Hour Price Level",
|
||||
icon="mdi:gauge",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_LEVEL_OPTIONS,
|
||||
options=["very_cheap", "cheap", "normal", "expensive", "very_expensive"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="next_hour_price_level",
|
||||
|
|
@ -149,7 +150,7 @@ PRICE_SENSORS = (
|
|||
name="Next Hour Price Level",
|
||||
icon="mdi:gauge-empty",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_LEVEL_OPTIONS,
|
||||
options=["very_cheap", "cheap", "normal", "expensive", "very_expensive"],
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -257,6 +258,9 @@ STATISTICS_SENSORS = (
|
|||
)
|
||||
|
||||
# Rating sensors
|
||||
# NOTE: Enum options are defined inline (not imported from const.py) to avoid
|
||||
# import timing issues with Home Assistant's entity platform initialization.
|
||||
# Keep in sync with PRICE_RATING_OPTIONS in const.py!
|
||||
RATING_SENSORS = (
|
||||
SensorEntityDescription(
|
||||
key="price_rating",
|
||||
|
|
@ -264,7 +268,7 @@ RATING_SENSORS = (
|
|||
name="Current Price Rating",
|
||||
icon="mdi:star-outline",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_RATING_OPTIONS,
|
||||
options=["low", "normal", "high"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="next_interval_price_rating",
|
||||
|
|
@ -272,7 +276,7 @@ RATING_SENSORS = (
|
|||
name="Next Price Rating",
|
||||
icon="mdi:star-half-full",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_RATING_OPTIONS,
|
||||
options=["low", "normal", "high"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="previous_interval_price_rating",
|
||||
|
|
@ -281,7 +285,7 @@ RATING_SENSORS = (
|
|||
icon="mdi:star-half-full",
|
||||
entity_registry_enabled_default=False,
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_RATING_OPTIONS,
|
||||
options=["low", "normal", "high"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="current_hour_price_rating",
|
||||
|
|
@ -289,7 +293,7 @@ RATING_SENSORS = (
|
|||
name="Current Hour Price Rating",
|
||||
icon="mdi:star-outline",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_RATING_OPTIONS,
|
||||
options=["low", "normal", "high"],
|
||||
),
|
||||
SensorEntityDescription(
|
||||
key="next_hour_price_rating",
|
||||
|
|
@ -297,7 +301,7 @@ RATING_SENSORS = (
|
|||
name="Next Hour Price Rating",
|
||||
icon="mdi:star-half-full",
|
||||
device_class=SensorDeviceClass.ENUM,
|
||||
options=PRICE_RATING_OPTIONS,
|
||||
options=["low", "normal", "high"],
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue