Closed seiferta closed 7 years ago
Problem tritt auch bei unbekanntem Stichwort/Schlagwort auf
Bekomme jetzt zu dem "Key not found" auch noch folgenden Trace angezeigt:
Traceback (most recent call last): File "emonitor/modules/alarms/inc/faxchecker_generic.py", line 393, in buildAlarmFromText pattern = re.compile(section.getRegEx(**GenericAlarmFaxChecker().params), re.MULTILINE) File "/usr/lib/python2.7/re.py", line 194, in compile return _compile(pattern, flags) File "/usr/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression error: multiple repeat
das sieht nach einem fehlerhaften Pattern in der Definition der Felder für die Faxauswertung aus. Ohne das Alarmbeispiel (Fax/Text) und der Definition des Einsatzypes ist das leider nicht nachvollziehbar.
Die Felddefinition sollte eigentlich in Ordnung sein, zumindest so wie das in meinen Augen aussieht. Das Fax habe ich Dir vor einiger Zeit schon mal per Mail geschickt, worauf Du mir dann die ILS_R.cfg gebaut hast.
Wie sieht denn der erkannte Text im Testmodus aus? Dort der Tab nach dem "Replace" Die exakt selbe Meldung kann ich nicht reproduzieren, ähnliche lassen auf relativ schlechte OCR-Erkennung schließen.
Der erkannte Text sieht dem originalen Alarmfax fast gleich. Die Felddefinitionen sollten eigentlich auch passen.
Habe jetzt den eMonitor upgedatet. Bekomme jetzt alle Felder ausgelesen und auf das Alarm-Object übertragen. Jedoch steht immer noch der selbe Trace wie gehabt als Fehler da. Ist es problematisch wenn der Fehler immer noch auftritt?
Um dir helfen zu können brauche ich mehr Information:
Ohne diese Informationen kann ich nicht weiter helfen.
So wie ich das sehe wurde tatsächlich alles an das Alarm-Objekt übertragen. Im Log landet nichts dergleichen, es kommt nur die Meldung, dass der Test-Alarm erstellt wurde. Der Fehler erscheint über den Inhalten, die aus dem Alarmfax entnommen werden (Reiter "Alarms").
Screenshot aus dem OCR-Reiter:
Screenshot aus dem Replace-Reiter:
Screenshot aus dem Alarms-Reiter:
Screenshot vom Alarm-Object:
Die Screenshots sehen gut aus. Den Fehler kann ich bisher nicht nachvollziehen.
versuche doch mal in _emonitor/modules/alarms/inc/faxcheckergeneric.py Zeile 415 zu ersetzen durch:
GenericAlarmFaxChecker().fields['error'] = GenericAlarmFaxChecker().fields.get('error', '') + "section: {} regex: {}<br>".format(section.key, section.getRegEx(**GenericAlarmFaxChecker().params)) + traceback.format_exc() + "<br>"
dann kann man wenigstens erkennen, in welchem Feld der Fehler passiert.
Mit der ersetzten Zeile im Faxchecker erhalte ich folgenden Trace:
section: time regex: Einsatznummer[:=31]\s*\s+.*\s+***\s+(?:(.*))\s+.*(?:(.*))\r*\n+.* Traceback (most recent call last): File "emonitor/modules/alarms/inc/faxchecker_generic.py", line 393, in buildAlarmFromText pattern = re.compile(section.getRegEx(**GenericAlarmFaxChecker().params), re.MULTILINE) File "/usr/lib/python2.7/re.py", line 194, in compile return _compile(pattern, flags) File "/usr/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression error: multiple repeat
Habe jetzt die Datum-Bereichsdefinition auf die Alarmzeit("Alarmiert", letzte Zeile im Fax) geändert. Jetzt kommt kein Fehler mehr.
Jedoch kann es passieren, dass dieses Zeit-Feld ggf leer ist. Ist das problematisch?
Die Änderung im Code hat geholfen: Das Trennzeichen, das in der ILS_R.cfg definiert war, ist falsch. Da gibt es mittlerweile ein update unter http://seiferta.github.io/eMonitor/config/ILS_R.cfg Damit sollte dann kein Fehler mehr kommen und das Datum auch erkannt werden. Falls das Datum nicht erkannt wird, wird das aktuelle eingesetzt.
in der Testverarbeitung der Alarme wird ein "id" Fehler geschmissen.