X2B speichert und verarbeitet Werte in festen Datentypen. Tauschen Sie Werte zwischen Channels aus oder rechnen Sie damit, wandelt X2B den Wert bei Bedarf in den Zieltyp um. Diese Seite zeigt, welche Umwandlungen definiert sind.
Hinweis: Datentyp und Einheit sind zwei verschiedene Dinge. Die Typkonvertierung ändert nur die Darstellungsart eines Werts, zum Beispiel Zahl zu Text. Sie rechnet keine Einheiten um. Das ist ein eigenes Thema.
Die Datentypen
| Datentyp | Beschreibung |
|---|---|
| Boolean | Wahrheitswert true oder false. Wo eine Zahl nötig ist, gilt true als 1 und false als 0 |
| Ganzzahl | Ganze Zahl von -9223372036854775808 bis 9223372036854775807 (64 Bit). Ausserhalb des Bereichs nimmt der Wert den kleinsten bzw. grössten möglichen Wert an. In Eingabefeldern ergibt eine Zahl ausserhalb einen Fehler |
| Kommazahl | Zahl mit Nachkommastellen, ca. ±1.79·10³⁰⁸ bis ca. ±2.22·10⁻³⁰⁸ (IEEE-754 Double). Nur die ersten etwa 15 Dezimalstellen sind genau |
| Zeichenkette (Text) | 0 oder mehr Unicode-Zeichen. Sinnvoll sind kurze Texte bis etwa 100 bis 200 Zeichen. Typische Quellen sind KNX 16.000 und IoT-Geräte |
| Zeitstempel | Datum und Uhrzeit mit Millisekunden-Auflösung |
| Bitmenge (Bit-Set) | 1 bis 64 voneinander unabhängige Bits. Für Quellen, die sich nicht als Zahl, Text oder Boolean deuten lassen, zum Beispiel einige KNX-Datentypen. Begegnet Ihnen selten |
| Ungültig | Es liegt kein gültiger Wert vor, zum Beispiel nach einer Division durch 0 oder wenn eine Datenquelle den Wert als ungültig meldet |
| Kein Wert | Es liegt kein Wert vor, zum Beispiel solange noch nichts zugewiesen wurde oder wenn eine Quelle «kein Wert» meldet |
Ungültig und Kein Wert sind eigenständige Typen, die sich in der Verarbeitung gleich verhalten. Eine Konvertierung von oder zu diesen beiden Typen findet nie statt.
Konvertierungstabelle
Gelesen wird von der Zeile (Quelltyp) zur Spalte (Zieltyp). «Zahl» umfasst Ganzzahl und Kommazahl.
| Von / zu | Boolean | Zahl | Zeichenkette | Zeitstempel | Bitmenge |
|---|---|---|---|---|---|
| Boolean | unverändert | 0 oder 1 | false oder true |
bleibt Boolean | Bitmenge der Grösse 1 mit Wert 0 oder 1 |
| Zahl | true, wenn die gerundete Zahl ungleich 0 ist |
unverändert | Zahl als Text, nur der Wert, ohne Einheit | Zeitstempel. Die Zahl zählt als Millisekunden seit 1.1.1970 | Bitmenge mit 64 Bit, Zweierkomplement der Ganzzahl |
| Zeichenkette | Boolean, siehe unten | Zahl, oder bleibt Text | unverändert | Zeitstempel, oder bleibt Text | Bitmenge, oder bleibt Text |
| Zeitstempel | immer true |
Ganzzahl mit Millisekunden seit 1.1.1970 | Text im SQL-Timestamp-Format | unverändert | Bitmenge mit 64 Bit, Zweierkomplement der Millisekunden |
| Bitmenge | false, wenn alle Bits 0 sind, sonst true |
Ganzzahl (64 Bit) | Binärdarstellung der Bits als Text | Zeitstempel | unverändert |
Regeln für Text als Quelle
Die Hilfe markiert die Umwandlung aus Text mit einem Stern, ohne die Einzelheiten zu nennen. Aus dem Code ergibt sich:
- Text zu Boolean:
falsebei leerem Text, bei0und beifalse(Gross-/Kleinschreibung egal). Jeder andere Text ergibttrue. - Text zu Zahl: Lässt sich der Text als Zahl oder als Boolean lesen, wird er umgewandelt. Sonst bleibt er Text.
- Text zu Bitmenge: Nur Texte aus den Zeichen
0und1mit höchstens 64 Zeichen. Sonst bleibt er Text. - Text zu Zeitstempel: Nur wenn der Text als Datum/Uhrzeit lesbar ist. Sonst bleibt er Text.
Hinweise und Grenzen
- Ist eine Umwandlung nicht möglich oder nicht definiert, bleibt der Wert unverändert und behält seinen Typ.
- Ein Zeitstempel als Boolean ist immer
true. Das sagt nichts über den Zeitpunkt aus. - Beim Wandeln einer Kommazahl in Boolean, Zeitstempel oder Bitmenge wird zuerst gerundet.
- Beachten Sie die Typen beim Rechnen mit Formeln und beim Austausch über das Channel-Gateway.

