diff options
author | Dennis Eriksen <d@ennis.no> | 2023-02-01 20:32:11 +0100 |
---|---|---|
committer | Dennis Eriksen <d@ennis.no> | 2023-02-01 20:32:11 +0100 |
commit | 8d186d39483beff64a1c11f80c6ca5e56dd7bbc5 (patch) | |
tree | 2c5a64ace4bd8eabd4d65014c5313bd7edd76191 /tibber_prices2pgsql.py | |
parent | run queue in batches (diff) | |
download | energyscripts-8d186d39483beff64a1c11f80c6ca5e56dd7bbc5.tar.gz |
moving and renaming/breaking everything
Diffstat (limited to 'tibber_prices2pgsql.py')
-rwxr-xr-x | tibber_prices2pgsql.py | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/tibber_prices2pgsql.py b/tibber_prices2pgsql.py deleted file mode 100755 index 046072f..0000000 --- a/tibber_prices2pgsql.py +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/python3 - -import os -import sys -import json -import psycopg2 -import requests - -from datetime import datetime -from datetime import timedelta -from tzlocal import get_localzone - - -# variables -apiKey = os.environ['el_tibber_token'] -apiUrl = "https://api.tibber.com/v1-beta/gql" - -pg_db = os.environ['el_pg_db'] -pg_host = os.environ['el_pg_host'] -pg_table = "tibber_prices" - -startTime = datetime.now(get_localzone()) - timedelta(days = 1) -startTime = startTime.isoformat('T') - -endTime = datetime.now(get_localzone()).isoformat('T') - -# Get the data -try: - url = apiUrl - - # Request headers - hdr = { - 'Authorization': "Bearer " + apiKey, - 'Content-Type': 'application/json', - } - - body = {"query":"""{ - viewer { - homes { - currentSubscription{ - priceInfo{ - today { total energy tax startsAt level currency } - tomorrow { total energy tax startsAt level currency } - } - } - } - } }"""} - - response = requests.post(url, headers=hdr, json=body) - if response.status_code != 200: - print(response.status_code) - print("Oh shit") - response.raise_for_status() - -except Exception as e: - print("oh lol") - sys.exit(e) - -data = response.json() - -numdata = len(data["data"]["viewer"]["homes"][0]["currentSubscription"]["priceInfo"]["today"]) + len(data["data"]["viewer"]["homes"][0]["currentSubscription"]["priceInfo"]["tomorrow"]) - -print("Got " + str(numdata) + " rows from Tibber") - -### insert data into database - -# prices -prices = [] -for item in data["data"]["viewer"]["homes"][0]["currentSubscription"]["priceInfo"]["today"]: - prices.append((item["startsAt"],item["total"],item["energy"],item["tax"],item["level"])) - -for item in data["data"]["viewer"]["homes"][0]["currentSubscription"]["priceInfo"]["tomorrow"]: - prices.append((item["startsAt"],item["total"],item["energy"],item["tax"],item["level"])) - - -# connect to db -conn = psycopg2.connect(database=pg_db, host=pg_host) -cur = conn.cursor() - -# count rows before we start -cur.execute("SELECT COUNT(*) FROM " + pg_table) -before = cur.fetchone() - -# insert data -try: - cur.executemany("INSERT INTO " + pg_table + " VALUES(%s,%s,%s,%s,%s) ON CONFLICT (startsat) DO NOTHING", prices) - conn.commit() -except Exception as e: - conn.rollback() - raise e - -# count rows after we finnish -cur.execute("SELECT COUNT(*) FROM " + pg_table) -after = cur.fetchone() - -# count *new* rows -newRows = after[0] - before[0] - -# close connection -conn.close() - - -print("Successfully inserted " + str(newRows) + " records into the database") |