Schrolli91 / BOSWatch

Python Script to process input data from rtl_fm and multimon-NG - multiple Plugin support
https://bwcc.boswatch.de
GNU General Public License v2.0
133 stars 59 forks source link

UTF-Support für CSV-Files #63

Closed JHCD closed 9 years ago

JHCD commented 9 years ago

Aktuell gibt es Probleme beim Import der csv-Files für die description.

ToDos:

JHCD commented 9 years ago
  1. Punkt erledigt (Convertierung der descript.csv in UTF-8)
JHCD commented 9 years ago
  1. eMail-Plugin umgestellt
  2. MySQL ist per default auf UTF-8, zusätzlich aber noch als connection-Param angegeben
JHCD commented 9 years ago

Das csv-File darf in ANSI/ASCII mit verschiedenen europäischen Zeichensätzen sein. Oder UTF-8 ohne BOM

Tauebenuss commented 9 years ago

27.07.2015 13:16:27 - doubleFilter [DEBUG ] Added 11451242 to doubleList 27.07.2015 13:16:28 - boswatch [INFO ] Testdata: POCSAG512: Address: 1000512 Function: 1 Alpha: BOSWatch-Test ÖÄÜß: okay 27.07.2015 13:16:28 - decoder [DEBUG ] recieved POCSAG 27.07.2015 13:16:28 - poc [DEBUG ] POCSAG Bitrate: 512 27.07.2015 13:16:28 - poc [INFO ] POCSAG512: 1000512 2 BOSWatch-Test ÖÄÜß: okay 27.07.2015 13:16:28 - descriptionList [DEBUG ] look up description lists 27.07.2015 13:16:28 - descriptionList [DEBUG ] - result for 1000512: 1000512 27.07.2015 13:16:28 - alarmHandler [DEBUG ] [ ALARM ] 27.07.2015 13:16:28 - alarmHandler [DEBUG ] call Plugin: jsonSocket 27.07.2015 13:16:28 - configHandler [DEBUG ] read [jsonSocket] from config file 27.07.2015 13:16:28 - configHandler [DEBUG ] - protocol = TCP 27.07.2015 13:16:28 - configHandler [DEBUG ] - server = 127.0.0.1 27.07.2015 13:16:28 - configHandler [DEBUG ] - port = 10501 27.07.2015 13:16:28 - jsonSocket [ERROR ] cannot initialize TCP-socket 27.07.2015 13:16:28 - jsonSocket [DEBUG ] cannot initialize TCP-socket Traceback (most recent call last): File "/usr/local/bin/BOSWatch/plugins/jsonSocket/jsonSocket.py", line 73, in run sock.connect((globals.config.get("jsonSocket", "server"), globals.config.getint("jsonSocket", "port"))) File "/usr/lib/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args) error: [Errno 111] Connection refused 27.07.2015 13:16:28 - jsonSocket [DEBUG ] close TCP-Connection 27.07.2015 13:16:28 - alarmHandler [DEBUG ] return from: jsonSocket 27.07.2015 13:16:28 - alarmHandler [DEBUG ] call Plugin: firEmergency 27.07.2015 13:16:28 - configHandler [DEBUG ] read [firEmergency] from config file 27.07.2015 13:16:28 - configHandler [DEBUG ] - firserver = 127.0.0.1 27.07.2015 13:16:28 - configHandler [DEBUG ] - firport = 5555 27.07.2015 13:16:28 - firEmergency [DEBUG ] POC to firEmergency 27.07.2015 13:16:28 - firEmergency [ERROR ] POC to firEmergency failed 27.07.2015 13:16:28 - firEmergency [DEBUG ] POC to firEmergency failed Traceback (most recent call last): File "/usr/local/bin/BOSWatch/plugins/firEmergency/firEmergency.py", line 102, in run firSocket.send(firXML) UnicodeEncodeError: 'ascii' codec can't encode characters in position 114-117: ordinal not in range(128) 27.07.2015 13:16:28 - firEmergency [DEBUG ] close firEmergency-Connection 27.07.2015 13:16:28 - alarmHandler [DEBUG ] return from: firEmergency 27.07.2015 13:16:28 - alarmHandler [DEBUG ] call Plugin: MySQL 27.07.2015 13:16:28 - MySQL [DEBUG ] reading config file 27.07.2015 13:16:28 - MySQL [DEBUG ] - dbserver = localhost 27.07.2015 13:16:28 - MySQL [DEBUG ] - dbuser = root 27.07.2015 13:16:28 - MySQL [DEBUG ] - dbpassword = [SO NICHT!] 27.07.2015 13:16:28 - MySQL [DEBUG ] - database = boswatch 27.07.2015 13:16:28 - MySQL [DEBUG ] - tablefms = bos_fms 27.07.2015 13:16:28 - MySQL [DEBUG ] - tablezvei = bos_zvei 27.07.2015 13:16:28 - MySQL [DEBUG ] - tablepoc = bos_pocsag 27.07.2015 13:16:28 - MySQL [DEBUG ] connect to MySQL 27.07.2015 13:16:28 - MySQL [DEBUG ] Insert POC 27.07.2015 13:16:28 - MySQL [DEBUG ] close MySQL 27.07.2015 13:16:28 - alarmHandler [DEBUG ] return from: MySQL 27.07.2015 13:16:28 - alarmHandler [DEBUG ] [END ALARM]

