1 """The Tesla Powerwall integration base entity."""
15 POWERWALL_COORDINATOR,
17 from .models
import BatteryResponse, PowerwallData, PowerwallRuntimeData
21 """Base class for powerwall entities."""
23 _attr_has_entity_name =
True
25 def __init__(self, powerwall_data: PowerwallRuntimeData) ->
None:
26 """Initialize the entity."""
27 base_info = powerwall_data[POWERWALL_BASE_INFO]
28 coordinator = powerwall_data[POWERWALL_COORDINATOR]
29 assert coordinator
is not None
31 self.
power_wallpower_wall = powerwall_data[POWERWALL_API]
35 manufacturer=MANUFACTURER,
36 model=f
"{MODEL} ({base_info.device_type.name})",
37 name=base_info.site_info.site_name,
38 sw_version=base_info.status.version,
39 configuration_url=base_info.url,
43 def data(self) -> PowerwallData:
44 """Return the coordinator data."""
45 return self.coordinator.data
49 """Base class for battery entities."""
51 _attr_has_entity_name =
True
54 self, powerwall_data: PowerwallRuntimeData, battery: BatteryResponse
56 """Initialize the entity."""
57 base_info = powerwall_data[POWERWALL_BASE_INFO]
58 coordinator = powerwall_data[POWERWALL_COORDINATOR]
59 assert coordinator
is not None
62 self.
power_wallpower_wall = powerwall_data[POWERWALL_API]
63 self.
base_unique_idbase_unique_id = f
"{base_info.gateway_din}_{battery.serial_number}"
67 manufacturer=MANUFACTURER,
68 model=f
"{MODEL} ({battery.part_number})",
69 name=f
"{base_info.site_info.site_name} {battery.serial_number}",
70 sw_version=base_info.status.version,
71 configuration_url=base_info.url,
72 via_device=(DOMAIN, base_info.gateway_din),
77 """Return the coordinator data."""
78 return self.coordinator.data.batteries[self.
serial_numberserial_number]
BatteryResponse battery_data(self)
None __init__(self, PowerwallRuntimeData powerwall_data, BatteryResponse battery)
None __init__(self, PowerwallRuntimeData powerwall_data)