Skip to content
Open
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
5 changes: 3 additions & 2 deletions packages/control/chargelog/chargelog.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from control.chargemode import Chargemode
from helpermodules.utils.json_file_handler import write_and_check
from helpermodules import timecheck
import copy
Expand Down Expand Up @@ -99,8 +100,8 @@ def collect_data(chargepoint):
if get_value_or_default(lambda: log_data.timestamp_start_charging is None):
log_data.timestamp_start_charging = now
submode = get_value_or_default(lambda: chargepoint.data.control_parameter.submode, "")
if submode == "time_charging":
log_data.chargemode_log_entry = "time_charging"
if submode == Chargemode.TIME_CHARGING:
log_data.chargemode_log_entry = Chargemode.TIME_CHARGING.value
else:
log_data.chargemode_log_entry = get_value_or_default(
lambda: chargepoint.data.control_parameter.chargemode.value)
Expand Down
32 changes: 15 additions & 17 deletions packages/control/chargepoint/chargepoint.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from dataclasses import asdict
import dataclasses
import logging
from threading import Thread, Event
import traceback
Expand All @@ -21,6 +19,7 @@
from control.chargepoint.chargepoint_state import CHARGING_STATES, ChargepointState
from control.limiting_value import loadmanagement_limit_factory
from control.text import BidiState
from dataclass_utils import asdict
from helpermodules.constants import DEFAULT_COLORS
from helpermodules.phase_handling import convert_single_evu_phase_to_cp_phase
from helpermodules.pub import Pub
Expand Down Expand Up @@ -218,7 +217,7 @@ def _process_charge_stop(self) -> None:
def setup_values_at_start(self):
self._set_values_at_start()

def set_control_parameter(self, submode: str):
def set_control_parameter(self, submode: Chargemode):
""" setzt die Regel-Parameter, die der Algorithmus verwendet.

Parameter
Expand All @@ -227,12 +226,11 @@ def set_control_parameter(self, submode: str):
neuer Lademodus, in dem geladen werden soll
"""
try:
self.data.control_parameter.submode = Chargemode(submode)
if submode == "time_charging":
self.data.control_parameter.submode = submode
if submode == Chargemode.TIME_CHARGING:
self.data.control_parameter.chargemode = Chargemode.TIME_CHARGING
else:
self.data.control_parameter.chargemode = Chargemode(
self.data.set.charge_template.data.chargemode.selected)
self.data.control_parameter.chargemode = self.data.set.charge_template.data.chargemode.selected
self.data.control_parameter.prio = self.data.set.charge_template.data.prio
if self.template.data.charging_type == ChargingType.AC.value:
self.data.control_parameter.min_current = self.data.set.charging_ev_data.ev_template.data.min_current
Expand Down Expand Up @@ -602,17 +600,18 @@ def set_timestamp_charge_start(self):
elif self.data.set.current == 0:
self.data.control_parameter.timestamp_charge_start = None

def set_chargemode_changed(self, submode: str) -> None:
if ((submode == "time_charging" and self.data.control_parameter.chargemode != "time_charging") or
(submode != "time_charging" and
def set_chargemode_changed(self, submode: Chargemode) -> None:
if ((submode == Chargemode.TIME_CHARGING and
self.data.control_parameter.chargemode != Chargemode.TIME_CHARGING) or
(submode != Chargemode.TIME_CHARGING and
self.data.control_parameter.chargemode != self.data.set.charge_template.data.chargemode.selected)):
self.chargemode_changed = True
log.debug("Änderung des Lademodus")
self.data.control_parameter.timestamp_chargemode_changed = create_timestamp()
else:
self.chargemode_changed = False

def set_submode_changed(self, submode: str) -> None:
def set_submode_changed(self, submode: Chargemode) -> None:
self.submode_changed = (submode != self.data.control_parameter.submode)

def update_ev(self, ev_list: Dict[str, Ev]) -> None:
Expand Down Expand Up @@ -700,7 +699,7 @@ def update(self, ev_list: Dict[str, Ev]) -> None:
f", mittlerer Ist-Strom: {get_medium_charging_current(self.data.get.currents)}")
except Exception:
log.exception("Fehler im Prepare-Modul für Ladepunkt "+str(self.num))
self.data.control_parameter.submode = "stop"
self.data.control_parameter.submode = Chargemode.STOP
else:
self._process_charge_stop()
if vehicle != -1:
Expand Down Expand Up @@ -781,8 +780,7 @@ def _get_charging_ev(self, vehicle: int, ev_list: Dict[str, Ev]) -> Ev:
def update_charge_template(self, charge_template: ChargeTemplate) -> None:
# Prüfen, ob ein temporäres Ladeprofil aktiv ist und dieses übernehmen
self.data.set.charge_template = charge_template
Pub().pub(f"openWB/set/chargepoint/{self.num}/set/charge_template",
dataclasses.asdict(charge_template.data))
Pub().pub(f"openWB/set/chargepoint/{self.num}/set/charge_template", asdict(charge_template.data))

def _pub_connected_vehicle(self, vehicle: Ev):
""" published die Daten, die zur Anzeige auf der Hauptseite benötigt werden.
Expand All @@ -807,8 +805,8 @@ def _pub_connected_vehicle(self, vehicle: Ev):
self.data.get.connected_vehicle.soc.range = vehicle.data.get.range
self.data.get.connected_vehicle.info = ConnectedInfo(id=vehicle.num,
name=vehicle.data.name)
if (self.data.set.charge_template.data.chargemode.selected == "time_charging" or
self.data.set.charge_template.data.chargemode.selected == "scheduled_charging"):
if (self.data.set.charge_template.data.chargemode.selected == Chargemode.TIME_CHARGING or
self.data.set.charge_template.data.chargemode.selected == Chargemode.SCHEDULED_CHARGING):
current_plan = self.data.control_parameter.current_plan
else:
current_plan = None
Expand All @@ -820,7 +818,7 @@ def _pub_connected_vehicle(self, vehicle: Ev):
current_plan=current_plan,
average_consumption=vehicle.ev_template.data.average_consump,
time_charging_in_use=True if (self.data.control_parameter.submode ==
"time_charging") else False)
Chargemode.TIME_CHARGING) else False)
except Exception:
log.exception("Fehler im Prepare-Modul")

Expand Down
3 changes: 2 additions & 1 deletion packages/control/chargepoint/chargepoint_data.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from dataclasses import dataclass, field
from threading import Event
from typing import Dict, List, Optional, Protocol
from control.chargemode import Chargemode
from control.chargepoint.chargepoint_template import CpTemplate

from control.chargepoint.control_parameter import ControlParameter, control_parameter_factory
Expand Down Expand Up @@ -38,7 +39,7 @@ class ConnectedInfo:
class ConnectedConfig:
average_consumption: float = 17
charge_template: int = 0
chargemode: str = "stop"
chargemode: Chargemode = Chargemode.STOP
current_plan: Optional[int] = 0
ev_template: int = 0
priority: bool = False
Expand Down
3 changes: 2 additions & 1 deletion packages/control/chargepoint/chargepoint_template.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from dataclasses import asdict, dataclass, field
from dataclasses import dataclass, field
import logging
import traceback
from typing import List, Tuple

from control import data
from control.ev import ev as ev_module
from control.chargepoint.charging_type import ChargingType
from dataclass_utils import asdict
from dataclass_utils.factories import empty_list_factory
from helpermodules.abstract_plans import AutolockPlan
from helpermodules import timecheck
Expand Down
Loading