Tauebenuss commented 9 years ago

der obere Fehler ist ok, allerdings bekomme ich seit dem ich mir BOSWatch neu gezogen habe folgenden firEmergency Fehler .... habe noch keine Ahnung...

JHCD commented 9 years ago

Moin Kevin,

benutzt Du die Version aus dem Main- oder aus dem Develop-Zweig? Bzw. hast Du an der testdata.csv etwas geändert?

Eigentlich sollte das Problem nicht auftreten, da der String in utf-8 umgewandelt wird. Muss ich mir nochmal anschauen, habe nur kein firE hier.

Tritt der Fehler im normalen Betrieb auch auf?

Grüße Jens

Tauebenuss commented 9 years ago

Im normalen Betrieb konnte ich es noch nicht testen. Ist heute aus dem Develop gezogen. Die Testdata.txt habe ich nicht geändert.

Problematik bestand auch bei Meldungen ohne Sonderzeichen konnte durch ein firXML = firXML.encode('UTF-8') behoben werden. Problem besteht weiterhin bei Sonderzeichen.

Gib mir mal bitte deine EMail Adresse.

Am 27.07.2015 um 19:24 schrieb Jens Herrmann notifications@github.com:

Moin Kevin,

benutzt Du die Version aus dem Main- oder aus dem Develop-Zweig? Bzw. hast Du an der testdata.csv etwas geändert?

Eigentlich sollte das Problem nicht auftreten, da der String in utf-8 umgewandelt wird. Muss ich mir nochmal anschauen, habe nur kein firE hier.

Tritt der Fehler im normalen Betrieb auch auf?

Grüße Jens

— Reply to this email directly or view it on GitHub.

JHCD commented 9 years ago

Die Änderung macht keinen Sinn. Die Datei testdata.txt liegt als UTF-8 vor, der csv-Import der desription.csvs stellt sicher, dass das Ergebnis auch UTF-8 ist. Wenn firXML jetzt ascii meldet, gibt es ein Problem - nur welches...

Der Parsing-Error kommt hier nicht und außerdem müsste er auch bei den anderen Plugins kommen, die UTF-8 erwarten (json, eMail, MySQL)

So, ich habe das eben auch mal bei mir getesten (gegen einen dummy-socketServer)

27.07.2015 19:59:43 - boswatch        [DEBUG   ] start testing
27.07.2015 19:59:43 - boswatch        [INFO    ] Testdata: POCSAG512: Address: 1000512  Function: 1  Alpha:   BOSWatch-Test ÖÄÜß: okay
[...]
27.07.2015 19:59:43 - alarmHandler    [DEBUG   ] [  ALARM  ]
27.07.2015 19:59:43 - alarmHandler    [DEBUG   ] call Plugin: firEmergency
27.07.2015 19:59:43 - firEmergency    [DEBUG   ] POC to firEmergency
27.07.2015 19:59:43 - firEmergency    [DEBUG   ] close firEmergency-Connection
27.07.2015 19:59:43 - alarmHandler    [DEBUG   ] return from: firEmergency
27.07.2015 19:59:43 - alarmHandler    [DEBUG   ] [END ALARM]
27.07.2015 19:59:43 - doubleFilter    [DEBUG   ] Added 10005122 to doubleList
[...]

Ergebnis auf der Empfänger-Seite:

<address>1000512</address>
<status>2XX</status>
<description>1000512</description>
<message>BOSWatch-Test ÖÄÜß: okay</message>
</event>

Grüße Jens

PS: Wenn Du mir sagst, wie ich Dir eine private Nachricht schicken kann, dann gerne...