1 """Platform for switch integration."""
6 from smarttub
import SpaPump
13 from .const
import API_TIMEOUT, ATTR_PUMPS, DOMAIN, SMARTTUB_CONTROLLER
14 from .entity
import SmartTubEntity
15 from .helpers
import get_spa_name
19 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
21 """Set up switch entities for the pumps on the tub."""
23 controller = hass.data[DOMAIN][entry.entry_id][SMARTTUB_CONTROLLER]
27 for spa
in controller.spas
28 for pump
in controller.coordinator.data[spa.id][ATTR_PUMPS].values()
35 """A pump on a spa."""
37 def __init__(self, coordinator, pump: SpaPump) ->
None:
38 """Initialize the entity."""
39 super().
__init__(coordinator, pump.spa,
"pump")
46 """Return the underlying SpaPump object for this entity."""
47 return self.coordinator.data[self.
spaspa.id][ATTR_PUMPS][self.
pump_idpump_id]
51 """Return a name for this pump entity."""
53 if self.
pump_typepump_type == SpaPump.PumpType.CIRCULATION:
54 return f
"{spa_name} Circulation Pump"
55 if self.
pump_typepump_type == SpaPump.PumpType.JET:
56 return f
"{spa_name} Jet {self.pump_id}"
57 return f
"{spa_name} pump {self.pump_id}"
61 """Return True if the pump is on."""
62 return self.
pumppump.state != SpaPump.PumpState.OFF
65 """Turn the pump on."""
72 """Turn the pump off."""
79 """Toggle the pump on or off."""
80 async
with asyncio.timeout(API_TIMEOUT):
82 await self.coordinator.async_request_refresh()
None async_toggle(self, **Any kwargs)
None __init__(self, coordinator, SpaPump pump)
None async_turn_off(self, **Any kwargs)
None async_turn_on(self, **Any kwargs)
None async_toggle(self, **Any kwargs)
None toggle(self, **Any kwargs)
str get_spa_name(smarttub.Spa spa)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)