aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/elvia_gridtariff.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/elvia_gridtariff.py')
-rw-r--r--scripts/elvia_gridtariff.py60
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"""