°C auf den KNX Bus senden

Hallo Leute,

ggf. ist das eine Blöde Frage, aber wie kann/muss ich °C auf den KNX Bus senden?

Ich wollte die MDT Glastaster mit einigen Werten wie auch Temperaturen dynamisch mit DPT16(ASCII) auf den Statsutext beschreiben, bei „°C“ bekomme ich aber immer ein „A°C“, das „A“ mit dem Dach drauf.

Wie kann/muss ich die Einheit °C von IPS aus senden, das diese richtig angezeigt wird?

Danke u. viele Grüße,
Doc

IP-Symcon arbeitet mit UTF-8. Du möchtest also mittels ICONV erst aus UTF-8 wieder ASCI (ISO8859-15) machen und dies auf den Bus senden. Bzw. könnte man auch probieren die Daten HEX kodiert zu senden. Dabei müsste das Grad Zeichen auf B0 liegen. Also \xB0 im String (in Doppelten Anführungszeichen) anwenden.

Danke dir,

als hex-Wert senden war die Lösung.
Hatte in der ETS schon auf UTF-8 gestellt und die Aplikation neu auf den Taster geschoben weil ich dachte, das das so evtl. geht aber hatte nichts gebracht.

Den Hex Wert B0 senden scheint hier am einfachsten zu funktionieren.

Danke u. viele Grüße,
Doc

Nach dem Update auf die 6.3 bekomme ich jetzt diese Meldung.

Und zwar versuche ich in den Script ein °C auf DPT16 zu schreiben, was zuvor funktioniert hatte.

Ich hatte es jetzt so probiert, allerdings ohne erfolg.
Denke der Syntax stimmt hier nicht?

$Text2 = iconv("ISO-8859-15", "UTF-8", $Text2);

Kann mich hier noch mal jemand erleuchten …?

Danke u. viele Grüße,
Doc

Iconv einfach weglassen?
Scripte sind schon UTF8.
Michael

Nee, das wäre ja zu einfach.

Iconv hatte ich jetzt mal probiert, um das Problem zu lösen.

Vorher hatte ich das hier stehen …

$Text2 = round(GetValue(31093),1)."°C  ".round(GetValue(39188),1)."°C";

… und das führte zu der oben geposteten Meldung.

Ach die Fehlermeldung kommt ja auch beim empfangen und nicht wenn du etwas sendest.

Ist das noch der Fall?
Michael

Nein, die muss lt. MDT auf Windows Systemsprache stehen, damit die internen Temperaturen im Glastaster II hier richtig angezeigt werden, bzw. die °C.

Ich habe aber zum Testen gerade mal die ETS auf UTF-8 gestellt und die Applikation neu geladen.
Jetzt werden die °C wie erwartet wieder falsch angezeigt wie zuvor aber es kommt auch weiterhin die o.g. Meldung bzgl. Variablenwert muss UTF-8 kodiert sein in IPS.
Also die ETS Einstellung ändert nichts daran.

Also mein Log wird auch weiterhin seit der 6.3 mit dieser Meldung zugemüllt.
Wie soll/kann ich das „°C“ extra UTF-8 kodieren?

$Text2 = round(GetValue(31093),1)."°C  ".round(GetValue(39188),1)."°C";

VG,
Doc

Hast du das Zeichen kopiert oder mit der Tastatur getippt? Mal in eine UTF-8 Tabelle geguckt und das Symbol herauskopiert?

Die Zeichen wurden ganz normal getippt.
Aus einer Tabelle müsste ich mal testen.
Muss mal sehen, welches Zeichen das genau ist, welches die Meldung generiert, denke das Grad Zeichen.

Also mir gehen so langsam die Ideen aus.
Es ist definitiv das Grad Symbol „°“ welches die Meldung erzeugt.
Ich habe es mal neu getippt und auch von einer UTF-8 Tabelle aus eingefügt, ohne Erfolg.

Kann man das Symbol extra UTF-8 codieren a la \xB0C um einen Fehler auszuschließen?
Oder liegt es daran, das ich die Webkonsole benutze?

In der ETS kommt das Symbol ja richtig an …

Viele Grüße,
Doc

@paresy
Hast du vielleicht noch eine Idee, warum das „°“ Symbol nicht als UTF-8 übertragen wird oder wird hier die Fehlermeldung fälschlicherweise erzeugt?
Das sind bei mir aktuell mehrere tausend Meldungen am Tag seit der 6.3

Danke u. Grüße,
Doc

Sorry, hatte den Beitrag irgendwie übersehen. Die Werte kommen an deinem Gerät korrekt an, oder? Ich denke für das Empfangen einen Fix fertig zu haben. Kommt mit dem nächsten Update.

paresy

Ja die °C kommen sowohl in der ETS als auch am Endgerät korrekt an.
Ich warte mal auf den Fix und werde berichten.
Vielen Dank,
Doc

Mit der neuen/aktuellen Version ist die Meldung jetzt weg, scheint also zu funktionieren …

Vielen Dank.
Grüße,
Doc

Perfekt. Danke für dein schnelles Feedback!

paresy