Fix Solaredge integration in case the data is not complete (#43557)

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
Maikel Punie 2020-12-07 11:20:22 +01:00 committed by GitHub
parent 4bcb6c0ec6
commit 035860ebb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -425,22 +425,21 @@ class SolarEdgeEnergyDetailsService(SolarEdgeDataService):
self.data = {} self.data = {}
self.attributes = {} self.attributes = {}
self.unit = energy_details["unit"] self.unit = energy_details["unit"]
meters = energy_details["meters"]
for entity in meters: for meter in energy_details["meters"]:
for key, data in entity.items(): if "type" not in meter or "values" not in meter:
if key == "type" and data in [ continue
if meter["type"] not in [
"Production", "Production",
"SelfConsumption", "SelfConsumption",
"FeedIn", "FeedIn",
"Purchased", "Purchased",
"Consumption", "Consumption",
]: ]:
energy_type = data continue
if key == "values": if len(meter["values"][0]) == 2:
for row in data: self.data[meter["type"]] = meter["values"][0]["value"]
self.data[energy_type] = row["value"] self.attributes[meter["type"]] = {"date": meter["values"][0]["date"]}
self.attributes[energy_type] = {"date": row["date"]}
_LOGGER.debug( _LOGGER.debug(
"Updated SolarEdge energy details: %s, %s", self.data, self.attributes "Updated SolarEdge energy details: %s, %s", self.data, self.attributes