aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/tibber_consumption.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--[-rwxr-xr-x]scripts/tibber_consumption.py (renamed from tibber_consumption2pgsql.py)44
1 files changed, 9 insertions, 35 deletions
diff --git a/tibber_consumption2pgsql.py b/scripts/tibber_consumption.py
index e710b8f..a411562 100755..100644
--- a/tibber_consumption2pgsql.py
+++ b/scripts/tibber_consumption.py
@@ -1,14 +1,14 @@
-#!/bin/python3
+#!/usr/bin/env python3
+''' import energy consumption from tibber '''
import os
import sys
-import json
-import psycopg2
-import requests
-
from datetime import datetime
from datetime import timedelta
from tzlocal import get_localzone
+import requests
+
+from common import dbi
# variables
@@ -34,9 +34,9 @@ try:
'Content-Type': 'application/json',
}
- body = {"query":"""{
- viewer {
- homes {
+ body = {"query":"""{
+ viewer {
+ homes {
consumption(resolution: HOURLY, last:100) {
nodes {
from
@@ -73,30 +73,4 @@ for item in data["data"]["viewer"]["homes"][0]["consumption"]["nodes"]:
if item["consumption"] is not None:
values.append((item["from"],item["to"],item["consumption"],item["consumptionUnit"],item["cost"],item["unitPrice"],item["unitPriceVAT"]))
-# 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,%s,%s) ON CONFLICT (startTime,endTime) DO NOTHING", values)
- 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")
+dbi("INSERT INTO " + pg_table + " VALUES(%s,%s,%s,%s,%s,%s,%s) ON CONFLICT (startTime,endTime) DO NOTHING", values, verbose=True)