tronikos / opower

A Python library for getting historical and forecasted usage/cost from utilities that use opower.com such as PG&E
Apache License 2.0
65 stars 59 forks source link

PSE Unable to Supply Daily/Hourly Bill Cost #56

Open PseudoResonance opened 1 year ago

PseudoResonance commented 1 year ago

As mentioned in home-assistant/core#99674, I noticed PSE seems to be unable to provide daily or hourly costs and all values will show 0, including the current bill/forecast. The costs are only provided in the bill view.

Assuming PSE never fixes this, should opower maybe request the data twice, first with the bill aggregate type to calculate the rates for each billing period, then request the desired data and use the previously calculated rates to estimate the provider's daily/hourly cost? Or should other utilities, such as HomeAssistant's integration be responsible for something like that?

PseudoResonance commented 1 month ago

Here's the output of python -m opower -vv --utility pse --start_date 2024-08-21T00:00:00-07:00 --aggregate_type bill for reference. As you can see, the cost is only ever provided for past billing cycles, but not for the current one, or for forecasts. Also, because PSE uses tiered costs (For October 2024, 0.115433 for the first 600kWh, 0.134850 after), the estimates wouldn't be accurate, but they're probably still close enough.

output ``` DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/multi-account-v1/cws/pse/customers?offset=0&batchSize=100&addressFilter= Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "customers": [ { "id": 0000, "uuid": "00000000-0000-0000-0000-000000000000", "legacyOpowerId": "LEGACYID", "accountNumber": "ACCOUNTNUM", "accountName": "ACCOUNTNAME", "address": { "uuid": "00000000-0000-0000-0000-000000000003", "streetNumber": "0", "streetName": "STREET", "subpremise": null, "postalCode": "00000", "city": "CITY", "country": "US", "state": "WA" }, "type": "RESIDENTIAL", "utilityAccounts": [ { "id": 0001, "uuid": "00000000-0000-0000-0000-000000000001", "utilityAccountId": "0000001", "utilityAccountId2": null, "servicePointId": 001, "meterType": "ELEC", "preferredUtilityAccountId": "0000001", "readResolution": "QUARTER_HOUR" }, { "id": 0002, "uuid": "00000000-0000-0000-0000-000000000002", "utilityAccountId": "0000002", "utilityAccountId2": null, "servicePointId": 002, "meterType": "GAS", "preferredUtilityAccountId": "0000002", "readResolution": "QUARTER_HOUR" } ] } ], "offset": 0, "batchSize": 100, "total": 1 } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/bill-forecast-cws-v1/cws/pse/customers/00000000-0000-0000-0000-000000000000/combined-forecast Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "isValidUser": true, "totalForecast": { "meterType": "COMBINED", "startDate": "2024-09-28", "endDate": "2024-10-27", "currentDate": "2024-10-21", "daysInPeriod": 30, "currentDay": 24, "daysLeftInBill": 6, "forecastedUsage": 1313, "forecastedCost": 0, "typicalUsage": 1163, "typicalCost": 0, "budgetBilling": false, "costToDate": 0, "usageToDate": 926, "currencySymbol": "$" }, "totalMetadata": [ "NO_FORECASTED_COST", "ESTIMATED_PREVIOUS_BILL" ], "accountForecasts": [ { "unitOfMeasure": "THERM", "meterType": "GAS", "startDate": "2024-09-28", "endDate": "2024-10-27", "currentDate": "2024-10-21", "daysInPeriod": 30, "currentDay": 24, "daysLeftInBill": 6, "forecastedUsage": 9, "typicalUsage": 14, "budgetBilling": false, "usageToDate": 7, "currencySymbol": "$", "preferredUtilityAccountId": "0000002", "accountUuids": [ "00000000-0000-0000-0000-000000000002" ], "isSolar": false }, { "unitOfMeasure": "KWH", "meterType": "ELEC", "startDate": "2024-09-28", "endDate": "2024-10-27", "currentDate": "2024-10-21", "daysInPeriod": 30, "currentDay": 24, "daysLeftInBill": 6, "forecastedUsage": 1196, "typicalUsage": 989, "budgetBilling": false, "usageToDate": 844, "currencySymbol": "$", "preferredUtilityAccountId": "0000001", "accountUuids": [ "00000000-0000-0000-0000-000000000001" ], "isSolar": false } ] } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000001?aggregateType=bill&startDate=2024-08-21T00%3A00%3A00-07%3A00&endDate=2024-10-22T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "003", "utilityAccountUuid": "00000000-0000-0000-0000-000000000001", "unit": "KWH", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-07-30T00:00:00.000-07:00", "endTime": "2024-08-29T00:00:00.000-07:00", "value": 1124.0, "readType": "ACTUAL", "providedCost": 153.29, "readComponents": null, "isPeakPeriod": null, "rebateAmount": null, "milesDriven": 1888 }, { "startTime": "2024-08-29T00:00:00.000-07:00", "endTime": "2024-09-28T00:00:00.000-07:00", "value": 1129.0, "readType": "ACTUAL", "providedCost": 154.03, "readComponents": null, "isPeakPeriod": null, "rebateAmount": null, "milesDriven": 1896 } ], "seriesComponents": null, "ratePlans": null } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000002?aggregateType=bill&startDate=2024-08-21T00%3A00%3A00-07%3A00&endDate=2024-10-22T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "004", "utilityAccountUuid": "00000000-0000-0000-0000-000000000002", "unit": "THERM", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-07-30T00:00:00.000-07:00", "endTime": "2024-08-29T00:00:00.000-07:00", "value": 7.78, "readType": "ACTUAL", "providedCost": 8.71, "readComponents": null, "isPeakPeriod": null, "rebateAmount": null, "milesDriven": 98 }, { "startTime": "2024-08-29T00:00:00.000-07:00", "endTime": "2024-09-28T00:00:00.000-07:00", "value": 10.148, "readType": "ACTUAL", "providedCost": 11.37, "readComponents": null, "isPeakPeriod": null, "rebateAmount": null, "milesDriven": 128 } ], "seriesComponents": null, "ratePlans": null } Current bill forecast: Forecast(account=Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000002', utility_account_id='0000002', id='0000002', meter_type=, read_resolution=None), start_date=datetime.date(2024, 9, 28), end_date=datetime.date(2024, 10, 27), current_date=datetime.date(2024, 10, 21), unit_of_measure=, usage_to_date=7.0, cost_to_date=0.0, forecasted_usage=9.0, forecasted_cost=0.0, typical_usage=14.0, typical_cost=0.0) Current bill forecast: Forecast(account=Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000001', utility_account_id='0000001', id='0000001', meter_type=, read_resolution=None), start_date=datetime.date(2024, 9, 28), end_date=datetime.date(2024, 10, 27), current_date=datetime.date(2024, 10, 21), unit_of_measure=, usage_to_date=844.0, cost_to_date=0.0, forecasted_usage=1196.0, forecasted_cost=0.0, typical_usage=989.0, typical_cost=0.0) Getting historical data: account= Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000001', utility_account_id='0000001', id='0000001', meter_type=, read_resolution=) aggregate_type= bill start_date= 2024-08-21 00:00:00-07:00 end_date= 2024-10-21 17:05:30.521494 start_time end_time consumption provided_cost start_minus_prev_end end_minus_prev_end 2024-07-30 00:00:00-07:00 2024-08-29 00:00:00-07:00 1124.0 153.29 None None 2024-08-29 00:00:00-07:00 2024-09-28 00:00:00-07:00 1129.0 154.03 0:00:00 30 days, 0:00:00 Getting historical data: account= Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000002', utility_account_id='0000002', id='0000002', meter_type=, read_resolution=) aggregate_type= bill start_date= 2024-08-21 00:00:00-07:00 end_date= 2024-10-21 17:05:30.521494 start_time end_time consumption provided_cost start_minus_prev_end end_minus_prev_end 2024-07-30 00:00:00-07:00 2024-08-29 00:00:00-07:00 7.78 8.71 None None 2024-08-29 00:00:00-07:00 2024-09-28 00:00:00-07:00 10.148 11.37 0:00:00 30 days, 0:00:00 ```
tronikos commented 1 month ago

