und ich habe es bisher auch nur zweimal erklaert.
Ich lese das jetzt das dritte Mal und fühle mich weiter als DAM. Vielleicht hilft eine Anzahl konkreterer Beispiele:
RHASSPY nimmt von folgenden Schnittstellen Daten entgegen:
- Usereingaben per Attribut (kann auch Antwortsätze* enthalten)
- Usereingaben per seperater Konfigurationsfile (mögliche Antwortsätze*), eingelesen per FileRead()
- HTTP-Schnittstelle per HttpUtils_NonblockingGet
- MQTT-Schnittstelle, typischerweise über MQTT2_CLIENT-Dispatch
RHASSPY sendet an folgenden Schnittstellen Daten:
- FHEMWEB&Co über list
- HttpUtils_NonblockingGet
- MQTT (IOWrite)
Die Gegenstelle (EDIT: ein externer Serverdienst namens Rhasspy) erwartet - soweit erkennbar - Daten im UTF-8-Format. Dabei kann es sich handeln um:
- Konfigurationsdaten (typischerweise abgeleitet aus den Attributen und der Konfigurationsfile)
- Sätze für die Sprachausgabe (*gebildet aus den oben genannten "Antwortsätzen", die auch nach Auflösung von Variablen "irgendwelche" Infos enthalten können, die z.B. per ReadingsVal() oder InternalVal() abgefragt wurden)
- "technische Parameter" wie die Bezeichnung des Gerätes, an dem die Sprachausgabe erfolgen soll, eine Sitzungs-Kennung usw..
Stellt sich die Frage, an welchen Stellen dann bei "if($unicodeEncoding)" tatsächlich die Abfrage bzw. Konvertierung zu machen ist...
Übersetzt auf obige Aufzählung käme ich jetzt auf folgendes:
RHASSPY nimmt von folgenden Schnittstellen Daten entgegen:
- Usereingaben per Attribut (kann auch Antwortsätze* enthalten) => Konvertierung erledigt fhem.pl (?), man hat dann "nur" das Problem, dass die Daten dann im "falschen" Format sind (?)
- Usereingaben per seperater Konfigurationsfile (mögliche Antwortsätze*), eingelesen per FileRead() => Konvertierung erforderlich (da File bisher im UTF-8-Format verteilt wurde)
- HTTP-Schnittstelle per HttpUtils_NonblockingGet => erledigt fhem.pl
- MQTT-Schnittstelle, typischerweise über MQTT2_CLIENT-Dispatch = erledigt fhem.pl (was aber nach Auffassung eines Teils der Meinungen hier falsch ist!)
RHASSPY sendet an folgenden Schnittstellen Daten:
- FHEMWEB&Co über list => erledigt fhem.pl, hat aber uU. Probleme, wenn Daten nicht konvertiert wurden (?)
- HttpUtils_NonblockingGet => konvertiert automatisch nach UTF-8 (?)
- MQTT (IOWrite) => braucht Konvertierung
Anders gesagt: Aktion erforderlich beim Lesen von Dateien und vor MQTT2-IOWrite.
Korrekt?