1 """Support for Renault sensors."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
6 from typing
import cast
8 from renault_api.kamereon.models
import KamereonVehicleBatteryStatusData
15 from .
import RenaultConfigEntry
16 from .entity
import RenaultDataEntity, RenaultDataEntityDescription
19 @dataclass(frozen=True, kw_only=True)
21 SelectEntityDescription, RenaultDataEntityDescription
23 """Class describing Renault select entities."""
30 config_entry: RenaultConfigEntry,
31 async_add_entities: AddEntitiesCallback,
33 """Set up the Renault entities from config entry."""
34 entities: list[RenaultSelectEntity] = [
36 for vehicle
in config_entry.runtime_data.vehicles.values()
37 for description
in SENSOR_TYPES
38 if description.coordinator
in vehicle.coordinators
44 RenaultDataEntity[KamereonVehicleBatteryStatusData], SelectEntity
46 """Mixin for sensor specific attributes."""
48 entity_description: RenaultSelectEntityDescription
52 """Return the selected entity option to represent the entity state."""
56 def data(self) -> StateType:
57 """Return the state of this entity."""
61 """Change the selected option."""
62 await self.
vehiclevehicle.set_charge_mode(option)
65 SENSOR_TYPES: tuple[RenaultSelectEntityDescription, ...] = (
68 coordinator=
"charge_mode",
69 data_key=
"chargeMode",
70 translation_key=
"charge_mode",
71 options=[
"always",
"always_charging",
"schedule_mode",
"scheduled"],
StateType _get_data_attr(self, str key)
str|None current_option(self)
None async_select_option(self, str option)
None async_setup_entry(HomeAssistant hass, RenaultConfigEntry config_entry, AddEntitiesCallback async_add_entities)