EOS/modules/class_haushaltsgeraet.py
Bla Bla be5a99f86a Haushaltsgeräte wie z.B. Spülmaschine
flask / Optimierung besser getrennt
Optimierung Bug, bei mehrfahcen neustart
2024-04-02 16:46:16 +02:00

58 lines
2.3 KiB
Python

import numpy as np
class Haushaltsgeraet:
def __init__(self, hours=None, verbrauch_kwh=None, dauer_h=None):
self.hours = hours # Gesamtzeitraum, für den die Planung erfolgt
self.verbrauch_kwh = verbrauch_kwh # Gesamtenergieverbrauch des Geräts in kWh
self.dauer_h = dauer_h # Dauer der Nutzung in Stunden
self.lastkurve = np.zeros(self.hours) # Initialisiere die Lastkurve mit Nullen
def set_startzeitpunkt(self, start_hour,global_start_hour=0):
"""
Setzt den Startzeitpunkt des Geräts und generiert eine entsprechende Lastkurve.
:param start_hour: Die Stunde, zu der das Gerät starten soll.
"""
self.reset()
# Überprüfe, ob die Dauer der Nutzung innerhalb des verfügbaren Zeitraums liegt
if start_hour + self.dauer_h > self.hours:
raise ValueError("Die Nutzungsdauer überschreitet den verfügbaren Zeitraum.")
if start_hour < global_start_hour:
raise ValueError("Die Nutzungsdauer unterschreitet den verfügbaren Zeitraum.")
# Berechne die Leistung pro Stunde basierend auf dem Gesamtverbrauch und der Dauer
leistung_pro_stunde = (self.verbrauch_kwh / self.dauer_h) # Umwandlung in Wattstunde
#print(start_hour," ",leistung_pro_stunde)
# Setze die Leistung für die Dauer der Nutzung im Lastkurven-Array
self.lastkurve[start_hour:start_hour + self.dauer_h] = leistung_pro_stunde
def reset(self):
"""
Setzt die Lastkurve zurück.
"""
self.lastkurve = np.zeros(self.hours)
def get_lastkurve(self):
"""
Gibt die aktuelle Lastkurve zurück.
"""
return self.lastkurve
def get_last_fuer_stunde(self, hour):
"""
Gibt die Last für eine spezifische Stunde zurück.
:param hour: Die Stunde, für die die Last abgefragt wird.
:return: Die Last in Watt für die angegebene Stunde.
"""
if hour < 0 or hour >= self.hours:
raise ValueError("Angegebene Stunde liegt außerhalb des verfügbaren Zeitraums.")
return self.lastkurve[hour]
def spaetestmoeglicher_startzeitpunkt(self):
"""
Gibt den spätestmöglichen Startzeitpunkt zurück, an dem das Gerät noch vollständig laufen kann.
"""
return self.hours - self.dauer_h