Skip to content

Commit bc05f47

Browse files
Disconnect on modbus read error
1 parent c856458 commit bc05f47

File tree

1 file changed

+19
-10
lines changed
  • custom_components/solaredge_modbus_multi

1 file changed

+19
-10
lines changed

custom_components/solaredge_modbus_multi/hub.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ async def _async_init_solaredge(self) -> None:
115115
await self._hass.async_add_executor_job(new_inverter.init_device)
116116
self.inverters.append(new_inverter)
117117

118+
except ModbusReadError as e:
119+
self.disconnect()
120+
raise HubInitFailed(f"{e}")
121+
118122
except DeviceInvalid as e:
119123
"""Inverters are required"""
120124
_LOGGER.error(f"Inverter device ID {inverter_unit_id}: {e}")
@@ -140,8 +144,9 @@ async def _async_init_solaredge(self) -> None:
140144
self.meters.append(new_meter_1)
141145
_LOGGER.debug(f"Found meter 1 on inverter ID {inverter_unit_id}")
142146

143-
except ModbusReadError:
144-
raise HubInitFailed
147+
except ModbusReadError as e:
148+
self.disconnect()
149+
raise HubInitFailed(f"{e}")
145150

146151
except DeviceInvalid:
147152
pass
@@ -165,8 +170,9 @@ async def _async_init_solaredge(self) -> None:
165170
self.meters.append(new_meter_2)
166171
_LOGGER.debug(f"Found meter 2 on inverter ID {inverter_unit_id}")
167172

168-
except ModbusReadError:
169-
raise HubInitFailed
173+
except ModbusReadError as e:
174+
self.disconnect()
175+
raise HubInitFailed(f"{e}")
170176

171177
except DeviceInvalid:
172178
pass
@@ -190,8 +196,9 @@ async def _async_init_solaredge(self) -> None:
190196
self.meters.append(new_meter_3)
191197
_LOGGER.debug(f"Found meter 3 on inverter ID {inverter_unit_id}")
192198

193-
except ModbusReadError:
194-
raise HubInitFailed
199+
except ModbusReadError as e:
200+
self.disconnect()
201+
raise HubInitFailed(f"{e}")
195202

196203
except DeviceInvalid:
197204
pass
@@ -216,8 +223,9 @@ async def _async_init_solaredge(self) -> None:
216223
self.batteries.append(new_battery_1)
217224
_LOGGER.debug(f"Found battery 1 inverter {inverter_unit_id}")
218225

219-
except ModbusReadError:
220-
raise HubInitFailed
226+
except ModbusReadError as e:
227+
self.disconnect()
228+
raise HubInitFailed(f"{e}")
221229

222230
except DeviceInvalid:
223231
pass
@@ -241,8 +249,9 @@ async def _async_init_solaredge(self) -> None:
241249
self.batteries.append(new_battery_2)
242250
_LOGGER.debug(f"Found battery 2 inverter {inverter_unit_id}")
243251

244-
except ModbusReadError:
245-
raise HubInitFailed
252+
except ModbusReadError as e:
253+
self.disconnect()
254+
raise HubInitFailed(f"{e}")
246255

247256
except DeviceInvalid:
248257
pass

0 commit comments

Comments
 (0)