You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.5 KiB
83 lines
2.5 KiB
import requests
|
|
import mysql.connector
|
|
from mysql.connector import Error
|
|
import datetime
|
|
|
|
# Configuratievariabelen
|
|
ENERVER_API_URL = "https://enever.nl/api/stroomprijs_laatste30dagen.php" # API URL
|
|
ENERVER_API_TOKEN = "10d856e7b6b63a4d4e554c10b00e6b0d" # Vervang met je token
|
|
|
|
MYSQL_CONFIG = {
|
|
"host": "localhost",
|
|
"user": "root",
|
|
"password": "<your_password>",
|
|
"database": "energieprijzen",
|
|
}
|
|
|
|
|
|
def fetch_enever_prices():
|
|
"""Haal stroomprijsgegevens op van de EneVer API."""
|
|
params = {"token": ENERVER_API_TOKEN}
|
|
|
|
try:
|
|
response = requests.get(ENERVER_API_URL, params=params)
|
|
response.raise_for_status()
|
|
return response.json() # Verwacht JSON als antwoord
|
|
except requests.RequestException as e:
|
|
print(f"Fout bij ophalen EneVer-prijzen: {e}")
|
|
return None
|
|
|
|
|
|
def store_prices_to_db(prices):
|
|
"""Sla de relevante stroomprijzen op in een MySQL-database."""
|
|
try:
|
|
connection = mysql.connector.connect(**MYSQL_CONFIG)
|
|
if connection.is_connected():
|
|
cursor = connection.cursor()
|
|
|
|
# Zorg dat de tabel bestaat
|
|
cursor.execute(
|
|
"""
|
|
CREATE TABLE IF NOT EXISTS stroomprijzen (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
timestamp DATETIME,
|
|
price_ti DECIMAL(10, 5)
|
|
)
|
|
"""
|
|
)
|
|
|
|
# Voeg de prijzen toe
|
|
for price_entry in prices:
|
|
timestamp = datetime.datetime.strptime(
|
|
price_entry["datum"], "%Y-%m-%d %H:%M:%S"
|
|
)
|
|
price_ti = float(price_entry["prijsTI"])
|
|
|
|
cursor.execute(
|
|
"""
|
|
INSERT INTO stroomprijzen (timestamp, price_ti)
|
|
VALUES (%s, %s)
|
|
""",
|
|
(timestamp, price_ti),
|
|
)
|
|
|
|
connection.commit()
|
|
print("Relevante prijzen succesvol opgeslagen in de database.")
|
|
|
|
except Error as e:
|
|
print(f"Fout bij verbinden met de database: {e}")
|
|
finally:
|
|
if connection.is_connected():
|
|
cursor.close()
|
|
connection.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Prijzen ophalen van EneVer API
|
|
enever_prices = fetch_enever_prices()
|
|
# if enever_prices:
|
|
# # Prijzen opslaan in de database
|
|
# store_prices_to_db(enever_prices)
|
|
# else:
|
|
# print("Geen prijzen beschikbaar om op te slaan.")
|