1 """The Nibe Heat Pump numbers."""
3 from __future__
import annotations
5 from nibe.coil
import Coil, CoilData
13 from .const
import DOMAIN
14 from .coordinator
import CoilCoordinator
15 from .entity
import CoilEntity
20 config_entry: ConfigEntry,
21 async_add_entities: AddEntitiesCallback,
23 """Set up platform."""
25 coordinator: CoilCoordinator = hass.data[DOMAIN][config_entry.entry_id]
29 for coil
in coordinator.coils
30 if coil.is_writable
and not coil.mappings
35 """Calculate the integer limits of a signed or unsigned integer value."""
37 return (0, pow(2,
int(size[1:])) - 1)
39 return (-pow(2,
int(size[1:]) - 1), pow(2,
int(size[1:]) - 1) - 1)
40 raise ValueError(f
"Invalid size type specified {size}")
46 _attr_entity_category = EntityCategory.CONFIG
48 def __init__(self, coordinator: CoilCoordinator, coil: Coil) ->
None:
49 """Initialize entity."""
50 super().
__init__(coordinator, coil, ENTITY_ID_FORMAT)
51 if coil.min
is None or coil.max
is None:
66 if data.value
is None:
def _async_write_coil(self, float|str value)
None async_set_native_value(self, float value)
None __init__(self, CoilCoordinator coordinator, Coil coil)
_attr_native_unit_of_measurement
None _async_read_coil(self, CoilData data)
def _get_numeric_limits(str size)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)