seiferta / eMonitor

Client-Server application with map view
Other
21 stars 14 forks source link

key not found "id" error #55

Closed seiferta closed 7 years ago

seiferta commented 7 years ago

in der Testverarbeitung der Alarme wird ein "id" Fehler geschmissen.

seiferta commented 7 years ago

Problem tritt auch bei unbekanntem Stichwort/Schlagwort auf

clfromhell commented 7 years ago

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

seiferta commented 7 years ago

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.

clfromhell commented 7 years ago

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.

seiferta commented 7 years ago

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.

clfromhell commented 7 years ago

Der erkannte Text sieht dem originalen Alarmfax fast gleich. Die Felddefinitionen sollten eigentlich auch passen.

clfromhell commented 7 years ago

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?

seiferta commented 7 years ago

Um dir helfen zu können brauche ich mehr Information:

Ohne diese Informationen kann ich nicht weiter helfen.

clfromhell commented 7 years ago

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: image

Screenshot aus dem Replace-Reiter: image

Screenshot aus dem Alarms-Reiter: image

Screenshot vom Alarm-Object: image

seiferta commented 7 years ago

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.

clfromhell commented 7 years ago

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

clfromhell commented 7 years ago

Habe jetzt die Datum-Bereichsdefinition auf die Alarmzeit("Alarmiert", letzte Zeile im Fax) geändert. Jetzt kommt kein Fehler mehr.

clfromhell commented 7 years ago

Jedoch kann es passieren, dass dieses Zeit-Feld ggf leer ist. Ist das problematisch?

seiferta commented 7 years ago

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.