Skip to content

Commit 8d1ef9f

Browse files
committed
Added inverter as via_device
1 parent 5dc7448 commit 8d1ef9f

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

custom_components/solaredgeoptimizers/coordinator.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,36 @@ def __init__(self, hass, my_api: solaredgeoptimizers, first_boot):
3838
self.my_api = my_api
3939
self.first_boot = first_boot
4040

41+
async def _async_setup(self) -> None:
42+
"""Set up the coordinator.
43+
44+
Can be overwritten by integrations to load data or resources
45+
only once during the first refresh.
46+
"""
47+
48+
site = await self.hass.async_add_executor_job(self.my_api.requestListOfAllPanels)
49+
50+
_LOGGER.info("Found all information for site: %s", site.siteId)
51+
_LOGGER.info("Site has %s inverters", len(site.inverters))
52+
_LOGGER.info(
53+
"Adding all optimizers (%s) found to Home Assistant",
54+
site.returnNumberOfOptimizers(),
55+
)
56+
57+
58+
i = 1
59+
for inverter in site.inverters:
60+
_LOGGER.info("Adding all optimizers from inverter: %s", i)
61+
62+
device_registry = dr.async_get(self.hass)
63+
device_registry.async_get_or_create(
64+
config_entry_id=self.config_entry.entry_id,
65+
identifiers={(DOMAIN, inverter.serialNumber)},
66+
manufacturer="SolarEdge",
67+
model=inverter.type,
68+
name=inverter.displayName,
69+
)
70+
4171
async def _async_update_data(self):
4272
"""Fetch data from API endpoint.
4373

custom_components/solaredgeoptimizers/sensor.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ async def async_setup_entry(
9090
info,
9191
sensortype,
9292
optimizer,
93+
inverter
9394
)
9495
],
9596
update_before_add=True,
@@ -122,12 +123,14 @@ def __init__(
122123
paneel: SolarEdgeOptimizerData,
123124
sensortype,
124125
optimizer: SolarlEdgeOptimizer,
126+
inverter
125127
) -> None:
126128
super().__init__(coordinator)
127129
self._hass = hass
128130
self._entry = entry
129131
self._paneelobject = paneel
130132
self._optimizerobject = optimizer
133+
self._inverter = inverter
131134
self._paneel = paneel.paneel_desciption
132135
self._attr_unique_id = "{}_{}".format(paneel.serialnumber, sensortype)
133136
self._sensor_type = sensortype
@@ -172,7 +175,7 @@ def device_info(self):
172175
"manufacturer": self._paneelobject.manufacturer,
173176
"model": self._paneelobject.model,
174177
"hw_version": self._paneelobject.serialnumber,
175-
"via_device": (DOMAIN, self._entry.entry_id),
178+
"via_device": (DOMAIN, self._inverter.serialNumber),
176179
}
177180

178181
@callback

0 commit comments

Comments
 (0)