Skip to content

Commit d853623

Browse files
authored
chargelog: improve error handling (#3076)
* chargelog: improve error handling * ammend
1 parent 88c00f3 commit d853623

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

packages/control/chargelog/chargelog.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,29 +77,29 @@ def collect_data(chargepoint):
7777
charging_ev = get_value_or_default(lambda: chargepoint.data.set.charging_ev_data)
7878
if get_value_or_default(lambda: chargepoint.data.get.plug_state, False):
7979
# Zählerstand beim Einschalten merken
80-
if get_value_or_default(lambda: log_data.imported_at_plugtime, 0) == 0:
80+
if get_value_or_default(lambda: log_data.imported_at_plugtime == 0, True):
8181
log_data.imported_at_plugtime = get_value_or_default(lambda: chargepoint.data.get.imported, 0)
8282
log.debug(f"imported_at_plugtime {log_data.imported_at_plugtime}")
8383
# Bisher geladene Energie ermitteln
8484
log_data.imported_since_plugged = get_value_or_default(
8585
lambda: chargepoint.data.get.imported - log_data.imported_at_plugtime, 0)
86-
if get_value_or_default(lambda: log_data.exported_at_plugtime, 0) == 0:
86+
if get_value_or_default(lambda: log_data.exported_at_plugtime == 0, True):
8787
log_data.exported_at_plugtime = get_value_or_default(lambda: chargepoint.data.get.exported, 0)
8888
log_data.exported_since_plugged = get_value_or_default(
8989
lambda: chargepoint.data.get.exported - log_data.exported_at_plugtime, 0)
9090

91-
if get_value_or_default(lambda: log_data.imported_at_mode_switch, 0) == 0:
91+
if get_value_or_default(lambda: log_data.imported_at_mode_switch == 0, True):
9292
log_data.imported_at_mode_switch = get_value_or_default(lambda: chargepoint.data.get.imported, 0)
9393
log.debug(f"imported_at_mode_switch {log_data.imported_at_mode_switch}")
9494

95-
if get_value_or_default(lambda: log_data.exported_at_mode_switch, 0) == 0:
95+
if get_value_or_default(lambda: log_data.exported_at_mode_switch == 0, True):
9696
log_data.exported_at_mode_switch = get_value_or_default(lambda: chargepoint.data.get.exported, 0)
9797

98-
if get_value_or_default(lambda: log_data.timestamp_mode_switch) is None:
98+
if get_value_or_default(lambda: log_data.timestamp_mode_switch is None):
9999
log_data.timestamp_mode_switch = now
100100

101101
if get_value_or_default(lambda: chargepoint.data.get.charge_state, False):
102-
if get_value_or_default(lambda: log_data.timestamp_start_charging) is None:
102+
if get_value_or_default(lambda: log_data.timestamp_start_charging is None):
103103
log_data.timestamp_start_charging = now
104104
submode = get_value_or_default(lambda: chargepoint.data.control_parameter.submode, "")
105105
if submode == "time_charging":
@@ -108,14 +108,15 @@ def collect_data(chargepoint):
108108
log_data.chargemode_log_entry = get_value_or_default(
109109
lambda: chargepoint.data.control_parameter.chargemode.value)
110110

111-
if get_value_or_default(lambda: charging_ev.soc_module) if charging_ev else None:
112-
if get_value_or_default(lambda: log_data.range_at_start) is None:
111+
if get_value_or_default(lambda: charging_ev.soc_module if charging_ev else None):
112+
if get_value_or_default(lambda: log_data.range_at_start is None):
113113
# manche Vehicle-Module liefern erstmal None
114114
log_data.range_at_start = get_value_or_default(lambda: charging_ev.data.get.range)
115115

116116
plug_time = get_value_or_default(lambda: chargepoint.data.set.plug_time, 0)
117117
soc_timestamp = get_value_or_default(lambda: charging_ev.data.get.soc_timestamp, 0)
118-
if (get_value_or_default(lambda: log_data.soc_at_start) is None and plug_time < soc_timestamp):
118+
if (get_value_or_default(lambda: log_data.soc_at_start is None) and
119+
get_value_or_default(lambda: plug_time < soc_timestamp, True)):
119120
# SoC muss nach dem Anstecken aktualisiert worden sein
120121
log_data.soc_at_start = get_value_or_default(lambda: charging_ev.data.get.soc)
121122

@@ -131,7 +132,7 @@ def collect_data(chargepoint):
131132
timestamp_start_charging = get_value_or_default(lambda: log_data.timestamp_start_charging)
132133
if timestamp_start_charging is not None:
133134
time_diff = get_value_or_default(lambda: now - timestamp_start_charging, 0)
134-
log_data.time_charged = get_value_or_default(lambda: log_data.time_charged, 0) + time_diff
135+
log_data.time_charged = get_value_or_default(lambda: log_data.time_charged + time_diff, 0)
135136
log_data.timestamp_start_charging = None
136137
log_data.end = now
137138
Pub().pub(f"openWB/set/chargepoint/{chargepoint.num}/set/log", asdict(log_data))

0 commit comments

Comments
 (0)