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
12 changes: 11 additions & 1 deletion packages/helpermodules/utils/error_handling.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@
CP_ERROR = ("Anhaltender Fehler beim Auslesen des Ladepunkts. Soll-Stromstärke, Lade- und Stecker-Status wird "
"zurückgesetzt.")

INTERNAL_ERROR_HINT = ("Liebe Kunden, das Log ist zur Auswertung durch Support-Mitarbeiter der openWB GmbH gedacht. "
"Meldungen, die hier erscheinen können wie Fehlermeldungen aussehen, sind aber oft ganz normal. "
"Beispielsweise führen wir Abfragen der internen Hardware mehrere tausend mal pro Stunde aus "
"(wir gehen bis ans Limit der seriellen Kommunikation um eine möglichst feine Auflösung zu "
"erreichen), eine Abfrage-Fehlerquote von 1-2% ist dabei normal. Wirklich relevante "
"Fehlermeldungen erscheinen in der grafischen Nutzeroberfläche an prominenter Stelle. Bitte "
"belastet unseren Support nicht mit Fragen nach euch unbekannten Log-Meldungen.")


class ErrorTimerContext:
def __init__(self, topic: str, exceeded_msg: str, timeout: int = 60, hide_exception: bool = False):
Expand All @@ -28,12 +36,14 @@ def __exit__(self, exception_type, exception, exception_traceback) -> bool:
if self.error_timestamp is None:
self.error_timestamp = timecheck.create_timestamp()
Pub().pub(self.topic, self.error_timestamp)
log.error(exception)
if (self.hide_exception is False or
timecheck.check_timestamp(self.error_timestamp, self.timeout + 10) is False):
# Fehlermeldung als abgelaufen markieren, bevor die Exception gesetzt wird, mit der Exception werden
# keine Werte mehr gepublished.
return False
else:
log.error(f"{exception}\n{INTERNAL_ERROR_HINT}")
return True
return True

def error_counter_exceeded(self) -> bool:
Expand Down
3 changes: 1 addition & 2 deletions packages/modules/common/hardware_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
METER_NO_SERIAL_NUMBER = ("Die Seriennummer des Zählers für das Ladelog kann nicht ausgelesen werden. Wenn Sie die "
"Seriennummer für Abrechnungszwecke benötigen, wenden Sie sich bitte an unseren Support. Die "
"Funktionalität wird dadurch nicht beeinträchtigt!")
EVSE_BROKEN = ("Auslesen der EVSE nicht möglich. Vermutlich ist die EVSE defekt oder hat eine unbekannte Modbus-ID. "
"(Fehlermeldung nur relevant, wenn diese auf der Startseite oder im Status angezeigt wird.)")
EVSE_BROKEN = "Auslesen der EVSE nicht möglich. Vermutlich ist die EVSE defekt oder hat eine unbekannte Modbus-ID. "


def check_meter_values(counter_state: CounterState, fault_state: Optional[FaultState] = None) -> None:
Expand Down