Fix solaredge missing data value (#80321)

* Fix issue #80263: use get to fetch dict value

* use None instead -1 for unknown value

* Update homeassistant/components/solaredge/coordinator.py

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Add guards for not multipling None

* Missing if added

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
pull/80691/head
rozie 2022-10-19 22:48:39 +02:00 committed by Paulus Schoutsen
parent 15def40784
commit b203411885
1 changed files with 5 additions and 3 deletions

View File

@ -276,17 +276,19 @@ class SolarEdgePowerFlowDataService(SolarEdgeDataService):
for key, value in power_flow.items():
if key in ["LOAD", "PV", "GRID", "STORAGE"]:
self.data[key] = value["currentPower"]
self.data[key] = value.get("currentPower")
self.attributes[key] = {"status": value["status"]}
if key in ["GRID"]:
export = key.lower() in power_to
self.data[key] *= -1 if export else 1
if self.data[key]:
self.data[key] *= -1 if export else 1
self.attributes[key]["flow"] = "export" if export else "import"
if key in ["STORAGE"]:
charge = key.lower() in power_to
self.data[key] *= -1 if charge else 1
if self.data[key]:
self.data[key] *= -1 if charge else 1
self.attributes[key]["flow"] = "charge" if charge else "discharge"
self.attributes[key]["soc"] = value["chargeLevel"]