mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2025-12-13 15:26:17 +00:00
Initialer Commit
This commit is contained in:
63
modules/class_pv_forecast.py
Normal file
63
modules/class_pv_forecast.py
Normal file
@@ -0,0 +1,63 @@
|
||||
from flask import Flask, jsonify, request
|
||||
import numpy as np
|
||||
from datetime import datetime
|
||||
from pprint import pprint
|
||||
import json, sys
|
||||
|
||||
class PVForecast:
|
||||
class ForecastData:
|
||||
def __init__(self, date_time, dc_power, ac_power, windspeed_10m, temperature):
|
||||
self.date_time = date_time
|
||||
self.dc_power = dc_power
|
||||
self.ac_power = ac_power
|
||||
self.windspeed_10m = windspeed_10m
|
||||
self.temperature = temperature
|
||||
|
||||
# Getter für die ForecastData-Attribute
|
||||
def get_date_time(self):
|
||||
return self.date_time
|
||||
|
||||
def get_dc_power(self):
|
||||
return self.dc_power
|
||||
|
||||
def get_ac_power(self):
|
||||
return self.ac_power
|
||||
|
||||
def get_windspeed_10m(self):
|
||||
return self.windspeed_10m
|
||||
|
||||
def get_temperature(self):
|
||||
return self.temperature
|
||||
|
||||
def __init__(self, filepath):
|
||||
self.filepath = filepath
|
||||
self.meta = {}
|
||||
self.forecast_data = []
|
||||
self.load_data()
|
||||
|
||||
def load_data(self):
|
||||
with open(self.filepath, 'r') as file:
|
||||
data = json.load(file)
|
||||
self.meta = data.get('meta', {})
|
||||
values = data.get('values', [])[0]
|
||||
for value in values:
|
||||
# Erstelle eine ForecastData-Instanz für jeden Wert in der Liste
|
||||
forecast = self.ForecastData(
|
||||
date_time=value.get('datetime'),
|
||||
dc_power=value.get('dcPower'),
|
||||
ac_power=value.get('power'),
|
||||
windspeed_10m=value.get('windspeed_10m'),
|
||||
temperature=value.get('temperature')
|
||||
)
|
||||
self.forecast_data.append(forecast)
|
||||
|
||||
def get_forecast_data(self):
|
||||
return self.forecast_data
|
||||
|
||||
|
||||
|
||||
# Beispiel für die Verwendung der Klasse
|
||||
if __name__ == '__main__':
|
||||
forecast = PVForecast(r'..\test_data\pvprognose.json')
|
||||
for data in forecast.get_forecast_data():
|
||||
print(data.get_date_time(), data.get_dc_power(), data.get_ac_power(), data.get_windspeed_10m(), data.get_temperature())
|
||||
Reference in New Issue
Block a user