1 """Number platform for V2C settings."""
3 from __future__
import annotations
5 from collections.abc
import Callable, Coroutine
6 from dataclasses
import dataclass
9 from pytrydan
import Trydan, TrydanData
14 NumberEntityDescription,
20 from .
import V2CConfigEntry
21 from .coordinator
import V2CUpdateCoordinator
22 from .entity
import V2CBaseEntity
28 @dataclass(frozen=True, kw_only=True)
30 """Describes V2C EVSE number entity."""
32 value_fn: Callable[[TrydanData], int]
33 update_fn: Callable[[Trydan, int], Coroutine[Any, Any,
None]]
36 TRYDAN_NUMBER_SETTINGS = (
39 translation_key=
"intensity",
40 device_class=NumberDeviceClass.CURRENT,
41 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
42 native_min_value=MIN_INTENSITY,
43 native_max_value=MAX_INTENSITY,
44 value_fn=
lambda evse_data: evse_data.intensity,
45 update_fn=
lambda evse, value: evse.intensity(value),
49 translation_key=
"min_intensity",
50 device_class=NumberDeviceClass.CURRENT,
51 entity_category=EntityCategory.CONFIG,
52 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
53 native_min_value=MIN_INTENSITY,
54 native_max_value=MAX_INTENSITY,
55 value_fn=
lambda evse_data: evse_data.min_intensity,
56 update_fn=
lambda evse, value: evse.min_intensity(value),
60 translation_key=
"max_intensity",
61 device_class=NumberDeviceClass.CURRENT,
62 entity_category=EntityCategory.CONFIG,
63 native_unit_of_measurement=UnitOfElectricCurrent.AMPERE,
64 native_min_value=MIN_INTENSITY,
65 native_max_value=MAX_INTENSITY,
66 value_fn=
lambda evse_data: evse_data.max_intensity,
67 update_fn=
lambda evse, value: evse.max_intensity(value),
74 config_entry: V2CConfigEntry,
75 async_add_entities: AddEntitiesCallback,
77 """Set up V2C Trydan number platform."""
78 coordinator = config_entry.runtime_data
82 for description
in TRYDAN_NUMBER_SETTINGS
87 """Representation of V2C EVSE settings number entity."""
89 entity_description: V2CSettingsNumberEntityDescription
93 coordinator: V2CUpdateCoordinator,
94 description: V2CSettingsNumberEntityDescription,
97 """Initialize the V2C number entity."""
98 super().
__init__(coordinator, description)
103 """Return the state of the setting entity."""
107 """Update the setting."""
None __init__(self, V2CUpdateCoordinator coordinator, V2CSettingsNumberEntityDescription description, str entry_id)
None async_set_native_value(self, float value)
None async_request_refresh(self)
None async_setup_entry(HomeAssistant hass, V2CConfigEntry config_entry, AddEntitiesCallback async_add_entities)