1 """Charge and Climate Control Support for the Nissan Leaf."""
3 from __future__
import annotations
13 from .
import LeafDataStore
14 from .const
import DATA_CLIMATE, DATA_LEAF
15 from .entity
import LeafEntity
17 _LOGGER = logging.getLogger(__name__)
23 add_entities: AddEntitiesCallback,
24 discovery_info: DiscoveryInfoType |
None =
None,
26 """Nissan Leaf switch platform setup."""
27 if discovery_info
is None:
30 entities: list[LeafEntity] = []
31 for vin, datastore
in hass.data[DATA_LEAF].items():
32 _LOGGER.debug(
"Adding switch for vin=%s", vin)
39 """Nissan Leaf Climate Control switch."""
41 def __init__(self, car: LeafDataStore) ->
None:
42 """Set up climate control switch."""
44 self.
_attr_unique_id_attr_unique_id = f
"{self.car.leaf.vin.lower()}_climatecontrol"
49 return f
"{self.car.leaf.nickname} Climate Control"
52 """Log registration."""
54 "Registered LeafClimateSwitch integration with Home Assistant for VIN %s",
60 """Return climate control attributes."""
61 attrs = super().extra_state_attributes
62 attrs[
"updated_on"] = self.
carcar.last_climate_response
67 """Return true if climate control is on."""
68 return bool(self.
carcar.data[DATA_CLIMATE])
71 """Turn on climate control."""
72 if await self.
carcar.async_set_climate(
True):
73 self.
carcar.data[DATA_CLIMATE] =
True
76 """Turn off climate control."""
77 if await self.
carcar.async_set_climate(
False):
78 self.
carcar.data[DATA_CLIMATE] =
False
None log_registration(self)
None __init__(self, LeafDataStore car)
None async_turn_on(self, **Any kwargs)
None async_turn_off(self, **Any kwargs)
dict[str, Any] extra_state_attributes(self)
None add_entities(AsusWrtRouter router, AddEntitiesCallback async_add_entities, set[str] tracked)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)