Beiträge von FwSonnenstein_Jac

    Ich glaube ich habe es, bzw es geht erstmal.

    den Fehler "decode()] ERROR - <class 'str'>" erhalte ich immer noch. Aber die Auswertung funktioniert und wird über die API an Connect übermittelt.

    Habe die Codezeile auskommentiert zum Testen.

    msg = msg.get_payload(decode=True)

    msg = msg.decode('utf8')

    Da hatte ich zwar schomal probiert, aber ohne Erfolg. Da hatte ich aber noch ein Sonderzeichen in der Email versteckt warum es anscheinend nicht ging.

    Ich muss alle Sonderzeichen ersätzen, sonst läuft die Auswertung nicht.

    Leider werden von der Leitstelle in den Text auch mal was anderes eingefügt als nur ä,ö,ü,ß usw.

    msg = msg.replace('»', 'Richtung')

    Will noch schauen wie ich die GPS Positionen per API noch übergeben kann. Die bekommen wir auch mit gesendet. Wenn der Einsatzort keine direkte Adresse, wie bei Landstraßen zwischen den Orten oder brennende Landmaschinen in der Feldflur ist,

    Wenn habe würde ich natürlich das Endprodukt posten.

    Hallo in die Runde,

    habe noch probiert, aber noch keine funktionfähige Lösung.

    Die E-Mail kommt anscheinend auch als utf-8.

    Der Script liest auch den Text-Teil der Email aus. Diesen lasse ich mir zum Test per print (msg) auch anzeigen. Sieht auch ganz gut aus, keine Sonderzeichen oder ähnlich. Also bevor er mit msg = msg.get_payload(decode=True) und msg = msg.decode() verarbeitet wird.

    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.

    Für die beiden Lösungsansätze würde ich das encoding erstmal ausschließen und vermute das es schon ein String ist. Habe leider keine Ahnung an welcher Stelle ich das prüfen kann und wie die "Verarbeitung" weitergeht das der Parser mit regex die Werte findet.

    Schönen Sonntag,

    die skriptlösung finde ich cool. Haben auch schon etwas experimentiert.

    Bei der Emailauswertung ist bei mir noch was faul.

    Die Originale Alarmmails sind später von securAlarmMail welche anscheinend als HTML mit base64 codiert.

    Also habe ich es erstmal mit einer einfachen textmail probiert. Das funktioniert aber nur wenn die Email keine Umlaute enthält.

    Danach im Script ein paar Zeilen ergänzt um die Umlaute zu ersetzen. Danach lief es.

    Nun an die originale Mail als html, leider geht es nicht.
    folgende Fehler:

    2021-08-15 13:40:47.156 - alarmparser [alarmparser.py:41 - decode()] ERROR - <class 'str'>

    2021-08-15 13:40:47.157 - >>>main<<< [__main__.py:41 - run()] ERROR - Fehler in Observer Zwinge aufgetreten - probiere weiter in 1 Sekunde

    Habe es auch schon mit dem Post #60 für verbesserte Fehlerinfo versucht. Leider bekomme ich Syntaxfehler wenn ich in die alarmparser.py den Code einfüge.

    Zur Hilfe habe ich ein paar Print Befehle einführt um mir die Nachricht anzusehen, da sieht das ger nicht schlecht aus. Also nix kryptisches als ich die Umlautersetzung noch nicht drin hatte.

    Scheint ab der AlarmParser.py LOGGER.error(type(msg) was schief zu laufen.

    Ist eventuell die Email zu groß / zu lang?


    Gruß aus Sonnenstein