1 """Plugged In Status Support for the Nissan Leaf."""
3 from __future__
import annotations
8 BinarySensorDeviceClass,
15 from .
import LeafDataStore
16 from .const
import DATA_CHARGING, DATA_LEAF, DATA_PLUGGED_IN
17 from .entity
import LeafEntity
19 _LOGGER = logging.getLogger(__name__)
25 add_entities: AddEntitiesCallback,
26 discovery_info: DiscoveryInfoType |
None =
None,
28 """Set up of a Nissan Leaf binary sensor."""
29 if discovery_info
is None:
32 entities: list[LeafEntity] = []
33 for vin, datastore
in hass.data[DATA_LEAF].items():
34 _LOGGER.debug(
"Adding binary_sensors for vin=%s", vin)
42 """Plugged In Sensor class."""
44 _attr_device_class = BinarySensorDeviceClass.PLUG
46 def __init__(self, car: LeafDataStore) ->
None:
47 """Set up plug status sensor."""
54 return f
"{self.car.leaf.nickname} Plug Status"
58 """Sensor availability."""
59 return self.
carcar.data[DATA_PLUGGED_IN]
is not None
63 """Return true if plugged in."""
64 return bool(self.
carcar.data[DATA_PLUGGED_IN])
68 """Charging Sensor class."""
70 _attr_device_class = BinarySensorDeviceClass.BATTERY_CHARGING
72 def __init__(self, car: LeafDataStore) ->
None:
73 """Set up charging status sensor."""
75 self.
_attr_unique_id_attr_unique_id = f
"{self.car.leaf.vin.lower()}_chargingstatus"
80 return f
"{self.car.leaf.nickname} Charging Status"
84 """Sensor availability."""
85 return self.
carcar.data[DATA_CHARGING]
is not None
89 """Return true if charging."""
90 return bool(self.
carcar.data[DATA_CHARGING])
None __init__(self, LeafDataStore car)
None __init__(self, LeafDataStore car)
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)