Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 15 additions & 14 deletions packages/control/consumer/consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,22 +45,24 @@ def setup_values_at_start(self):
def update(self):
try:
self.setup_values_at_start()
if self.data.get.voltages == [230.0]*3:
self.data.get.voltages = [230 if i < self.data.config.connected_phases else 0
for i in range(0, 3)]
if self.data.get.currents == [0.0]*3:
for i in range(0, self.data.config.connected_phases):
voltage = self.data.get.voltages[i]
if voltage != 0:
self.data.get.currents[i] = (self.data.get.power /
self.data.config.connected_phases /
voltage)
self.data.get.phases_in_use = self.data.config.connected_phases
self.data.set.phases_to_use = self.data.config.connected_phases
self.data.get.charge_state = max(self.data.get.currents) > self.STANDBY_THRESHOLD
self.process_on_time()

if self.data.usage.type in NOT_CONTROLLED:
return
else:
# Gegen den Default statt auf None prüfen, sonst bleibt ein Array mit der alten Phasenzahl stehen,
# wenn connected_phases nachträglich geändert wird (zB 3 auf 1 Phase).
if self.data.get.voltages == [230.0]*3:
self.data.get.voltages = [230 if i < self.data.config.connected_phases else 0
for i in range(0, 3)]
if self.data.get.currents == [0.0]*3:
for i in range(0, self.data.config.connected_phases):
self.data.get.currents[i] = (self.data.get.power /
self.data.config.connected_phases /
self.data.get.voltages[i])
self.data.get.phases_in_use = self.data.config.connected_phases
self.data.set.phases_to_use = self.data.config.connected_phases
self.data.get.charge_state = max(self.data.get.currents) > self.STANDBY_THRESHOLD
self.reset_chargemode_at_time()
self.is_switch_interval_elapsed()
required_current, message, mode, submode = self.get_parameter()
Expand All @@ -70,7 +72,6 @@ def update(self):
self.set_control_parameter(required_current,
self.data.config.connected_phases, submode, mode)
self.set_state_and_log(message)
self.process_on_time()
log.debug(f"Verbraucher {self.num}: Sollstrom {required_current}, "
f"min. Ist-Strom {max(self.data.get.currents)},"
f" Modus {mode}, Submodus {submode}, {message}")
Expand Down
28 changes: 28 additions & 0 deletions packages/modules/loadvars.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def get_values(self) -> None:
try:
not_finished_threads = self._set_values()
levels = data.data.counter_all_data.get_list_of_elements_per_level()
self._add_extra_meter_counters_to_levels(levels)
levels.reverse()
for level in levels:
self._update_values_of_level_buttom_top(level, not_finished_threads)
Expand All @@ -46,6 +47,33 @@ def get_values(self) -> None:
except Exception:
log.exception("Fehler im loadvars-Modul")

def _add_extra_meter_counters_to_levels(self, levels: List[List[dict]]) -> None:
"""Ergänzt Zähler, die als separate Leistungsmessung einem Verbraucher zugeordnet sind.

Diese Zähler werden aus der Hierarchie entfernt, damit sie nicht zusätzlich in die
Summenbildung eingehen. Ihre Werte müssen aber trotzdem veröffentlicht werden, bevor
der zugehörige Verbraucher seine Werte aus dem Zähler übernimmt.
"""
known_counter_ids = {
element["id"]
for level in levels
for element in level
if element["type"] == ComponentType.COUNTER.value
}
extra_meter_level = []
for consumer in data.data.consumer_data.values():
extra_meter_id = consumer.data.extra_meter
if extra_meter_id is None:
continue
if f"counter{extra_meter_id}" not in data.data.counter_data:
continue
if extra_meter_id in known_counter_ids:
continue
extra_meter_level.append({"type": ComponentType.COUNTER.value, "id": extra_meter_id})
known_counter_ids.add(extra_meter_id)
if extra_meter_level:
levels.append(extra_meter_level)

def _set_values(self) -> List[str]:
"""Threads, um Werte von Geräten abzufragen"""
modules_threads: List[Thread] = []
Expand Down
Loading