smarthomeNG / smarthome

Device integration platform for your smart home
https://www.smarthomeNG.de
GNU General Public License v3.0
122 stars 91 forks source link

Logging problems with Umlauts #85

Closed onkelandy closed 8 years ago

onkelandy commented 8 years ago

Hi there!

When I start smarthomeNG in debug mode I get the following problem (using the wetter.com plugin):

2016-07-30 18:50:41 DEBUG item env_loc Item env.location.sunset = 2016-07-30 20:57:32.536098+02:00 via Logic None None -- item.py:update:374 --- Logging error --- Traceback (most recent call last): File "/usr/local/lib/python3.4/logging/__init.py", line 980, in emit stream.write(msg) UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 95: ordinal not in range(128) Call stack: File "/usr/local/lib/python3.4/threading.py", line 879, in _bootstrap self._bootstrap_inner() File "/usr/local/lib/python3.4/threading.py", line 911, in _bootstrap_inner self.run() File "/usr/local/lib/python3.4/threading.py", line 859, in run self._target(_self._args, *_self._kwargs) File "/usr/smarthome/lib/scheduler.py", line 344, in _worker self._task(name, obj, by, source, dest, value) File "/usr/smarthome/lib/scheduler.py", line 354, in _task exec(obj.bytecode) File "/usr/smarthome/logics/wettercom.py", line 26, in frame.text(forecast[date][2]) File "/usr/smarthome/lib/item.py", line 287, in call self.update(value, caller, source, dest) File "/usr/smarthome/lib/item.py", line 374, in update self._change_logger("Item {} = {} via {} {} {}".format(self._path, value, caller, source, dest)) Message: 'Item wetter.vorhersage.heute.frueh.text = leicht bew\xf6lkt via Logic None None' Arguments: ()

As it is a "logging error" I guess it's not part of the plugin.. How can I avoid the error? Thanks!!!

psilo909 commented 8 years ago

die logger.infos gehen bei mir einwandfrei mit Umlauten. Hast Du bei Dir mal probiert, einfach ein logger.info('äüö') in die Logik zu schreiben? ich hatte den issue mit wetter.com noch nie, daher etwas seltsam..

onkelandy commented 8 years ago

Das Problem besteht nur, wenn ich im Debug-Modus starte, also smarthome.py --debug Ansonsten auch nicht.

psilo909 commented 8 years ago

ich bin mit -d im debug modus und es geht, könnte mglw was mti deinem system zu tun haben? ist der fehler im von mir beschrieben beispiel auch reproduzierbar? oder nur mit wetter.com plugin

onkelandy commented 8 years ago

Hm, es ist also in der Tat so, dass im Daemon-Modus alles problemlos funzt - habe gerade eine Logik wie von dir geschrieben getriggert. äöü. Aber im Debug Modus kommt dann der Fehler.

Mit raspi-config habe ich de.UTF-8 als Locale eingerichtet. Wenn ich locale aufrufe, erhalte ich allerdings immer ein POSIX bei allen einträgen.

Hab jetzt mal manuell die entsprechenden Variablen gesetzt, export LC_ALL=de_DE.utf8 export LANGUAGE=de_DE.utf8

Und siehe da - kein Problem mehr!! Danke für den Hinweis. Kurze Frage noch, hast du die zwei obigen Befehle bei dir im /etc/profile drin?

psilo909 commented 8 years ago

@onkelandy auf meiner Synology mit DSM 6 stehen die hier drin:

export LC_ALL=en_US.utf8 export LANG=en_US.utf8

Bisher nie Probleme!