Skip to content

Commit

Permalink
revert "sum creation" if master/slave environment
Browse files Browse the repository at this point in the history
  • Loading branch information
marq24 committed Sep 7, 2023
1 parent 7f70d5c commit 2e01cfd
Showing 1 changed file with 47 additions and 65 deletions.
112 changes: 47 additions & 65 deletions custom_components/senec/pysenec_ha/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1480,42 +1480,57 @@ async def update(self):

async def update_now_kW_stats(self):
_LOGGER.debug("***** update_now_kW_stats(self) ********")
for plant_number in range (0, int(self._master_plant_number) + 1 ):
# grab NOW and TODAY stats
a_url = f"{self._SENEC_API_OVERVIEW_URL}" % str(plant_number)
async with self.websession.get(a_url) as res:
# grab NOW and TODAY stats
a_url = f"{self._SENEC_API_OVERVIEW_URL}" % str(self._master_plant_number)
async with self.websession.get(a_url) as res:
try:
res.raise_for_status()
if res.status == 200:
r_json = await res.json()
self._raw = parse(r_json)
for key in (self._API_KEYS + self._API_KEYS_EXTRA):
if (key != "acculevel"):
value_now = r_json[key]["now"]
entity_now_name = str(key + "_now")
self._power_entities[entity_now_name] = value_now

value_today = r_json[key]["today"]
entity_today_name = str(key + "_today")
self._energy_entities[entity_today_name] = value_today
else:
value_now = r_json[key]["now"]
entity_now_name = str(key + "_now")
self._battery_entities[entity_now_name] = value_now

# value_today = r_json[key]["today"]
# entity_today_name = str(key + "_today")
# self._battery_entities[entity_today_name]=value_today

else:
self._isAuthenticated = False
await self.update()

except ClientResponseError as exc:
if exc.status == 401:
self.purgeSenecCookies()

self._isAuthenticated = False
await self.update()


async def update_full_kWh_stats(self):
# grab TOTAL stats
a_url = f"{self._SENEC_API_URL_END}" % str(self._master_plant_number)
for key in self._API_KEYS:
api_url = self._SENEC_API_URL_START + key + a_url
async with self.websession.get(api_url) as res:
try:
res.raise_for_status()
if res.status == 200:
r_json = await res.json()
self._raw = parse(r_json)
for key in (self._API_KEYS + self._API_KEYS_EXTRA):
if (key != "acculevel"):
value_now = r_json[key]["now"]
entity_now_name = str(key + "_now")
if entity_now_name in self._power_entities:
self._power_entities[entity_now_name] += value_now
else:
self._power_entities[entity_now_name] = value_now

value_today = r_json[key]["today"]
entity_today_name = str(key + "_today")
if entity_today_name in self._energy_entities:
self._energy_entities[entity_today_name] += value_today
else:
self._energy_entities[entity_today_name] = value_today
else:
value_now = r_json[key]["now"]
entity_now_name = str(key + "_now")
if entity_now_name in self._battery_entities:
self._battery_entities[entity_now_name] += value_now
else:
self._battery_entities[entity_now_name] = value_now

# value_today = r_json[key]["today"]
# entity_today_name = str(key + "_today")
# self._battery_entities[entity_today_name]=value_today

value = r_json["fullkwh"]
entity_name = str(key + "_total")
self._energy_entities[entity_name] = value
else:
self._isAuthenticated = False
await self.update()
Expand All @@ -1527,39 +1542,6 @@ async def update_now_kW_stats(self):
self._isAuthenticated = False
await self.update()

# at the end we have to check, if we need to divide the 'acculevel'
# sum be the number of systems...
if "acculevel_now" in self._battery_entities and int(self._master_plant_number) > 0:
self._battery_entities["acculevel_now"] = self._battery_entities["acculevel_now"] / (int(self._master_plant_number) + 1)

async def update_full_kWh_stats(self):
# grab TOTAL stats
for plant_number in range (0, int(self._master_plant_number) + 1 ):
a_url = f"{self._SENEC_API_URL_END}" % str(plant_number)
for key in self._API_KEYS:
api_url = self._SENEC_API_URL_START + key + a_url
async with self.websession.get(api_url) as res:
try:
res.raise_for_status()
if res.status == 200:
r_json = await res.json()
value = r_json["fullkwh"]
entity_name = str(key + "_total")
if entity_name in self._energy_entities:
self._energy_entities[entity_name] += value
else:
self._energy_entities[entity_name] = value
else:
self._isAuthenticated = False
await self.update()

except ClientResponseError as exc:
if exc.status == 401:
self.purgeSenecCookies()

self._isAuthenticated = False
await self.update()

async def update_context(self):
_LOGGER.debug("***** update_context(self) ********")
if self._isAuthenticated:
Expand Down

0 comments on commit 2e01cfd

Please sign in to comment.