Advertisement
rhessellund

energidataservice

Dec 26th, 2022 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.50 KB | None | 0 0
  1. import urllib.request
  2. import urllib.parse
  3. import json
  4. from dateutil import parser
  5. from datetime import datetime,timedelta
  6. import smtplib
  7. from email.mime.multipart import MIMEMultipart
  8. from email.mime.text import MIMEText
  9. import sqlite3
  10.  
  11.  
  12. con = sqlite3.connect("/home/azureuser/energidataservice.db")
  13. cur = con.cursor()
  14.  
  15. limit = str(datetime.today().day * 48 + 48*7)
  16.  
  17. url = 'https://api.energidataservice.dk/dataset/Elspotprices?filter={"PriceArea":"DK1,DK2"}&limit='+limit
  18.  
  19. fileobj = urllib.request.urlopen(url)
  20. dataresult = fileobj.read()
  21. result = json.loads(dataresult.decode("utf-8"))
  22.  
  23. SpotAddOn = 0.0500
  24. Transmition = 0.0490
  25. Systemtarrif = 0.0610
  26. Balancetarrif = 0.0023
  27. Elafgift = 0.7630
  28.  
  29. for x in reversed(result['records']):
  30.     period = parser.parse(x['HourDK'])
  31.     if period.month < 4 or period.month > 9:
  32.         if period.hour >= 17 and period.hour < 20:
  33.             nettarrif = 0.2970
  34.         else:
  35.             nettarrif = 0.1045
  36.     else:
  37.         nettarrif = 0.1045
  38.  
  39.     if x['SpotPriceDKK'] == 'None':
  40.         pris = (float(x['SpotPriceDKK'])/1000+nettarrif+SpotAddOn+Transmition+Systemtarrif+Balancetarrif+Elafgift)*1.25
  41.     else:
  42.         pris = (float(x['SpotPriceEUR'])/1000*7.45+nettarrif+SpotAddOn+Transmition+Systemtarrif+Balancetarrif+Elafgift)*1.25
  43.  
  44.     try:
  45.         cur.execute("INSERT INTO PriceHistory VALUES ('"+x['HourDK']+"','"+x['PriceArea']+"',"+str(x['SpotPriceDKK'])+","+str(x['SpotPriceEUR'])+","+str(pris)+")")
  46.     except:
  47.         pass
  48.  
  49. con.commit()
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement