Skip to content

Commit 4c6a6b2

Browse files
committed
draft
1 parent 5b0c452 commit 4c6a6b2

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

packages/control/chargepoint/chargepoint.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from control.chargepoint.control_parameter import ControlParameter, control_parameter_factory
3131
from control.chargepoint.charging_type import ChargingType
3232
from control.chargepoint.rfid import ChargepointRfidMixin
33+
from control.ev.charge_template import ChargeTemplate
3334
from control.ev.ev import Ev
3435
from control import phase_switch
3536
from control.chargepoint.chargepoint_state import ChargepointState
@@ -240,7 +241,7 @@ def _process_charge_stop(self) -> None:
240241
log.debug("/set/manual_lock True")
241242
# Ev wurde noch nicht aktualisiert.
242243
# Ladeprofil aus den Einstellungen laden.
243-
self._update_charge_template(self.data.set.charging_ev_data)
244+
self.update_charge_template(self.data.set.charging_ev_data.charge_template)
244245
chargelog.save_and_reset_data(self, data.data.ev_data["ev"+str(self.data.set.charging_ev_prev)])
245246
self.data.set.charging_ev_prev = -1
246247
Pub().pub("openWB/set/chargepoint/"+str(self.num)+"/set/charging_ev_prev",
@@ -654,7 +655,7 @@ def update_ev(self, ev_list: Dict[str, Ev]) -> None:
654655
vehicle = -1
655656
self._pub_configured_ev(ev_list)
656657
if self.data.config.ev != self.data.set.ev_prev:
657-
self._update_charge_template(ev_list[f"ev{self.data.config.ev}"])
658+
self.update_charge_template(ev_list[f"ev{self.data.config.ev}"].charge_template)
658659

659660
def update(self, ev_list: Dict[str, Ev]) -> None:
660661
try:
@@ -740,11 +741,11 @@ def update(self, ev_list: Dict[str, Ev]) -> None:
740741
if vehicle != -1:
741742
self._pub_connected_vehicle(ev_list[f"ev{vehicle}"])
742743
if self.data.set.charge_template.data.id != ev_list[f"ev{vehicle}"].charge_template.data.id:
743-
self._update_charge_template(ev_list[f"ev{vehicle}"])
744+
self.update_charge_template(ev_list[f"ev{vehicle}"].charge_template)
744745
else:
745746
self._pub_configured_ev(ev_list)
746747
if self.data.set.charge_template.data.id != ev_list[f"ev{self.data.config.ev}"].charge_template.data.id:
747-
self._update_charge_template(ev_list[f"ev{self.data.config.ev}"])
748+
self.update_charge_template(ev_list[f"ev{self.data.config.ev}"].charge_template)
748749
# OCPP Start Transaction nach Anstecken
749750
if ((self.data.get.plug_state and self.data.set.plug_state_prev is False) or
750751
(self.data.set.ocpp_transaction_id is None and self.data.get.charge_state)):
@@ -787,17 +788,17 @@ def _get_charging_ev(self, vehicle: int, ev_list: Dict[str, Ev]) -> Ev:
787788
if self.data.set.charging_ev != vehicle and self.data.set.charging_ev_prev != vehicle:
788789
Pub().pub(f"openWB/set/vehicle/{charging_ev.num}/get/force_soc_update", True)
789790
log.debug("SoC nach EV-Wechsel")
790-
self._update_charge_template(charging_ev)
791+
self.update_charge_template(charging_ev.charge_template)
791792
if self.data.set.charge_template.data.id != charging_ev.charge_template.data.id:
792-
self._update_charge_template(charging_ev)
793+
self.update_charge_template(charging_ev)
793794
self.data.set.charging_ev_data = charging_ev
794795
self.data.set.charging_ev = vehicle
795796
Pub().pub("openWB/set/chargepoint/"+str(self.num)+"/set/charging_ev", vehicle)
796797
self.data.set.charging_ev_prev = vehicle
797798
Pub().pub("openWB/set/chargepoint/"+str(self.num)+"/set/charging_ev_prev", vehicle)
798799
return charging_ev
799800

800-
def _update_charge_template(self, charging_ev_data: Ev) -> None:
801+
def update_charge_template(self, charge_template: ChargeTemplate) -> None:
801802
# evtl noch vorhandene, aber in den Einstellungen gelöschte Pläne entfernen
802803
def on_connect(client, userdata, flags, rc):
803804
client.subscribe(f'openWB/chargepoint/{self.num}/set/charge_template/#', 2)
@@ -808,7 +809,7 @@ def __get_payload(client, userdata, msg):
808809
InternalBrokerClient("processBrokerBranch", on_connect, __get_payload).start_finite_loop()
809810
for topic in received_topics:
810811
Pub().pub(topic, "")
811-
self.data.set.charge_template = copy.deepcopy(charging_ev_data.charge_template)
812+
self.data.set.charge_template = copy.deepcopy(charge_template)
812813
pub_template = copy.deepcopy(self.data.set.charge_template.data)
813814
pub_template = dataclasses.asdict(pub_template)
814815
pub_template["chargemode"]["scheduled_charging"]["plans"].clear()

packages/helpermodules/subdata.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,16 @@ def process_vehicle_topic(self, client: mqtt.Client, var: Dict[str, ev.Ev], msg:
301301
self.event_soc.set()
302302
else:
303303
self.set_json_payload_class(var["ev"+index].data, msg)
304+
if re.search("/vehicle/[0-9]+/charge_template$", msg.topic) is not None:
305+
if var["ev"+index].data.charge_template.data.id != decode_payload(msg.payload)["id"]:
306+
ev_id = get_index(msg.topic)
307+
for cp in self.cp_data.values():
308+
if ((cp.chargepoint.data.set.charging_ev != -1 and
309+
cp.chargepoint.data.set.charging_ev == ev_id) or
310+
cp.chargepoint.data.config.ev == ev_id):
311+
cp.update_charge_template(dataclass_from_dict(
312+
ChargeTemplateData, decode_payload(msg.payload)))
313+
304314
except Exception:
305315
log.exception("Fehler im subdata-Modul")
306316

0 commit comments

Comments
 (0)