aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/elvia.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/elvia.py')
-rw-r--r--scripts/elvia.py48
1 files changed, 29 insertions, 19 deletions
diff --git a/scripts/elvia.py b/scripts/elvia.py
index b74f784..fea0f61 100644
--- a/scripts/elvia.py
+++ b/scripts/elvia.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-''' Get energy consumption from Elvia '''
+""" Get energy consumption from Elvia """
import os
import sys
@@ -9,14 +9,14 @@ import common
import requests
from tzlocal import get_localzone
-apiKey = os.environ['el_elvia_token']
+apiKey = os.environ["el_elvia_token"]
apiUrl = "https://elvia.azure-api.net/customer/metervalues/api/v1/metervalues"
-startTime = datetime.now(get_localzone()) - timedelta(days = 2)
-startTime = startTime.isoformat('T')
-#startTime = '2023-05-23T08:16:15.408667+02:00' # <- edit for manual starttime. Like when filling in missing info.
+startTime = datetime.now(get_localzone()) - timedelta(days=2)
+startTime = startTime.isoformat("T")
+# startTime = '2023-05-23T08:16:15.408667+02:00' # <- edit for manual starttime. Like when filling in missing info.
-endTime = datetime.now(get_localzone()).isoformat('T')
+endTime = datetime.now(get_localzone()).isoformat("T")
### Get the data
@@ -25,8 +25,8 @@ try:
# Request headers
hdr = {
- 'Cache-Control': 'no-cache',
- 'Authorization': "Bearer " + apiKey,
+ "Cache-Control": "no-cache",
+ "Authorization": "Bearer " + apiKey,
}
response = requests.get(url, headers=hdr, timeout=10)
@@ -40,25 +40,35 @@ except requests.exceptions.RequestException as e:
sys.exit(e)
data = response.json()
-print("Got "+ str(len(data['meteringpoints'][0]['metervalue']['timeSeries'])) +" items from between "+ startTime + " and " + endTime)
+print(
+ "Got "
+ + str(len(data["meteringpoints"][0]["metervalue"]["timeSeries"]))
+ + " items from between "
+ + startTime
+ + " and "
+ + endTime
+)
### insert data into database
values = []
-for item in data['meteringpoints'][0]['metervalue']['timeSeries']:
+for item in data["meteringpoints"][0]["metervalue"]["timeSeries"]:
# Only deal with verified items.
- if item['verified']:
- values.append((
- data['meteringpoints'][0]['meteringPointId'],
- item['startTime'],
- item['endTime'],
- item['value'],
- item['uom'],
- item['production']))
+ if item["verified"]:
+ values.append(
+ (
+ data["meteringpoints"][0]["meteringPointId"],
+ item["startTime"],
+ item["endTime"],
+ item["value"],
+ item["uom"],
+ item["production"],
+ )
+ )
# SQL
-sql = """INSERT INTO elvia
+sql = """INSERT INTO elvia
VALUES(%s, %s, %s, %s, %s, %s)
ON CONFLICT (startTime,endTime) DO NOTHING;"""