1 """The number platform for rainbird."""
3 from __future__
import annotations
7 from pyrainbird.exceptions
import RainbirdApiException, RainbirdDeviceBusyException
16 from .coordinator
import RainbirdUpdateCoordinator
17 from .types
import RainbirdConfigEntry
19 _LOGGER = logging.getLogger(__name__)
24 config_entry: RainbirdConfigEntry,
25 async_add_entities: AddEntitiesCallback,
27 """Set up entry for a Rain Bird number platform."""
31 config_entry.runtime_data.coordinator,
38 """A number implementation for the rain delay."""
40 _attr_native_min_value = 0
41 _attr_native_max_value = 14
43 _attr_native_unit_of_measurement = UnitOfTime.DAYS
44 _attr_translation_key =
"rain_delay"
45 _attr_has_entity_name =
True
49 coordinator: RainbirdUpdateCoordinator,
51 """Initialize the Rain Bird sensor."""
53 if coordinator.unique_id
is not None:
57 self.
_attr_name_attr_name = f
"{coordinator.device_name} Rain delay"
61 """Return the value reported by the sensor."""
62 return self.coordinator.data.rain_delay
65 """Update the current value."""
67 await self.coordinator.controller.set_rain_delay(value)
68 except RainbirdDeviceBusyException
as err:
70 "Rain Bird device is busy; Wait and try again"
72 except RainbirdApiException
as err:
float|None native_value(self)
None async_set_native_value(self, float value)
None __init__(self, RainbirdUpdateCoordinator coordinator)
None async_setup_entry(HomeAssistant hass, RainbirdConfigEntry config_entry, AddEntitiesCallback async_add_entities)