Catch missing inverter in Enphase Envoy (#106730)
* bug: prevent invalid key when empty invereter arrays is returned. Some envoy fw versions return an empty inverter array every 4 hours when no production is taking place. Prevent collection failure due to this as other data seems fine. Inveretrs will show unknown during this cycle. * refactor: replace try/catch with test and make warning debug * Update homeassistant/components/enphase_envoy/sensor.py * Update homeassistant/components/enphase_envoy/sensor.py --------- Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
parent
ca886de3ca
commit
e8acccce05
1 changed files with 11 additions and 1 deletions
|
@ -479,10 +479,20 @@ class EnvoyInverterEntity(EnvoySensorBaseEntity):
|
|||
)
|
||||
|
||||
@property
|
||||
def native_value(self) -> datetime.datetime | float:
|
||||
def native_value(self) -> datetime.datetime | float | None:
|
||||
"""Return the state of the sensor."""
|
||||
inverters = self.data.inverters
|
||||
assert inverters is not None
|
||||
# Some envoy fw versions return an empty inverter array every 4 hours when
|
||||
# no production is taking place. Prevent collection failure due to this
|
||||
# as other data seems fine. Inverters will show unknown during this cycle.
|
||||
if self._serial_number not in inverters:
|
||||
_LOGGER.debug(
|
||||
"Inverter %s not in returned inverters array (size: %s)",
|
||||
self._serial_number,
|
||||
len(inverters),
|
||||
)
|
||||
return None
|
||||
return self.entity_description.value_fn(inverters[self._serial_number])
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue