Hallo an euch,
ich arbeite an einer Ansteuerung eines Denon Heos Amps mithilfe des Homeservers. Auf Basis des Bausteines von Grot Gebäudeautomation setze ich eine selbst entwickelte HS Logik für die Mediensteuerung ein. Ich setze den Experten 4.9 und einen Homeserver i22 ein.
Dafür generiere ich JSON commands. Diese sende und empfange ich erfolgreich mittels sockets
Vereinfacht:
Wenn ich jetzt allerdings z.B. Radiosender mit Umlauten auslesen möchte, dann werden diese nicht korrekt am iPhone / QuadClient angezeigt. Auf dem Android Tablet allerdings schon.
Es würde mich auch schon reichen die Umlaute zu ersetzen. zb 'ö' durch 'oe'.
Anzeige am Quad Client (Anmerkung: Das R bei KxxxRnten ist in Großbuchstaben, weil ich die string.title() Funktion nach der Textaufbereitung verwende - das sollte bei korrekter Darstellung eines 'ä' nicht mehr auftreten):
texte fehlanzeige.JPG
Ich habe nun schon verschiedenste Varianten zur Codierung/Dekodierung (ASCII, UTF-8, UTF16, UTF32, ISO???) oder auch Ersetzung erfolglos ausprobiert. Einiges wurde problemlos im Simulator/HS ausgeführt - einiges nicht - obwohl es in einer Python Umgebung lief.
In der Testumgebung des SDKs funktionieren manche Varianten - am realen HS/Quadclient/iPhone nicht.
texte ersetzen.JPG
Hinsichtlich des Ersetzens habe ich, neben der stupiden Ersetzung durch Umlaute und Sonderzeichen laut Konsolenausgabe, schon folgende Varianten probiert:
Auch mit der Urllib(2) habe ich bereits "unquote" ausprobiert.
Ebenfalls habe ich bereits versucht mit dem Homeserver Projektoptionen z.B. das ASCII Zeichen 0xC3 bei eingehenden HTTP Telegrammen, welches anscheinend bei einem 'ä' angezeigt wird zu entfernen. Ohne Erfolg.
Am liebsten wäre mir natürlich eine Lösung in Python.
Vielleicht hat ja von euch einer eine Idee
Schöne Grüße und Vielen Dank im Voraus
Gerald
ich arbeite an einer Ansteuerung eines Denon Heos Amps mithilfe des Homeservers. Auf Basis des Bausteines von Grot Gebäudeautomation setze ich eine selbst entwickelte HS Logik für die Mediensteuerung ein. Ich setze den Experten 4.9 und einen Homeserver i22 ein.
Dafür generiere ich JSON commands. Diese sende und empfange ich erfolgreich mittels sockets
Vereinfacht:
Code:
# create socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # connect s.connect((ip, port)) # send command s.send(command.encode('ASCII') + b'\r\n') # receive data data = s.recv(BufferSize)
Es würde mich auch schon reichen die Umlaute zu ersetzen. zb 'ö' durch 'oe'.
Anzeige am Quad Client (Anmerkung: Das R bei KxxxRnten ist in Großbuchstaben, weil ich die string.title() Funktion nach der Textaufbereitung verwende - das sollte bei korrekter Darstellung eines 'ä' nicht mehr auftreten):
texte fehlanzeige.JPG
Ich habe nun schon verschiedenste Varianten zur Codierung/Dekodierung (ASCII, UTF-8, UTF16, UTF32, ISO???) oder auch Ersetzung erfolglos ausprobiert. Einiges wurde problemlos im Simulator/HS ausgeführt - einiges nicht - obwohl es in einer Python Umgebung lief.
In der Testumgebung des SDKs funktionieren manche Varianten - am realen HS/Quadclient/iPhone nicht.
texte ersetzen.JPG
Code:
radio_station_name = radio_station_name.replace('\xe2\x94\x9c\xc3\xa4', 'Ae') radio_station_name = radio_station_name.replace('\xe2\x94\x9c\xc3\xbb', 'Oe') radio_station_name = radio_station_name.replace('\xe2\x94\x9c\xc2\xa3', 'Ue') radio_station_name = radio_station_name.replace('\xe2\x94\x9c\xc3\xb1', 'ae') radio_station_name = radio_station_name.replace('\xe2\x94\x9c\xc3\x82', 'oe') radio_station_name = radio_station_name.replace('\xe2\x94\x9c\xe2\x95\x9d', 'ue') radio_station_name = radio_station_name.replace('\xe2\x94\x9c\xc6\x92', 'ss')
Code:
#V1 #ä \xc3\x83\xc2\xa4 #ö \xc3\x83\xc2\xb6 #ü \xc3\x83\xc2\xbc #Ü \xc3\x83\xc5\x93/ #Ö \xc3\x83\xe2\x80\x93 #ß \xc3\x83\xc5\xb8/ #V2 #ä \xc3\xa4 #ö \xc3\xb6 #ü \xc3\xbc #Ä \xc3\x84 #Ö \xc3\x96 #Ü \xc3\x9c #ß \xc3\x9f #V3 #Ä \xe2\x94\x9c\xc3\xa4 #Ö \xe2\x94\x9c\xc3\xbb #Ü \xe2\x94\x9c\xc2\xa3 #ä \xe2\x94\x9c\xc3\xb1 #ö \xe2\x94\x9c\xc3\x82 #ü \xe2\x94\x9c\xe2\x95\x9d #ß \xe2\x94\x9c\xc6\x92
Ebenfalls habe ich bereits versucht mit dem Homeserver Projektoptionen z.B. das ASCII Zeichen 0xC3 bei eingehenden HTTP Telegrammen, welches anscheinend bei einem 'ä' angezeigt wird zu entfernen. Ohne Erfolg.
Am liebsten wäre mir natürlich eine Lösung in Python.
Vielleicht hat ja von euch einer eine Idee

Schöne Grüße und Vielen Dank im Voraus
Gerald
Kommentar