fronthemDevice und Umlaute

Begonnen von ares, 27 Februar 2022, 13:24:55

Vorheriges Thema - Nächstes Thema

wvhn

Super. Danke fürs Mithelfen.
Der Lösungsvorschlag steht weiter oben im Thread.

Connection lost kommt eigentlich nur, wenn das Backend die Verbindung beendet. Also muss der Websocket-Server einen Fehler wegen der falsch kodierten Zeichen schmeißen. Das ist ungewöhnlich.

Gruß
Wolfram

GammaTwin

Mit der Änderung im smartVISU-FHEM-Treiber
von
io.socket.send(unescape(encodeURIComponent(JSON.stringify(data))));
auf
io.socket.send(JSON.stringify(data));
kommen kein Texte mit Umlauten mehr an. Im FHEM-LOG steht dann folgender Fehler
ipc fronthem:127.0.0.1:46348 (ws): error malformed UTF-8 character in JSON string, at character offset 134 (before "\x{fffd}}") at ./FHEM/01_fronthem.pm line 250.

GammaTwin

Grüße,

in fronthem habe ich als converter auch "encode" und "decode". Ich weiß nicht wie diese funktionieren. Wenn ich "encode" wähle erscheint im Log.
error doing $result = fronthem::encode($param); Not enough arguments for Encode::encode at (eval 3672) line 1, near "$param)"

Kann mir jemand sagen, wofür diese Converter gedacht sind und wie diese parametriert werden?

bruece-lee

Hallo zusammen,

ich stehe gerade an dem gleichen Punkt, dass die Eingabe eines Textes mit Umlauten in ein basic.input zum abrupten Beenden der Verbindung zwischen FHEM und Smartvisu führt.

Gibt es inzwischen vielleicht einen Lösungsansatz?

Danke und Gruß,
Bruece-Lee

wvhn

#19
Laut ramann sollte die Version im develop branch des neuen Repository's mit Umlauten umgehen können (siehe https://forum.fhem.de/index.php/topic,127432.msg1234355.html#msg1234355). Mir fehlt aber das Wissen, um die Codestelle zu lokalisieren, mit der das gemacht wird. Es wäre super wenn das jemand testen / lokalisieren könnte.

Gruß
Wolfram

bruece-lee

#20
Ich habe in der 01_fronthem.pm in der Funktion fronthem_ipcRead($) aus der Version von ramann das $msg = Encode::encode('UTF-8', $msg); übernommen bevor das decode_json() ausgeführt wird. Dies für dazu, dass fronthem nicht mehr abstürzt, wenn ein Umlaut eingegeben wird und das Reading, das befüllt wird, wird korrekt in FHEM mit Umlaut dargestellt. Problem gelöst!