Manual edits to remove remaining code style errors

This commit is contained in:
Michael Osthege 2024-10-03 11:05:44 +02:00 committed by Andreas
parent 3045d53bd6
commit c3f10df277
12 changed files with 46 additions and 51 deletions

View File

@ -19,7 +19,7 @@ COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements.txt
COPY . . COPY . .
COPY config.example.py config.py COPY config.py config.py
ENTRYPOINT [] ENTRYPOINT []

View File

@ -27,7 +27,8 @@ Unter Macos (benötigt [Homebrew](https://brew.sh)):
brew install make brew install make
``` ```
Nun `config.example.py` anpassen und dann in `config.py` umbennenen. Anschließend kann der Server über `make run` gestartet werden. Nun `config.py` anpassen.
Anschließend kann der Server über `make run` gestartet werden.
Eine vollständige Übersicht über die wichtigsten Kurzbefehle gibt `make help`. Eine vollständige Übersicht über die wichtigsten Kurzbefehle gibt `make help`.
### Ausführliche Anleitung ### Ausführliche Anleitung
@ -76,7 +77,7 @@ gefolgt von einem erneuten `pip install -r requirements.txt`.
## Nutzung ## Nutzung
`config.example.py` anpassen und dann in config.py umbennenen Einstellungen in `config.py` anpassen.
Um das System zu nutzen, führen Sie `flask_server.py` aus, damit wird der Server gestartet Um das System zu nutzen, führen Sie `flask_server.py` aus, damit wird der Server gestartet

View File

@ -27,7 +27,8 @@ On MacOS (requires [Homebrew](https://brew.sh)):
brew install make brew install make
``` ```
Next, adjust `config.example.py` and rename it to `config.py`. The server can then be started with `make run`. A full overview of the main shortcuts is given by `make help`. Next, adjust `config.py`.
The server can then be started with `make run`. A full overview of the main shortcuts is given by `make help`.
### Detailed Instructions ### Detailed Instructions
@ -71,7 +72,8 @@ Followed by a renewed `pip install -r requirements.txt`.
## Usage ## Usage
Adjust `config.example.py` and rename it to `config.py`. To use the system, run `flask_server.py`, which starts the server: Adjust `config.py`.
To use the system, run `flask_server.py`, which starts the server:
```bash ```bash
./flask_server.py ./flask_server.py

View File

@ -27,7 +27,7 @@ def get_start_enddate(prediction_hours=48, startdate=None):
############ ############
# Parameter # Parameter
############ ############
if startdate == None: if startdate is None:
date = (datetime.now().date() + timedelta(hours=prediction_hours)).strftime( date = (datetime.now().date() + timedelta(hours=prediction_hours)).strftime(
"%Y-%m-%d" "%Y-%m-%d"
) )

View File

@ -1,30 +1,28 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import sys
from datetime import datetime
import matplotlib import matplotlib
matplotlib.use( # Sets the Matplotlib backend to 'Agg' for rendering plots in environments without a display
"Agg" matplotlib.use("Agg")
) # Sets the Matplotlib backend to 'Agg' for rendering plots in environments without a display from datetime import timedelta
from datetime import datetime, timedelta
import pandas as pd import pandas as pd
from config import *
from flask import Flask, jsonify, redirect, request, send_from_directory, url_for from flask import Flask, jsonify, redirect, request, send_from_directory, url_for
from modules.class_akku import * from modules.class_load import LoadForecast
from modules.class_ems import * from modules.class_load_container import Gesamtlast
from modules.class_heatpump import * from modules.class_load_corrector import LoadPredictionAdjuster
from modules.class_load import * from modules.class_optimize import isfloat, optimization_problem
from modules.class_load_container import * from modules.class_pv_forecast import PVForecast
from modules.class_load_corrector import * from modules.class_soc_calc import BatteryDataProcessor
from modules.class_optimize import * from modules.class_strompreis import HourlyElectricityPriceForecast
from modules.class_pv_forecast import *
from modules.class_soc_calc import * sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from modules.class_sommerzeit import * from config import db_config, get_start_enddate, optimization_hours, prediction_hours
from modules.class_strompreis import *
from modules.visualize import *
app = Flask(__name__) app = Flask(__name__)

View File

@ -1,6 +1,3 @@
import os
import sys
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import numpy as np import numpy as np
import pandas as pd import pandas as pd
@ -16,12 +13,6 @@ from sklearn.metrics import mean_squared_error, r2_score
# from sklearn.preprocessing import MinMaxScaler # from sklearn.preprocessing import MinMaxScaler
# from sqlalchemy import create_engine # from sqlalchemy import create_engine
# Add the parent directory to sys.path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from config import *
from modules.class_load import *
class LoadPredictionAdjuster: class LoadPredictionAdjuster:
def __init__(self, measured_data, predicted_data, load_forecast): def __init__(self, measured_data, predicted_data, load_forecast):

View File

@ -1,34 +1,29 @@
import os import os
import sys
import matplotlib import matplotlib
import numpy as np import numpy as np
from modules.class_akku import * from modules.class_akku import PVAkku
from modules.class_ems import * from modules.class_ems import EnergieManagementSystem, Wechselrichter
from modules.class_haushaltsgeraet import * from modules.class_haushaltsgeraet import Haushaltsgeraet
from modules.class_heatpump import * from modules.visualize import visualisiere_ergebnisse
from modules.class_inverter import *
from modules.class_load import *
from modules.class_load_container import *
from modules.class_pv_forecast import *
from modules.class_sommerzeit import *
from modules.visualize import *
matplotlib.use("Agg") # Setzt das Backend auf Agg matplotlib.use("Agg") # Setzt das Backend auf Agg
import random import random
from datetime import datetime from datetime import datetime, timedelta
from deap import algorithms, base, creator, tools from deap import algorithms, base, creator, tools
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from config import * from config import moegliche_ladestroeme_in_prozent
def isfloat(num): def isfloat(num):
try: try:
float(num) float(num)
return True return True
except: except ValueError:
return False return False
@ -213,7 +208,7 @@ class optimization_problem:
def evaluate(self, individual, ems, parameter, start_hour, worst_case): def evaluate(self, individual, ems, parameter, start_hour, worst_case):
try: try:
o = self.evaluate_inner(individual, ems, start_hour) o = self.evaluate_inner(individual, ems, start_hour)
except: except Exception:
return (100000.0,) return (100000.0,)
gesamtbilanz = o["Gesamtbilanz_Euro"] gesamtbilanz = o["Gesamtbilanz_Euro"]
@ -339,7 +334,7 @@ class optimization_problem:
############ ############
# Parameter # Parameter
############ ############
if startdate == None: if startdate is None:
date = ( date = (
datetime.now().date() + timedelta(hours=self.prediction_hours) datetime.now().date() + timedelta(hours=self.prediction_hours)
).strftime("%Y-%m-%d") ).strftime("%Y-%m-%d")
@ -437,7 +432,7 @@ class optimization_problem:
############## ##############
opti_param = {} opti_param = {}
opti_param["haushaltsgeraete"] = 0 opti_param["haushaltsgeraete"] = 0
if spuelmaschine != None: if spuelmaschine is not None:
opti_param["haushaltsgeraete"] = 1 opti_param["haushaltsgeraete"] = 1
self.setup_deap_environment(opti_param, start_hour) self.setup_deap_environment(opti_param, start_hour)

View File

@ -69,7 +69,9 @@ class PVForecast:
f"Die Vorhersage muss mindestens {self.prediction_hours} Stunden umfassen, aber es wurden nur {len(self.forecast_data)} Stunden vorhergesagt." f"Die Vorhersage muss mindestens {self.prediction_hours} Stunden umfassen, aber es wurden nur {len(self.forecast_data)} Stunden vorhergesagt."
) )
def update_ac_power_measurement(self, date_time=None, ac_power_measurement=None): def update_ac_power_measurement(
self, date_time=None, ac_power_measurement=None
) -> bool:
found = False found = False
input_date_hour = date_time.replace(minute=0, second=0, microsecond=0) input_date_hour = date_time.replace(minute=0, second=0, microsecond=0)
@ -81,6 +83,7 @@ class PVForecast:
forecast.ac_power_measurement = ac_power_measurement forecast.ac_power_measurement = ac_power_measurement
found = True found = True
break break
return found
def process_data(self, data): def process_data(self, data):
self.meta = data.get("meta", {}) self.meta = data.get("meta", {})

View File

@ -295,6 +295,7 @@ class BatteryDataProcessor:
if __name__ == "__main__": if __name__ == "__main__":
# MariaDB Verbindungsdetails # MariaDB Verbindungsdetails
config = {}
# Parameter festlegen # Parameter festlegen
voltage_high_threshold = 55.4 # 100% SoC voltage_high_threshold = 55.4 # 100% SoC

View File

@ -6,7 +6,7 @@ import matplotlib.pyplot as plt
import numpy as np import numpy as np
from matplotlib.backends.backend_pdf import PdfPages from matplotlib.backends.backend_pdf import PdfPages
from modules.class_sommerzeit import * # Ensure this matches the actual import path from modules.class_sommerzeit import ist_dst_wechsel
matplotlib.use("Agg") matplotlib.use("Agg")

View File

@ -1,2 +1,7 @@
[tool.isort] [tool.isort]
profile = "black" profile = "black"
[tool.ruff.lint]
ignore = [
"F841", # don't complain about unused variables
]

View File

@ -4,7 +4,6 @@ from pprint import pprint
# Import necessary modules from the project # Import necessary modules from the project
from modules.class_optimize import optimization_problem from modules.class_optimize import optimization_problem
from modules.visualize import *
start_hour = 10 start_hour = 10