[Gelöst] ipc fronthem:127.0.0.1:42072 (ws): malformed UTF-8 character in JSON

Begonnen von bruece-lee, 17 April 2017, 13:56:03

Vorheriges Thema - Nächstes Thema

bruece-lee

Hallo zusammen,

ich nutze schon seit längerem Smartvisu und habe dort mittlerweile schon sehr viele Seiten erstellt. Seit heute jedoch macht Smartvisu aus heiterem Himmel Probleme und ich kann die Ursache nicht ermitteln. Ich bin dankbar für jeden Tipp, wie ich den Fehler weiter eingrenzen kann.

Ich habe zuvor weder ein FHEM-Update gemacht, noch irgendetwas an SV verändert, noch den Code einer Smartvisu Seite editiert.

Im FHEM-Log finden sich folgende Einträge:

2017.04.17 13:35:43 1: fronthem chrnuc want send but isnt a sender
2017.04.17 13:35:42 1: fronthem chrnuc want send but isnt a sender
2017.04.17 13:35:41 1: fronthem chrnuc want send but isnt a sender
2017.04.17 13:35:40 3: fronthem: client chrnuc: forced disconnect
2017.04.17 13:35:40 1: fronthem: thread ws closed for unknown reason

2017.04.17 13:35:40 1: ipc fronthem:127.0.0.1:42072 (ws): ws ipc decoding error malformed UTF-8 character in JSON string, at character offset 80 (before "\x{e4}hlen"]},"resso...") at ./FHEM/01_fronthem.pm line 733.


Kann mir jemand sagen, was das zu bedeuten hat? Wie gesagt, die Seiten haben viele Wochen nun fehlerfrei funktioniert und erst jetzt kommen plötzlich diese Meldungen.

Nach einem FHEM-restart funktioniert SV zunächst wieder korrekt. Wenn jedoch bestimmte Räume aufgerufen werden, dann "stürzt" SV ab und es werden keine GAD's mehr aktualisiert. Erst nach einem weiteren Neustart von FHEM geht es wieder. Die Räume, bei deren Aufruf der Fehler auftritt haben folgende Gemeinsamkeit:


{% import "widget_select.html" as select %}
{{ select.select_hash('sz_chr_hue_szenen', 'hue_szene.sw', {'WarmWhite sz_chr_hue_group_all_lights none none':'Warm White','Aktivieren sz_chr_hue_group_all_lights none none':'Aktivieren','Lesen sz_chr_hue_group_all_lights none none':'Lesen','Konzentration sz_chr_hue_group_all_lights none none':'Konzentration','Relax sz_chr_hue_group_all_lights none none':'Relax','BlueRain sz_chr_hue_group_all_lights none none':'Blue Rain'},'Szene auswaehlen') }}


Dieses Widget setzt HUE Szenen. Es handelt sich um eine Combobox, die am Ende den Eintrag "Szene auswaehlen" enthält. Zunächst war dies mit "ä" geschrieben, anschließend habe ich das "auswaehlen" mit "ae" geschrieben. Ich habe gedacht, dass dies ggf. zu der Meldung im FHEM-Log passt wo dieser Teil vorkommt: "\x{e4}hlen". Besserung hat die Änderung aber leider nicht gebacht.

Was ich dann noch probiert habe war ein:


update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt


Dies hat den Fehler auch nicht behoben. Dabei ist mir jedoch nur aufgefallen, dass der bekannte Fehler, dass Logausgaben nicht auskommentiert sind, wieder aufgetreten ist. Dies wäre vielleicht etwas, was im Repo einmal korrigiert werden könnte. Im FHEM-Log treten nun die altbekannten Meldungen auf:


2017.04.17 13:35:29 1: in DELETED
2017.04.17 13:35:29 1: in DELETED
2017.04.17 13:35:29 1: in DELETED
2017.04.17 13:35:29 1: in DELETED
2017.04.17 13:35:46 1: in ATTR
2017.04.17 13:35:46 1: in ATTR
2017.04.17 13:35:46 1: in ATTR
2017.04.17 13:35:46 1: in ATTR
2017.04.17 13:35:46 1: in ATTR


Wer kann mir sagen, wie ich den oben beschriebenen Fehler weiter eingrenzen kann? Bin für jeden Tipp dankbar!

Viele Grüße und noch einen schönen Ostermontag!

Bruece-Lee

herrmannj

json und utf8 sind leider natürlich Feinde ...

Es gab dazu leider Gottes auch eine Änderung am JSON perl modul (nicht fhem, perl selber).

Probiere mal die #733 so zu modifizieren:

$msg = decode_json($msg);

zu

use Encode;
$msg = JSON->new->utf8->decode(encode('UTF-8', $msg));

...

vg
Joerg

bruece-lee

Hallo Joerg,

vielen Dank für die schnelle Hilfe! Diese Änderung hat das Problem gelöst!
Wie ich auch später noch herausgefunden habe, war das beschriebene Combobox-Widget der Auslöser für das Problem. Nach der Änderung in der 01_fronthem.pm, funktioniert das Widget wieder mit dem alten Code.

Viele Grüße,
Bruece-Lee