Beiträge von Bouni

    Hallo zusammen,


    ihr habt vielleicht schon bemerkt das ich nicht mehr so oft hier bin um zu helfen wie auch schon, die Zeit ist einfach zu knapp :-/

    Tut mir bitte einen Gefallen und stellt eure Frage hier im Thread und nicht als PN, ich will ungern die selben Fragen immer wieder als PMN beantworten.

    Wenn ich das hier im Thread tue haben später andere auch was davon ;)


    FwSonnenstein_Jac alarmparser [alarmparser.py:41 - decode()] ERROR - <class 'str'> Das deutet drauf hin das erwartet wird das der Input als z.B. UTF-8 codierter Text daherkommt und mittels decode() dekodiert werden soll, dies aber weil entweder das encoding falsch ist oder der Text schon ein String ist nicht dekodiert werden kann. E-Mails die nicht reine Textmails sind sind mega Sch*** zu behandeln weil es dutzende encodings gibt ...


    FFBuxZug1


    einfach eine weitere Zeile im yaml einfügen:

    Code
      - var: NeueBezeichnung
        regex: 'NeueBezeichnung (.*)\n'

    im Code dann:


    Code
     {"key": "NeueBezeichnung", "value": data.get("NeueBezeichnung")},


    Das sollte eigentlich funktionieren (Keine Gewähr ;-))

    Morgen allerseits,


    Zitat

    Nach etwas suchen hab ich dann entdeckt, dass die Leitstelle das chartset von us=ascii auf utf-8 geändert hat. Kann das einen Einfluss haben?

    Das ist schon mal Löblich von der LST, ASCII ist zwar OK, kann aber keien Umlaute, ISO-8859-1 ist so esotherischer Windows Mist, will man nicht haben, UTF-8 ist der Goldstandard.


    Das was dein Problem auslöst kann davon allerdings nicht verursacht werden, das kann lediglich dazu fügren das aus einem ä ein ä wird oder so, aber nicht so gravierend das gar nichst mehr lesbar ist.

    Moin,


    Änder mal in alarmparser.py die Zeile 8 das sie so aussieht:


    formatter = logging.Formatter('%(asctime)s.%(msecs)03d - %(name)s [%(filename)s:%(lineno)s - %(funcName)20s()] %(levelname)s - %(message)s')


    in __main__.py die Zeile 17:


    format = "%(asctime)s.%(msecs)03d - %(name)s [%(filename)s:%(lineno)s - %(funcName)20s()] %(levelname)s - %(message)s"


    ebenfalls in __main__.py die Zeile 24:


    formatter = logging.Formatter('%(asctime)s.%(msecs)03d - %(name)s [%(filename)s:%(lineno)s - %(funcName)20s()] %(levelname)s - %(message)s')


    Änder die Zeile 22 in alarmparser.py:


    LOGGER.error(msg)


    Füg nach Zeile 26 in alarmparser.py diese Zeile ein:


    Code
    except UnicodeDecodeError as e:
        LOGGER.error(e)
        pass


    Damit gibts besseren debug output und wir kommen der Sache hoffentlich auf die Spur

    aluecken

    Weisst du ob die Leitstelle dafür irgenwas "tun" musste euch das XML zur verfügung zu stellen oder kommt das zusätzlich per Mail?

    Unsere LST steubt sich nach Kräften auch nur das kleinste bisschen zusätzlich zu tun um uns das leben einfacher zu gestalten :(

    Nein, im Grunde definierst du eine variable in die das Ergebnis des entsprechenden Regex gespeichert wird.

    Hier ein Besipiel

    Code
    - var: start
      regex: 'Einsatzzeit (.*)\n'

    die Variable heisst hier start , der dazugehörige Regex ist Einsatzzeit (.*)\n

    Dieser Regex sucht nach dem Wort Einsatzzeit, gefolgt von einem Leerzeichen und packt alles danach bis zum Zeilenumbruch (\n) in die variable start.


    An deinem Beispiel Alarm von weiter Oben würdest du z.B. die Strasse haben wollen.


    Code
    - var: street
      regex: 'Straße (.*)\n'


    Das würde die variable street mit "Teststraße" befüllen.


    Und zu einem Screenshot, überall wo None steht, konnte kein Wert gefunden werden.

    Das was bei start steht ist glaube ich ein Überbleibsel von Pyrokevin112

    Der muss in seinen Mails Datum und Zeit gesondert parsen und zusammenfrickeln.


    Poste vielleicht auch mal noch dein python code, dann schau ich mir das mal an

    EssalG


    Ich habe bei uns eine Version laufen die PDFs auswertet, allerdings müssen die daten als Text im PDF stehen (so das du sie z.B. beim öffnen mit Acrobat Reader markieren kannst).

    Das war allerdings ein mittelschwerer Schmerz im A*** bis das sauber lief.

    Ich verwende dazu pdfminer

    Den code will ich so wie er jetzt ist allerdings nicht veröffentlichen weil da viele edge cases abgefangen sind die nur uns betreffen und ich die nicht für jede Feuerwehr anpassen will (die meisen Leute haben keine Programmiererfahrung und ich nicht die Zeit das für alle zu tun :-/).


    Im Grunde ist das der kern der Geschichte:



    raw_text enthält dann den Text den das PDF enthielt. Allerdings ist der manchmal ein wenig durcheinander gewürfelt und ich hab noch keine Variante der laparms gefunden die das behebt.


    Vielleicht hilf dir das ja weiter

    Morgen allerseits,


    wir starten jede Nacht die Windows 10 Maschine neu auf der unser EM läuft.

    Beim Neustart sucht der EM auch brav nach Updates.

    Heute Nacht konnte er die URL zum Updateserver aus irgendwelchen Gründen nicht auflösen (unser Provider wurde aufgekauft und da ist grade alles im umbruch, vlt. deswegen)

    Das hat er auch durch eine Fehlermeldung angezeigt:



    In den Details ist auch gut nachvollziehbar was schief gelaufen ist:



    Allerdings finde ich es sehr ungünstig den EM wegen solch eines Problems nicht zu starten!

    Sven Wärs möglich das ihr das in einem der nächsten Updates so ändert das der Fehler irgenwo geloggt wird, aber der EM trotzdem hoch kommt?


    Danke schon mal vorweg!

    Morgen ff-sgh,


    sorry für die späte Antwort. Kannst du mal ein Foto posten wie sich das Problem aktuell grade zeigt?

    Wie hast du den dein Pi installiert und konfiguriert, von Hand?


    Ich hab vor kurzem ein Ansible Playbook geschrieben und bei uns getestet, damit lässt sich alles quais automatisch installieren und ist dann auch richtig konfiguriert. Du kannst darüber auch den overscan einstellen, damit lassen sich schwarze Ränder beheben.


    https://github.com/Bouni/VNC-CEC-remote-screen


    Passt denn aktuell das Bild einigermassen?