1 """Support for Hydrawise sprinkler valves."""
3 from __future__
import annotations
7 from pydrawise.schema
import Zone
12 ValveEntityDescription,
19 from .const
import DOMAIN
20 from .coordinator
import HydrawiseUpdateCoordinators
21 from .entity
import HydrawiseEntity
23 VALVE_TYPES: tuple[ValveEntityDescription, ...] = (
26 device_class=ValveDeviceClass.WATER,
33 config_entry: ConfigEntry,
34 async_add_entities: AddEntitiesCallback,
36 """Set up the Hydrawise valve platform."""
37 coordinators: HydrawiseUpdateCoordinators = hass.data[DOMAIN][config_entry.entry_id]
39 HydrawiseValve(coordinators.main, description, controller, zone_id=zone.id)
40 for controller
in coordinators.main.data.controllers.values()
41 for zone
in controller.zones
42 for description
in VALVE_TYPES
47 """A Hydrawise valve."""
50 _attr_reports_position =
False
51 _attr_supported_features = ValveEntityFeature.OPEN | ValveEntityFeature.CLOSE
56 await self.coordinator.api.start_zone(self.
zonezone)
59 """Close the valve."""
60 await self.coordinator.api.stop_zone(self.
zonezone)
63 """Update state attributes."""
None async_close_valve(self)
None async_open_valve(self, **Any kwargs)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)