1 """Support for tariff selection."""
3 from __future__
import annotations
17 from .const
import CONF_METER, CONF_SOURCE_SENSOR, CONF_TARIFFS, DATA_UTILITY
19 _LOGGER = logging.getLogger(__name__)
24 config_entry: ConfigEntry,
25 async_add_entities: AddEntitiesCallback,
27 """Initialize Utility Meter config entry."""
28 name = config_entry.title
29 tariffs: list[str] = config_entry.options[CONF_TARIFFS]
31 unique_id = config_entry.entry_id
35 config_entry.options[CONF_SOURCE_SENSOR],
42 device_info=device_info,
50 async_add_entities: AddEntitiesCallback,
51 discovery_info: DiscoveryInfoType |
None =
None,
53 """Set up the utility meter select."""
54 if discovery_info
is None:
56 "This platform is not available to configure "
57 "from 'select:' in configuration.yaml"
61 meter: str = discovery_info[CONF_METER]
62 conf_meter_unique_id: str |
None = hass.data[DATA_UTILITY][meter].
get(
65 conf_meter_name = hass.data[DATA_UTILITY][meter].
get(CONF_NAME, meter)
71 tariffs=discovery_info[CONF_TARIFFS],
73 unique_id=conf_meter_unique_id,
80 """Representation of a Tariff selector."""
82 _attr_translation_key =
"tariff"
89 yaml_slug: str |
None =
None,
90 unique_id: str |
None =
None,
91 device_info: DeviceInfo |
None =
None,
93 """Initialize a tariff selector."""
105 """Return the available tariffs."""
110 """Return current tariff."""
114 """Run when entity about to be added."""
118 if not state
or state.state
not in self.
_tariffs_tariffs:
124 """Select new tariff (option)."""
str|None current_option(self)
None async_select_option(self, str option)
None async_added_to_hass(self)
None __init__(self, name, list[str] tariffs, *str|None yaml_slug=None, str|None unique_id=None, DeviceInfo|None device_info=None)
None async_write_ha_state(self)
State|None async_get_last_state(self)
web.Response get(self, web.Request request, str config_key)
None async_setup_platform(HomeAssistant hass, ConfigType conf, AddEntitiesCallback async_add_entities, DiscoveryInfoType|None discovery_info=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
dr.DeviceInfo|None async_device_info_to_link_from_entity(HomeAssistant hass, str entity_id_or_uuid)