1 """Number entities for musiccast."""
3 from __future__
import annotations
5 from aiomusiccast.capabilities
import NumberSetter
12 from .const
import DOMAIN
13 from .coordinator
import MusicCastDataUpdateCoordinator
14 from .entity
import MusicCastCapabilityEntity
20 async_add_entities: AddEntitiesCallback,
22 """Set up MusicCast number entities based on a config entry."""
23 coordinator: MusicCastDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
27 for capability
in coordinator.data.capabilities
28 if isinstance(capability, NumberSetter)
31 number_entities.extend(
33 for zone, data
in coordinator.data.zones.items()
34 for capability
in data.capabilities
35 if isinstance(capability, NumberSetter)
42 """Representation of a MusicCast Number entity."""
44 capability: NumberSetter
48 coordinator: MusicCastDataUpdateCoordinator,
49 capability: NumberSetter,
50 zone_id: str |
None =
None,
52 """Initialize the number entity."""
53 super().
__init__(coordinator, capability, zone_id)
60 """Return the current value."""
64 """Set a new value."""
None async_set_native_value(self, float value)
None __init__(self, MusicCastDataUpdateCoordinator coordinator, NumberSetter capability, str|None zone_id=None)
float|None native_value(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)