Skip to content

Commit 81e84c8

Browse files
authored
improve error handling (#3035)
1 parent 8259acd commit 81e84c8

2 files changed

Lines changed: 28 additions & 20 deletions

File tree

packages/control/chargelog/chargelog.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -319,16 +319,19 @@ def write_new_entry(new_entry):
319319

320320

321321
def calc_energy_costs(cp, create_log_entry: bool = False):
322-
if cp.data.set.log.imported_since_plugged != 0 and cp.data.set.log.imported_since_mode_switch != 0:
323-
processed_entries, reference_entries = _get_reference_entries()
324-
charged_energy_by_source = calculate_charged_energy_by_source(
325-
cp, processed_entries, reference_entries, create_log_entry)
326-
_add_charged_energy_by_source(cp, charged_energy_by_source)
327-
log.debug(f"charged_energy_by_source {charged_energy_by_source} "
328-
f"total charged_energy_by_source {cp.data.set.log.charged_energy_by_source}")
329-
costs = _calc_costs(charged_energy_by_source, reference_entries[-1]["prices"])
330-
cp.data.set.log.costs += costs
331-
Pub().pub(f"openWB/set/chargepoint/{cp.num}/set/log", asdict(cp.data.set.log))
322+
try:
323+
if cp.data.set.log.imported_since_plugged != 0 and cp.data.set.log.imported_since_mode_switch != 0:
324+
processed_entries, reference_entries = _get_reference_entries()
325+
charged_energy_by_source = calculate_charged_energy_by_source(
326+
cp, processed_entries, reference_entries, create_log_entry)
327+
_add_charged_energy_by_source(cp, charged_energy_by_source)
328+
log.debug(f"charged_energy_by_source {charged_energy_by_source} "
329+
f"total charged_energy_by_source {cp.data.set.log.charged_energy_by_source}")
330+
costs = _calc_costs(charged_energy_by_source, reference_entries[-1]["prices"])
331+
cp.data.set.log.costs += costs
332+
Pub().pub(f"openWB/set/chargepoint/{cp.num}/set/log", asdict(cp.data.set.log))
333+
except Exception:
334+
log.exception(f"Fehler beim Berechnen der Ladekosten für Ladepunkt {cp.num}")
332335

333336

334337
def calculate_charged_energy_by_source(cp, processed_entries, reference_entries, create_log_entry: bool = False):

packages/control/optional.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,16 +152,21 @@ def remove(price_data: Dict) -> Dict:
152152
if float(price[0]) > now - (price_timeslot_seconds - 1)
153153
}
154154

155-
if self.data.electricity_pricing.configured:
156-
ep = self.data.electricity_pricing
157-
ep.get.prices = remove(ep.get.prices)
158-
Pub().pub("openWB/set/optional/ep/get/prices", ep.get.prices)
159-
if self._flexible_tariff_module:
160-
ep.flexible_tariff.get.prices = remove(ep.flexible_tariff.get.prices)
161-
Pub().pub("openWB/set/optional/ep/flexible_tariff/get/prices", ep.flexible_tariff.get.prices)
162-
if self._grid_fee_module:
163-
ep.grid_fee.get.prices = remove(ep.grid_fee.get.prices)
164-
Pub().pub("openWB/set/optional/ep/grid_fee/get/prices", ep.grid_fee.get.prices)
155+
try:
156+
if self.data.electricity_pricing.configured:
157+
if len(self.data.electricity_pricing.get.prices) == 0:
158+
return
159+
ep = self.data.electricity_pricing
160+
ep.get.prices = remove(ep.get.prices)
161+
Pub().pub("openWB/set/optional/ep/get/prices", ep.get.prices)
162+
if self._flexible_tariff_module:
163+
ep.flexible_tariff.get.prices = remove(ep.flexible_tariff.get.prices)
164+
Pub().pub("openWB/set/optional/ep/flexible_tariff/get/prices", ep.flexible_tariff.get.prices)
165+
if self._grid_fee_module:
166+
ep.grid_fee.get.prices = remove(ep.grid_fee.get.prices)
167+
Pub().pub("openWB/set/optional/ep/grid_fee/get/prices", ep.grid_fee.get.prices)
168+
except Exception:
169+
log.exception("Fehler beim Entfernen veralteter Preise")
165170

166171
def __get_current_timeslot_start(self) -> int:
167172
timestamp = self.__get_first_entry()[0]

0 commit comments

Comments
 (0)