Can you provide the same output with --aggregate_type hour? Just include a single read from the response. I assume providedCost is always 0? How about readType?

PseudoResonance commented 1 month ago

providedCost is always 0 when not billing, but readType is ACTUAL.

hour aggregate output ``` DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/multi-account-v1/cws/pse/customers?offset=0&batchSize=100&addressFilter= Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "customers": [ { "id": 0000, "uuid": "00000000-0000-0000-0000-000000000000", "legacyOpowerId": "LEGACYID", "accountNumber": "ACCOUNTNUM", "accountName": "ACCOUNTNAME", "address": { "uuid": "00000000-0000-0000-0000-000000000003", "streetNumber": "0", "streetName": "STREET", "subpremise": null, "postalCode": "00000", "city": "CITY", "country": "US", "state": "WA" }, "type": "RESIDENTIAL", "utilityAccounts": [ { "id": 0001, "uuid": "00000000-0000-0000-0000-000000000001", "utilityAccountId": "0000001", "utilityAccountId2": null, "servicePointId": 001, "meterType": "ELEC", "preferredUtilityAccountId": "0000001", "readResolution": "QUARTER_HOUR" }, { "id": 0002, "uuid": "00000000-0000-0000-0000-000000000002", "utilityAccountId": "0000002", "utilityAccountId2": null, "servicePointId": 002, "meterType": "GAS", "preferredUtilityAccountId": "0000002", "readResolution": "QUARTER_HOUR" } ] } ], "offset": 0, "batchSize": 100, "total": 1 } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/bill-forecast-cws-v1/cws/pse/customers/00000000-0000-0000-0000-000000000000/combined-forecast Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "isValidUser": true, "totalForecast": { "meterType": "COMBINED", "startDate": "2024-09-28", "endDate": "2024-10-27", "currentDate": "2024-10-22", "daysInPeriod": 30, "currentDay": 25, "daysLeftInBill": 5, "forecastedUsage": 1313, "forecastedCost": 0, "typicalUsage": 1163, "typicalCost": 0, "budgetBilling": false, "costToDate": 0, "usageToDate": 926, "currencySymbol": "$" }, "totalMetadata": [ "NO_FORECASTED_COST", "ESTIMATED_PREVIOUS_BILL" ], "accountForecasts": [ { "unitOfMeasure": "THERM", "meterType": "GAS", "startDate": "2024-09-28", "endDate": "2024-10-27", "currentDate": "2024-10-22", "daysInPeriod": 30, "currentDay": 25, "daysLeftInBill": 5, "forecastedUsage": 9, "typicalUsage": 14, "budgetBilling": false, "usageToDate": 7, "currencySymbol": "$", "preferredUtilityAccountId": "0000002", "accountUuids": [ "00000000-0000-0000-0000-000000000002" ], "isSolar": false }, { "unitOfMeasure": "KWH", "meterType": "ELEC", "startDate": "2024-09-28", "endDate": "2024-10-27", "currentDate": "2024-10-22", "daysInPeriod": 30, "currentDay": 25, "daysLeftInBill": 5, "forecastedUsage": 1196, "typicalUsage": 989, "budgetBilling": false, "usageToDate": 844, "currencySymbol": "$", "preferredUtilityAccountId": "0000001", "accountUuids": [ "00000000-0000-0000-0000-000000000001" ], "isSolar": false } ] } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000001?aggregateType=hour&startDate=2024-09-27T00%3A00%3A00-07%3A00&endDate=2024-10-23T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "003", "utilityAccountUuid": "00000000-0000-0000-0000-000000000001", "unit": "KWH", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-09-27T00:00:00.000-07:00", "endTime": "2024-09-27T01:00:00.000-07:00", "value": 1.6758, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 2 }, { "startTime": "2024-09-27T01:00:00.000-07:00", "endTime": "2024-09-27T02:00:00.000-07:00", "value": 1.7106, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 2 }, { "startTime": "2024-09-27T02:00:00.000-07:00", "endTime": "2024-09-27T03:00:00.000-07:00", "value": 1.8054, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, ... { "startTime": "2024-10-20T07:00:00.000-07:00", "endTime": "2024-10-20T08:00:00.000-07:00", "value": 1.7082, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 2 }, { "startTime": "2024-10-20T08:00:00.000-07:00", "endTime": "2024-10-20T09:00:00.000-07:00", "value": 1.803, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, { "startTime": "2024-10-20T09:00:00.000-07:00", "endTime": "2024-10-20T10:00:00.000-07:00", "value": 0.7926, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 1 } ], "seriesComponents": [], "ratePlans": [] } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000001?aggregateType=hour&startDate=2024-08-31T00%3A00%3A00-07%3A00&endDate=2024-09-26T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "003", "utilityAccountUuid": "00000000-0000-0000-0000-000000000001", "unit": "KWH", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-08-31T00:00:00.000-07:00", "endTime": "2024-08-31T01:00:00.000-07:00", "value": 1.9272, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, { "startTime": "2024-08-31T01:00:00.000-07:00", "endTime": "2024-08-31T02:00:00.000-07:00", "value": 2.025, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, { "startTime": "2024-08-31T02:00:00.000-07:00", "endTime": "2024-08-31T03:00:00.000-07:00", "value": 1.8918, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, ... { "startTime": "2024-09-26T21:00:00.000-07:00", "endTime": "2024-09-26T22:00:00.000-07:00", "value": 1.8444, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, { "startTime": "2024-09-26T22:00:00.000-07:00", "endTime": "2024-09-26T23:00:00.000-07:00", "value": 1.8786, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, { "startTime": "2024-09-26T23:00:00.000-07:00", "endTime": "2024-09-27T00:00:00.000-07:00", "value": 1.7496, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 2 } ], "seriesComponents": [], "ratePlans": [] } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000001?aggregateType=hour&startDate=2024-08-21T00%3A00%3A00-07%3A00&endDate=2024-08-30T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "003", "utilityAccountUuid": "00000000-0000-0000-0000-000000000001", "unit": "KWH", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-08-21T00:00:00.000-07:00", "endTime": "2024-08-21T01:00:00.000-07:00", "value": 1.875, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, { "startTime": "2024-08-21T01:00:00.000-07:00", "endTime": "2024-08-21T02:00:00.000-07:00", "value": 1.8024, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 }, { "startTime": "2024-08-21T02:00:00.000-07:00", "endTime": "2024-08-21T03:00:00.000-07:00", "value": 1.6572, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 2 }, ... { "startTime": "2024-08-30T21:00:00.000-07:00", "endTime": "2024-08-30T22:00:00.000-07:00", "value": 1.7442, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 2 }, { "startTime": "2024-08-30T22:00:00.000-07:00", "endTime": "2024-08-30T23:00:00.000-07:00", "value": 2.5128, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 4 }, { "startTime": "2024-08-30T23:00:00.000-07:00", "endTime": "2024-08-31T00:00:00.000-07:00", "value": 2.145, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 3 } ], "seriesComponents": [], "ratePlans": [] } Current bill forecast: Forecast(account=Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000002', utility_account_id='0000002', id='0000002', meter_type=, read_resolution=None), start_date=datetime.date(2024, 9, 28), end_date=datetime.date(2024, 10, 27), current_date=datetime.date(2024, 10, 22), unit_of_measure=, usage_to_date=7.0, cost_to_date=0.0, forecasted_usage=9.0, forecasted_cost=0.0, typical_usage=14.0, typical_cost=0.0) Current bill forecast: Forecast(account=Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000001', utility_account_id='0000001', id='0000001', meter_type=, read_resolution=None), start_date=datetime.date(2024, 9, 28), end_date=datetime.date(2024, 10, 27), current_date=datetime.date(2024, 10, 22), unit_of_measure=, usage_to_date=844.0, cost_to_date=0.0, forecasted_usage=1196.0, forecasted_cost=0.0, typical_usage=989.0, typical_cost=0.0) Getting historical data: account= Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000001', utility_account_id='0000001', id='0000001', meter_type=, read_resolution=) aggregate_type= hour start_date= 2024-08-21 00:00:00-07:00 end_date= 2024-10-22 02:28:49.890561 start_time end_time consumption provided_cost start_minus_prev_end end_minus_prev_end 2024-08-21 00:00:00-07:00 2024-08-21 01:00:00-07:00 1.875 0 None None 2024-08-21 01:00:00-07:00 2024-08-21 02:00:00-07:00 1.8024 0 0:00:00 1:00:00 2024-08-21 02:00:00-07:00 2024-08-21 03:00:00-07:00 1.6572 0 0:00:00 1:00:00 2024-08-21 03:00:00-07:00 2024-08-21 04:00:00-07:00 1.6812 0 0:00:00 1:00:00 ... 2024-10-20 00:00:00-07:00 2024-10-20 01:00:00-07:00 2.2488 0 0:00:00 1:00:00 2024-10-20 01:00:00-07:00 2024-10-20 02:00:00-07:00 1.944 0 0:00:00 1:00:00 2024-10-20 02:00:00-07:00 2024-10-20 03:00:00-07:00 1.8462 0 0:00:00 1:00:00 DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000002?aggregateType=hour&startDate=2024-09-27T00%3A00%3A00-07%3A00&endDate=2024-10-23T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "004", "utilityAccountUuid": "00000000-0000-0000-0000-000000000002", "unit": "THERM", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-09-27T00:00:00.000-07:00", "endTime": "2024-09-27T01:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-09-27T01:00:00.000-07:00", "endTime": "2024-09-27T02:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-09-27T02:00:00.000-07:00", "endTime": "2024-09-27T03:00:00.000-07:00", "value": 0.02, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, ... { "startTime": "2024-10-19T22:00:00.000-07:00", "endTime": "2024-10-19T23:00:00.000-07:00", "value": 0.04, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-10-19T23:00:00.000-07:00", "endTime": "2024-10-20T00:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-10-20T00:00:00.000-07:00", "endTime": "2024-10-20T01:00:00.000-07:00", "value": 0.02, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 } ], "seriesComponents": [], "ratePlans": [] } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000002?aggregateType=hour&startDate=2024-08-31T00%3A00%3A00-07%3A00&endDate=2024-09-26T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "004", "utilityAccountUuid": "00000000-0000-0000-0000-000000000002", "unit": "THERM", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-08-31T00:00:00.000-07:00", "endTime": "2024-08-31T01:00:00.000-07:00", "value": 0.02, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-08-31T01:00:00.000-07:00", "endTime": "2024-08-31T02:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-08-31T02:00:00.000-07:00", "endTime": "2024-08-31T03:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, ... { "startTime": "2024-09-26T21:00:00.000-07:00", "endTime": "2024-09-26T22:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-09-26T22:00:00.000-07:00", "endTime": "2024-09-26T23:00:00.000-07:00", "value": 0.02, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-09-26T23:00:00.000-07:00", "endTime": "2024-09-27T00:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 } ], "seriesComponents": [], "ratePlans": [] } DEBUG:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetching: https://pse.opower.com/ei/edge/apis/DataBrowser-v1/cws/cost/utilityAccount/00000000-0000-0000-0000-000000000002?aggregateType=hour&startDate=2024-08-21T00%3A00%3A00-07%3A00&endDate=2024-08-30T00%3A00%3A00-07%3A00 Level 9:/home/josh/coding/opower/.venv/lib/python3.10/site-packages/opower/opower.py:Fetched: { "servicePointId": "004", "utilityAccountUuid": "00000000-0000-0000-0000-000000000002", "unit": "THERM", "siteTimeZoneId": "America/Los_Angeles", "reads": [ { "startTime": "2024-08-21T00:00:00.000-07:00", "endTime": "2024-08-21T01:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-08-21T01:00:00.000-07:00", "endTime": "2024-08-21T02:00:00.000-07:00", "value": 0.02, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-08-21T02:00:00.000-07:00", "endTime": "2024-08-21T03:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, ... { "startTime": "2024-08-30T21:00:00.000-07:00", "endTime": "2024-08-30T22:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-08-30T22:00:00.000-07:00", "endTime": "2024-08-30T23:00:00.000-07:00", "value": 0, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 }, { "startTime": "2024-08-30T23:00:00.000-07:00", "endTime": "2024-08-31T00:00:00.000-07:00", "value": 0.04, "readType": "ACTUAL", "providedCost": 0, "readComponents": [], "isPeakPeriod": false, "rebateAmount": 0, "milesDriven": 0 } ], "seriesComponents": [], "ratePlans": [] } 2024-10-20 03:00:00-07:00 2024-10-20 04:00:00-07:00 1.7334 0 0:00:00 1:00:00 2024-10-20 04:00:00-07:00 2024-10-20 05:00:00-07:00 1.7334 0 0:00:00 1:00:00 2024-10-20 05:00:00-07:00 2024-10-20 06:00:00-07:00 1.6794 0 0:00:00 1:00:00 2024-10-20 06:00:00-07:00 2024-10-20 07:00:00-07:00 1.6686 0 0:00:00 1:00:00 2024-10-20 07:00:00-07:00 2024-10-20 08:00:00-07:00 1.7082 0 0:00:00 1:00:00 2024-10-20 08:00:00-07:00 2024-10-20 09:00:00-07:00 1.803 0 0:00:00 1:00:00 2024-10-20 09:00:00-07:00 2024-10-20 10:00:00-07:00 0.7926 0 0:00:00 1:00:00 Getting historical data: account= Account(customer=Customer(uuid='00000000-0000-0000-0000-000000000000'), uuid='00000000-0000-0000-0000-000000000002', utility_account_id='0000002', id='0000002', meter_type=, read_resolution=) aggregate_type= hour start_date= 2024-08-21 00:00:00-07:00 end_date= 2024-10-22 02:28:49.890561 start_time end_time consumption provided_cost start_minus_prev_end end_minus_prev_end 2024-08-21 00:00:00-07:00 2024-08-21 01:00:00-07:00 0 0 None None 2024-08-21 01:00:00-07:00 2024-08-21 02:00:00-07:00 0.02 0 0:00:00 1:00:00 2024-08-21 02:00:00-07:00 2024-08-21 03:00:00-07:00 0 0 0:00:00 1:00:00 2024-08-21 03:00:00-07:00 2024-08-21 04:00:00-07:00 0 0 0:00:00 1:00:00 ... 2024-10-19 22:00:00-07:00 2024-10-19 23:00:00-07:00 0.04 0 0:00:00 1:00:00 2024-10-19 23:00:00-07:00 2024-10-20 00:00:00-07:00 0 0 0:00:00 1:00:00 2024-10-20 00:00:00-07:00 2024-10-20 01:00:00-07:00 0.02 0 0:00:00 1:00:00 ```