diff options
Diffstat (limited to 'scripts/elvia.py')
-rw-r--r-- | scripts/elvia.py | 48 |
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;""" |