diff options
Diffstat (limited to 'scripts/elvia_gridtariff.py')
-rw-r--r-- | scripts/elvia_gridtariff.py | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/scripts/elvia_gridtariff.py b/scripts/elvia_gridtariff.py index 720336b..98164bb 100644 --- a/scripts/elvia_gridtariff.py +++ b/scripts/elvia_gridtariff.py @@ -1,5 +1,5 @@ #!/usr/bin/python3 -''' get grid tariffs''' +""" get grid tariffs""" import os import sys @@ -11,16 +11,16 @@ from tzlocal import get_localzone # API documentation: https://elvia.portal.azure-api.net/docs/services/gridtariffapi/operations/post-digin-api-v-tariffquery-meteringpointsgridtariffs? -apiKey = os.environ['el_elvia_grid_api_key'] +apiKey = os.environ["el_elvia_grid_api_key"] apiUrl = "https://elvia.azure-api.net/grid-tariff/digin/api/1/tariffquery/meteringpointsgridtariffs" -meteringPointId = os.environ['el_meteringPointId'] +meteringPointId = os.environ["el_meteringPointId"] -startTime = datetime.now(get_localzone()) - timedelta(days = 2) -startTime = startTime.strftime('%Y-%m-%d') -#startTime = '2023-05-23' # <- edit for manual starttime. Like when filling in missing info. +startTime = datetime.now(get_localzone()) - timedelta(days=2) +startTime = startTime.strftime("%Y-%m-%d") +# startTime = '2023-05-23' # <- edit for manual starttime. Like when filling in missing info. -endTime = datetime.now(get_localzone()) + timedelta(days = 2) -endTime = endTime.strftime('%Y-%m-%d') +endTime = datetime.now(get_localzone()) + timedelta(days=2) +endTime = endTime.strftime("%Y-%m-%d") ### Get the data @@ -28,16 +28,16 @@ try: url = apiUrl # Request headers hdr = { - 'Cache-Control': 'no-cache', - 'X-API-Key': apiKey, - 'Content-Type': 'application/json' + "Cache-Control": "no-cache", + "X-API-Key": apiKey, + "Content-Type": "application/json", } # Request body body = { - 'starttime': startTime, - 'endtime': endTime, - 'meteringPointIds': [ meteringPointId ] + "starttime": startTime, + "endtime": endTime, + "meteringPointIds": [meteringPointId], } response = requests.post(url, headers=hdr, json=body, timeout=10) @@ -52,24 +52,34 @@ except requests.exceptions.RequestException as e: data = response.json() -print("Got "+ str(len(data['gridTariffCollections'][0]['gridTariff']['tariffPrice']['hours'])) +" items from between "+ startTime + " and " + endTime) +print( + "Got " + + str(len(data["gridTariffCollections"][0]["gridTariff"]["tariffPrice"]["hours"])) + + " items from between " + + startTime + + " and " + + endTime +) ### insert data into database values = [] -for item in data['gridTariffCollections'][0]['gridTariff']['tariffPrice']['hours']: - values.append(( - meteringPointId, - item['startTime'], - item['expiredAt'], - item['shortName'], - item['isPublicHoliday'], - item['energyPrice']['total'], - item['energyPrice']['totalExVat'])) +for item in data["gridTariffCollections"][0]["gridTariff"]["tariffPrice"]["hours"]: + values.append( + ( + meteringPointId, + item["startTime"], + item["expiredAt"], + item["shortName"], + item["isPublicHoliday"], + item["energyPrice"]["total"], + item["energyPrice"]["totalExVat"], + ) + ) # SQL -sql = """INSERT INTO elvia_gridtariff +sql = """INSERT INTO elvia_gridtariff VALUES(%s, %s, %s, %s, %s, %s, %s) ON CONFLICT (meteringPointId,startTime,endTime) DO NOTHING""" |