Skip to content

Commit

Permalink
Merge branch 'main' into 302-skip-offline-inverters-when-updating
Browse files Browse the repository at this point in the history
  • Loading branch information
WillCodeForCats committed Aug 2, 2023
2 parents 68339bf + 360d5e1 commit a940b6b
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 5 deletions.
33 changes: 29 additions & 4 deletions custom_components/solaredge_modbus_multi/hub.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ async def _async_init_solaredge(self) -> None:
f"Duplicate m1 serial {new_meter_1.serial}"
)

new_meter_1.via_device = new_inverter.uid_base
self.meters.append(new_meter_1)
_LOGGER.debug(f"Found meter 1 on inverter ID {inverter_unit_id}")

Expand Down Expand Up @@ -252,6 +253,7 @@ async def _async_init_solaredge(self) -> None:
f"Duplicate m2 serial {new_meter_2.serial}"
)

new_meter_2.via_device = new_inverter.uid_base
self.meters.append(new_meter_2)
_LOGGER.debug(f"Found meter 2 on inverter ID {inverter_unit_id}")

Expand Down Expand Up @@ -279,6 +281,7 @@ async def _async_init_solaredge(self) -> None:
f"Duplicate m3 serial {new_meter_3.serial}"
)

new_meter_3.via_device = new_inverter.uid_base
self.meters.append(new_meter_3)
_LOGGER.debug(f"Found meter 3 on inverter ID {inverter_unit_id}")

Expand Down Expand Up @@ -307,6 +310,7 @@ async def _async_init_solaredge(self) -> None:
f"Duplicate b1 serial {new_battery_1.serial}"
)

new_battery_1.via_device = new_inverter.uid_base
self.batteries.append(new_battery_1)
_LOGGER.debug(f"Found battery 1 inverter {inverter_unit_id}")

Expand Down Expand Up @@ -334,6 +338,7 @@ async def _async_init_solaredge(self) -> None:
f"Duplicate b2 serial {new_battery_2.serial}"
)

new_battery_2.via_device = new_inverter.uid_base
self.batteries.append(new_battery_2)
_LOGGER.debug(f"Found battery 2 inverter {inverter_unit_id}")

Expand Down Expand Up @@ -1243,7 +1248,7 @@ def inverter_unit_id(self, value: int) -> None:
def device_info(self) -> DeviceInfo:
"""Return the device info."""
return DeviceInfo(
identifiers={(DOMAIN, f"{self.model}_{self.serial}")},
identifiers={(DOMAIN, self.uid_base)},
name=self.name,
manufacturer=self.manufacturer,
model=self.model,
Expand Down Expand Up @@ -1272,6 +1277,7 @@ def __init__(
self.has_parent = True
self.inverter_common = self.hub.inverter_common[self.inverter_unit_id]
self.mmppt_common = self.hub.mmppt_common[self.inverter_unit_id]
self._via_device = None

self._online = True

Expand Down Expand Up @@ -1510,8 +1516,17 @@ def device_info(self) -> DeviceInfo:
model=self.model,
sw_version=self.fw_version,
hw_version=self.option,
via_device=self.via_device,
)

@property
def via_device(self) -> tuple[str, str]:
return self._via_device

@via_device.setter
def via_device(self, device: str) -> None:
self._via_device = (DOMAIN, device)


class SolarEdgeBattery:
def __init__(
Expand All @@ -1525,6 +1540,7 @@ def __init__(
self.battery_id = battery_id
self.has_parent = True
self.inverter_common = self.hub.inverter_common[self.inverter_unit_id]
self._via_device = None

self._online = True

Expand Down Expand Up @@ -1600,10 +1616,10 @@ async def init_device(self) -> None:

if (
len(self.decoded_common["B_Manufacturer"]) == 0
or len(self.decoded_common["B_Model"]) == 0
or len(self.decoded_common["B_SerialNumber"]) == 0
and len(self.decoded_common["B_Model"]) == 0
and len(self.decoded_common["B_SerialNumber"]) == 0
):
raise DeviceInvalid("Battery {self.battery_id} not usable.")
raise DeviceInvalid(f"Battery {self.battery_id} not usable.")

self.manufacturer = self.decoded_common["B_Manufacturer"]
self.model = self.decoded_common["B_Model"]
Expand Down Expand Up @@ -1719,8 +1735,17 @@ def device_info(self) -> DeviceInfo:
manufacturer=self.manufacturer,
model=self.model,
sw_version=self.fw_version,
via_device=self.via_device,
)

@property
def via_device(self) -> tuple[str, str]:
return self._via_device

@via_device.setter
def via_device(self, device: str) -> None:
self._via_device = (DOMAIN, device)

@property
def allow_battery_energy_reset(self) -> bool:
return self.hub.allow_battery_energy_reset
Expand Down
2 changes: 1 addition & 1 deletion custom_components/solaredge_modbus_multi/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
"issue_tracker": "https://github.com/WillCodeForCats/solaredge-modbus-multi/issues",
"loggers": ["custom_components.solaredge_modbus_multi"],
"requirements": ["pymodbus>=3.3.1"],
"version": "2.4.0-pre.7"
"version": "2.4.0"
}

0 comments on commit a940b6b

Please sign in to comment.