Try to minimize errors when fpl services are down
This commit is contained in:
@@ -179,6 +179,8 @@ class FplApi(object):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
async def __getFromProjectedBill(self, account, premise, currentBillDate):
|
async def __getFromProjectedBill(self, account, premise, currentBillDate):
|
||||||
|
data = {}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
async with async_timeout.timeout(TIMEOUT, loop=self._loop):
|
async with async_timeout.timeout(TIMEOUT, loop=self._loop):
|
||||||
response = await self._session.get(
|
response = await self._session.get(
|
||||||
@@ -190,7 +192,7 @@ class FplApi(object):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
data = {}
|
|
||||||
projectedBillData = (await response.json())["data"]
|
projectedBillData = (await response.json())["data"]
|
||||||
|
|
||||||
billToDate = float(projectedBillData["billToDate"])
|
billToDate = float(projectedBillData["billToDate"])
|
||||||
@@ -201,10 +203,11 @@ class FplApi(object):
|
|||||||
data["bill_to_date"] = billToDate
|
data["bill_to_date"] = billToDate
|
||||||
data["projected_bill"] = projectedBill
|
data["projected_bill"] = projectedBill
|
||||||
data["daily_avg"] = dailyAvg
|
data["daily_avg"] = dailyAvg
|
||||||
data["avg_high_temp"] = avgHighTemp
|
data["avg_high_temp"] = avgHighTemp
|
||||||
return data
|
|
||||||
except:
|
except:
|
||||||
return []
|
pass
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
||||||
async def __getBBL_async(self, account, projectedBillData):
|
async def __getBBL_async(self, account, projectedBillData):
|
||||||
_LOGGER.info(f"Getting budget billing data")
|
_LOGGER.info(f"Getting budget billing data")
|
||||||
@@ -281,6 +284,8 @@ class FplApi(object):
|
|||||||
"applicationPage": "resDashBoard",
|
"applicationPage": "resDashBoard",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
|
||||||
async with async_timeout.timeout(TIMEOUT, loop=self._loop):
|
async with async_timeout.timeout(TIMEOUT, loop=self._loop):
|
||||||
response = await self._session.post(URL.format(account=account), json=JSON)
|
response = await self._session.post(URL.format(account=account), json=JSON)
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
@@ -288,27 +293,29 @@ class FplApi(object):
|
|||||||
dailyUsage = []
|
dailyUsage = []
|
||||||
|
|
||||||
totalPowerUsage = 0
|
totalPowerUsage = 0
|
||||||
|
if "data" in r["DailyUsage"]:
|
||||||
|
for daily in r["DailyUsage"]["data"]:
|
||||||
|
if "kwhUsed" in daily.keys():
|
||||||
|
dailyUsage.append(
|
||||||
|
{
|
||||||
|
"usage": daily["kwhUsed"],
|
||||||
|
"cost": daily["billingCharge"],
|
||||||
|
"date": daily["date"],
|
||||||
|
"max_temperature": daily["averageHighTemperature"],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
totalPowerUsage += int(daily["kwhUsed"])
|
||||||
|
|
||||||
for daily in r["DailyUsage"]["data"]:
|
data["total_power_usage"] = totalPowerUsage
|
||||||
if "kwhUsed" in daily.keys():
|
data["daily_usage"] = dailyUsage
|
||||||
dailyUsage.append(
|
|
||||||
{
|
|
||||||
"usage": daily["kwhUsed"],
|
|
||||||
"cost": daily["billingCharge"],
|
|
||||||
"date": daily["date"],
|
|
||||||
"max_temperature": daily["averageHighTemperature"],
|
|
||||||
}
|
|
||||||
)
|
|
||||||
totalPowerUsage += int(daily["kwhUsed"])
|
|
||||||
|
|
||||||
return {"total_power_usage": totalPowerUsage, "daily_usage": dailyUsage}
|
return data
|
||||||
|
|
||||||
return []
|
|
||||||
|
|
||||||
async def __getDataFromApplianceUsage(self, account, lastBilledDate):
|
async def __getDataFromApplianceUsage(self, account, lastBilledDate):
|
||||||
_LOGGER.info(f"Getting data from applicance usage")
|
_LOGGER.info(f"Getting data from applicance usage")
|
||||||
URL = "https://www.fpl.com/dashboard-api/resources/account/{account}/applianceUsage/{account}"
|
URL = "https://www.fpl.com/dashboard-api/resources/account/{account}/applianceUsage/{account}"
|
||||||
JSON = {"startDate": str(lastBilledDate.strftime("%m%d%Y"))}
|
JSON = {"startDate": str(lastBilledDate.strftime("%m%d%Y"))}
|
||||||
|
data = {}
|
||||||
try:
|
try:
|
||||||
async with async_timeout.timeout(TIMEOUT, loop=self._loop):
|
async with async_timeout.timeout(TIMEOUT, loop=self._loop):
|
||||||
response = await self._session.post(
|
response = await self._session.post(
|
||||||
@@ -316,7 +323,7 @@ class FplApi(object):
|
|||||||
)
|
)
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
electric = (await response.json())["data"]["electric"]
|
electric = (await response.json())["data"]["electric"]
|
||||||
data = {}
|
|
||||||
full = 100
|
full = 100
|
||||||
for e in electric:
|
for e in electric:
|
||||||
rr = round(float(e["percentageDollar"]))
|
rr = round(float(e["percentageDollar"]))
|
||||||
@@ -325,7 +332,8 @@ class FplApi(object):
|
|||||||
else:
|
else:
|
||||||
rr = full
|
rr = full
|
||||||
data[e["category"].replace(" ", "_")] = rr
|
data[e["category"].replace(" ", "_")] = rr
|
||||||
|
|
||||||
return {"energy_percent_by_applicance": data}
|
|
||||||
except:
|
except:
|
||||||
return []
|
pass
|
||||||
|
|
||||||
|
return {"energy_percent_by_applicance": data}
|
||||||
|
|||||||
Reference in New Issue
Block a user