

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwenden Sie Formelausdrücke
<a name="formula-expressions"></a>

Mit Formelausdrücken können Sie die mathematischen Funktionen definieren, um Ihre industriellen Rohdaten zu transformieren und zu aggregieren, sodass Sie Einblicke in Ihre Operation gewinnen. Formelausdrücke kombinieren Literale, Operatoren, Funktionen und Variablen, um Daten zu verarbeiten. Weitere Informationen zur Definition von Asset-Eigenschaften, die Formelausdrücke verwenden, finden Sie unter [Daten transformieren (transformiert)](transforms.md) und[Aggregieren Sie Daten aus Immobilien und anderen Vermögenswerten (Metriken)](metrics.md). Transformationen und Metriken sind Formeleigenschaften.

**Topics**
+ [Verwenden Sie Variablen in Formelausdrücken](expression-variables.md)
+ [Verwenden Sie Literale in Formelausdrücken](expression-literals.md)
+ [Verwenden Sie Operatoren in Formelausdrücken](expression-operators.md)
+ [Verwenden Sie Konstanten in Formelausdrücken](expression-constants.md)
+ [Verwenden Sie Funktionen in Formelausdrücken](expression-functions.md)
+ [Tutorials zu Formelausdrücken](expression-tutorials.md)

# Verwenden Sie Variablen in Formelausdrücken
<a name="expression-variables"></a>

Variablen stellen AWS IoT SiteWise Asset-Eigenschaften in Formelausdrücken dar. Verwenden Sie Variablen, um Werte aus anderen Objekteigenschaften in Ihre Ausdrücke einzugeben, sodass Sie Daten aus konstanten Eigenschaften ([Attributen](attributes.md)), Rohdatenströmen ([Messungen](measurements.md)) und anderen Formeleigenschaften verarbeiten können.

Variablen können Anlageneigenschaften aus demselben Anlagenmodell oder aus zugehörigen untergeordneten Anlagenmodellen darstellen. Nur metrische Formeln können Variablen aus untergeordneten Vermögensmodellen eingeben.

Sie identifizieren Variablen in der Konsole und in der API mit unterschiedlichen Namen.
+ **AWS IoT SiteWise Konsole** — Verwenden Sie die Namen von Asset-Eigenschaften als Variablen in Ihren Ausdrücken.
+ **AWS IoT SiteWise API (AWS CLI, AWS SDKs)** — Definieren Sie Variablen mit der [ExpressionVariable](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExpressionVariable.html)Struktur, die einen Variablennamen und einen Verweis auf eine Asset-Eigenschaft erfordert. Der Variablenname kann Kleinbuchstaben, Zahlen und Unterstriche enthalten. Verwenden Sie dann Variablennamen, um in Ihren Ausdrücken auf Asset-Eigenschaften zu verweisen.

Bei Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden.

Weitere Informationen finden Sie unter [Transformationen definieren](transforms.md) und [Metriken definieren](metrics.md).

## Verwenden Sie Variablen, um auf Eigenschaften zu verweisen
<a name="variable-values"></a>

Der *Wert* einer Variablen definiert die Eigenschaft, auf die sie verweist. AWS IoT SiteWise bietet verschiedene Möglichkeiten, dies zu tun.
+ **Nach Eigenschafts-ID:** Sie können die eindeutige ID (UUID) der Immobilie angeben, um sie zu identifizieren.
+ **Nach Namen:** Wenn sich die Immobilie auf demselben Objektmodell befindet, können Sie ihren Namen im Feld Eigenschafts-ID angeben.
+ **Nach Pfad:** Ein Variablenwert kann anhand seines *Pfads auf eine Eigenschaft verweisen.* Weitere Informationen finden Sie unter [Verwenden Sie Pfade, um auf benutzerdefinierte Eigenschaften von Verbundmodellen zu verweisen](custom-composite-models.md#property-paths).

**Anmerkung**  
 Variablen werden von der AWS IoT SiteWise Konsole nicht unterstützt. Sie werden von der AWS IoT SiteWise API verwendet, einschließlich der AWS Command Line Interface AWS CLI) und AWS SDKs. 

 Eine Variable, von der Sie in einer Antwort erhalten, AWS IoT SiteWise enthält vollständige Informationen über den Wert, einschließlich der ID und des Pfads.

 Wenn Sie jedoch eine Variable an übergeben AWS IoT SiteWise (z. B. bei einem „create“ - oder „update“ -Aufruf), müssen Sie nur eine dieser Variablen angeben. Wenn Sie beispielsweise den Pfad angeben, müssen Sie die ID nicht angeben. 

# Verwenden Sie Literale in Formelausdrücken
<a name="expression-literals"></a>

AWS IoT SiteWise unterstützt die Verwendung von Literalen in Ausdrücken und Formeln. Literale sind feste Werte, die einen bestimmten Datentyp repräsentieren. In AWS IoT SiteWise können Sie Zahlen- und Zeichenkettenliterale in Formelausdrücken definieren. Literale können in verschiedenen Kontexten verwendet werden, einschließlich Datentransformationen, Alarmbedingungen und Visualisierungsberechnungen.


+ <a name="number-literal-definition"></a>**Zahlen**

  Verwenden Sie Zahlen und wissenschaftliche Schreibweise, um ganze Zahlen und Doppelzahlen zu definieren. Sie können die [E-Notation](https://en.wikipedia.org/wiki/Scientific_notation#E_notation) verwenden, um Zahlen in wissenschaftlicher Schreibweise auszudrücken.

  Beispiele: `1``2.0`,`.9`,`-23.1`,`7.89e3`, `3.4E-5`
+ <a name="string-literal-definition"></a>**Zeichenfolgen**

  Verwenden Sie die Zeichen `'` (Anführungszeichen) und `"` (doppelte Anführungszeichen), um Zeichenketten zu definieren. Der Zitattyp für Anfang und Ende muss übereinstimmen. Um ein Anführungszeichen zu maskieren, das dem entspricht, das Sie zur Deklaration einer Zeichenfolge verwenden, fügen Sie dieses Anführungszeichen zweimal ein. Dies ist das einzige Escape-Zeichen in AWS IoT SiteWise Zeichenketten.

  Beispiele: `'active'`, `"inactive"`, `'{"temp": 52}'`, `"{""temp"": ""high""}"`

# Verwenden Sie Operatoren in Formelausdrücken
<a name="expression-operators"></a>

Sie können die folgenden gängigen Operatoren in Formelausdrücken verwenden.


| Operator | Description | 
| --- | --- | 
|  `+`  |  Wenn beide Operanden Zahlen sind, addiert dieser Operator den linken und den rechten Operanden. Wenn einer der Operanden eine Zeichenfolge ist, verkettet dieser Operator den linken und den rechten Operanden als Zeichenketten. Der Ausdruck wird beispielsweise zu ausgewertet. `1 + 2 + " is three"` `"3 is three"` Die verkettete Zeichenfolge kann bis zu 1024 Zeichen enthalten. Wenn die Zeichenfolge 1024 Zeichen überschreitet, wird AWS IoT SiteWise kein Datenpunkt für diese Berechnung ausgegeben.  | 
|  `-`  |  Subtrahiert den rechten Operanden vom linken Operanden <a name="operator-numbers-only"></a>Sie können diesen Operator nur mit numerischen Operanden verwenden.  | 
|  `/`  |  Dividiert den linken Operanden durch den rechten Operanden <a name="operator-numbers-only"></a>Sie können diesen Operator nur mit numerischen Operanden verwenden.  | 
|  `*`  |  Multipliziert die linken und rechten Operanden. <a name="operator-numbers-only"></a>Sie können diesen Operator nur mit numerischen Operanden verwenden.  | 
|  `^`  |  Hebt den linken Operanden auf die Potenz des rechten Operanden (Exponentiation). <a name="operator-numbers-only"></a>Sie können diesen Operator nur mit numerischen Operanden verwenden.  | 
|  `%`  |  Gibt den Rest zurück, der beim Dividieren des linken Operanden durch den rechten Operanden entsteht. Das Ergebnis hat das gleiche Zeichen wie der linke Operand. Dieses Verhalten unterscheidet sich von der Modulo-Operation. <a name="operator-numbers-only"></a>Sie können diesen Operator nur mit numerischen Operanden verwenden.  | 
|  `x < y`  |  Gibt zurück`1`, wenn kleiner als `x` ist`y`, andernfalls`0`.  | 
|  `x > y`  |  Gibt zurück`1`, wenn größer als `x` ist`y`, andernfalls`0`.  | 
|  `x <= y`  |  Gibt zurück`1`, ob kleiner oder gleich `x` ist`y`, andernfalls`0`.  | 
|  `x >= y`  |  Gibt zurück`1`, ob größer als oder gleich `x` ist`y`, andernfalls`0`.  | 
|  `x == y`  |  Gibt zurück`1`, ob gleich `x` ist`y`, andernfalls`0`.  | 
|  `x != y`  |  Gibt zurück`1`, wenn nicht gleich `x` ist`y`, andernfalls`0`.  | 
|  `!x`  |  Gibt zurück`1`, ob als `0` (falsch) ausgewertet `x` wird, andernfalls`0`. `x`wird als falsch bewertet, wenn:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `x and y`  |  Gibt zurück`0`, ob als `0` (falsch) ausgewertet `x` wird. Andernfalls wird das ausgewertete Ergebnis von zurückgegeben`y`. `x`oder `y` wird als falsch bewertet, wenn:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `x or y`  |  Gibt zurück`1`, ob als `1` (wahr) ausgewertet `x` wird. Andernfalls wird das ausgewertete Ergebnis von zurückgegeben`y`. `x`oder `y` wird als falsch bewertet, wenn:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-operators.html)  | 
|  `not x`  |  Gibt zurück`1`, ob als `0` (falsch) ausgewertet `x` wird, andernfalls`0`. `x`wird als falsch bewertet, wenn:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-operators.html)  | 
|   `[]` `s[index]`  |  Gibt das Zeichen an einem Index `index` der Zeichenfolge zurück`s`. Dies entspricht der Indexsyntax in Python. 

**Example Beispiele**  
+ `"Hello!"[1]` gibt `e` zurück.
+ `"Hello!"[-2]` gibt `o` zurück.  | 
|   `[]` `s[start:end:step]`  |  Gibt einen Teil der Zeichenfolge zurück`s`. Dies entspricht der Slice-Syntax in Python. Dieser Operator hat die folgenden Argumente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-operators.html) Sie können das `step` Argument weglassen, um seinen Standardwert zu verwenden. Beispiel: `s[1:4:1]` ist gleichbedeutend mit `s[1:4]`. Bei den Argumenten muss es sich um ganze Zahlen oder um die Konstante [None handeln](expression-constants.md#none-definition). Wenn Sie angeben`none`, AWS IoT SiteWise wird der Standardwert für dieses Argument verwendet. 

**Example Beispiele**  
+ `"Hello!"[1:4]` gibt `"ell"` zurück.
+ `"Hello!"[:2]` gibt `"He"` zurück.
+ `"Hello!"[3:]` gibt `"lo!"` zurück.
+ `"Hello!"[:-4]` gibt `"He"` zurück.
+ `"Hello!"[::2]` gibt `"Hlo"` zurück.
+ `"Hello!"[::-1]` gibt `"!olleH"` zurück.  | 

# Verwenden Sie Konstanten in Formelausdrücken
<a name="expression-constants"></a>

In AWS IoT SiteWise können Sie Konstanten in Ihren Ausdrücken und Formeln verwenden, um feste Werte oder vordefinierte Parameter darzustellen. Konstanten können in verschiedenen Kontexten verwendet werden, z. B. bei Datentransformationen, Alarmbedingungen oder Visualisierungsberechnungen. Durch die Verwendung von Konstanten können Sie Ihre Ausdrücke vereinfachen und sie lesbarer und verwaltbarer machen.

Sie können die folgenden allgemeinen mathematischen Konstanten in Ihren Ausdrücken verwenden. Bei allen Konstanten wird nicht zwischen Groß- und Kleinschreibung unterschieden.

**Anmerkung**  
Wenn Sie eine Variable mit demselben Namen wie eine Konstante definieren, überschreibt die Variable die Konstante.


| Konstante | Description | 
| --- | --- | 
|  `pi`  |  Die Zahl pi (`π`): `3.141592653589793`  | 
|  `e`  |  Die Zahl e: `2.718281828459045`  | 
|  `true`  |  Entspricht der Zahl 1. In werden AWS IoT SiteWise Boolesche Werte in ihre Zahlenäquivalente umgewandelt.  | 
|  `false`  |  Entspricht der Zahl 0. In werden AWS IoT SiteWise Boolesche Werte in ihre Zahlenäquivalente umgewandelt.  | 
|   `none`  |  Entspricht keinem Wert. Sie können diese Konstante verwenden, um nichts als Ergebnis eines [bedingten Ausdrucks](expression-conditional-functions.md) auszugeben.  | 

# Verwenden Sie Funktionen in Formelausdrücken
<a name="expression-functions"></a>

Sie können die folgenden Funktionen verwenden, um mit Daten in Ihren Formelausdrücken zu arbeiten.

Transformationen und Metriken unterstützen verschiedene Funktionen. Die folgende Tabelle zeigt, welche Funktionstypen mit den einzelnen Typen von Formeleigenschaften kompatibel sind.

**Anmerkung**  
Sie können maximal 10 Funktionen in einen Formelausdruck aufnehmen.


| Typ der Funktion | Transformiert | Kennzahlen | 
| --- | --- | --- | 
|  [Verwenden Sie allgemeine Funktionen in Formelausdrücken](expression-common-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  | 
|  [Verwenden Sie Vergleichsfunktionen in Formelausdrücken](expression-comparison-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  | 
|  [Verwenden Sie bedingte Funktionen in Formelausdrücken](expression-conditional-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  | 
|  [Verwenden Sie Zeichenkettenfunktionen in Formelausdrücken](expression-string-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  | 
|  [Verwenden Sie Aggregationsfunktionen in Formelausdrücken](expression-aggregation-functions.md)  |  <a name="polaris-no-para"></a>![\[A red circle with the letter x for no.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-no.png) Nein  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  | 
|  [Verwenden Sie temporale Funktionen in Formelausdrücken](expression-temporal-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  | 
|  [Verwenden Sie Datums- und Uhrzeitfunktionen in Formelausdrücken](expression-date-and-time-functions.md)  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  |  <a name="polaris-yes-para"></a>![\[A green circle with a checkmark for yes.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/icon-yes.png) Ja  | 

## Syntax der Funktion
<a name="expression-function-syntax"></a>

Sie können die folgende Syntax verwenden, um Funktionen zu erstellen:

Reguläre Syntax  
Bei der regulären Syntax folgen auf den Funktionsnamen Klammern mit null oder mehr Argumenten.  
`function_name(argument1, argument2, argument3, ...)`. Funktionen mit der regulären Syntax könnten beispielsweise wie `log(x)` und aussehen`contains(s, substring)`.

Einheitliche Syntax für Funktionsaufrufe (UFCS)  
Mit UFCS können Sie Funktionen mithilfe der Syntax für Methodenaufrufen in der objektorientierten Programmierung aufrufen. Bei UFCS folgt auf das erste Argument Punkt (`.`), dann der Funktionsname und die verbleibenden Argumente (falls vorhanden) in Klammern.  
`argument1.function_name(argument2, argument3, ...)`. Funktionen mit UFCS könnten beispielsweise wie `x.log()` und `s.contains(substring)` aussehen.  
Sie können UFCS auch verwenden, um nachfolgende Funktionen zu verketten. AWS IoT SiteWise verwendet das Auswertungsergebnis der aktuellen Funktion als erstes Argument für die nächste Funktion.  
Sie können beispielsweise `message.jp('$.status').lower().contains('fail')` anstelle von verwenden`contains(lower(jp(message, '$.status')),'fail')`.  
Weitere Informationen finden Sie auf der Website der [Programmiersprache D.](https://tour.dlang.org/tour/en/gems/uniform-function-call-syntax-ufcs)

**Anmerkung**  
Sie können UFCS für alle AWS IoT SiteWise Funktionen verwenden.  
AWS IoT SiteWise Bei Funktionen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Beispielsweise können Sie `lower(s)` und `Lower(s)` synonym verwenden.

# Verwenden Sie allgemeine Funktionen in Formelausdrücken
<a name="expression-common-functions"></a>

In [Transformationen](transforms.md) und [Metriken](metrics.md) können Sie die folgenden Funktionen verwenden, um allgemeine mathematische Funktionen in Transformationen und Metriken zu berechnen.


| Funktion | Description | 
| --- | --- | 
|  `abs(x)`  |  Gibt den absoluten Wert von `x` zurück.  | 
|  `acos(x)`  |  Gibt den Arkuskosinus von `x` zurück.  | 
|  `asin(x)`  |  Gibt den Arkussinus von `x` zurück.  | 
|  `atan(x)`  |  Gibt den Arkustangens von `x` zurück.  | 
|  `cbrt(x)`  |  Gibt die Kubikwurzel von `x` zurück.  | 
|  `ceil(x)`  |  Gibt die nächste Ganzzahl zurück, die größer als `x` ist.  | 
|  `cos(x)`  |  Gibt den Kosinus von `x` zurück.  | 
|  `cosh(x)`  |  Gibt den hyperbolischen Kosinus von `x` zurück.  | 
|  `cot(x)`  |  Gibt den Kotangens von zurück. `x`  | 
|  `exp(x)`  |  Gibt `e` hoch `x` zurück.  | 
|  `expm1(x)`  |  Gibt `exp(x) - 1` zurück. Verwenden Sie diese Funktion, um kleinere Werte von genauer `exp(x) - 1` zu berechnen. `x`  | 
|  `floor(x)`  |  Gibt die nächste ganze Zahl zurück, die kleiner als `x` ist.  | 
|  `log(x)`  |  Gibt `loge` (Basis `e`) von `x` zurück.  | 
|  `log10(x)`  |  Gibt `log10` (Basis `10`) von `x` zurück.  | 
|  `log1p(x)`  |  Gibt `log(1 + x)` zurück. Verwenden Sie diese Funktion, um kleinere Werte von genauer zu berechnen `log(1 + x)``x`.  | 
|  `log2(x)`  |  Gibt `log2` (Basis `2`) von `x` zurück.  | 
|  `pow(x, y)`  |  Gibt `x` hoch `y` zurück. Das entspricht`x ^ y`.  | 
|  `signum(x)`  |  Gibt das Vorzeichen von `x` (`-1` für negative Eingaben, `0` für Nulleingaben, `+1` für positive Eingaben) zurück.  | 
|  `sin(x)`  |  Gibt den Sinus von `x` zurück.  | 
|  `sinh(x)`  |  Gibt den hyperbolischen Sinus von `x` zurück.  | 
|  `sqrt(x)`  |  Gibt die Quadratwurzel von `x` zurück.  | 
|  `tan(x)`  |  Gibt den Tangens von `x` zurück.  | 
|  `tanh(x)`  |  Gibt den hyperbolischen Tangens von `x` zurück.  | 

# Verwenden Sie Vergleichsfunktionen in Formelausdrücken
<a name="expression-comparison-functions"></a>

In [Transformationen](transforms.md) und [Metriken](metrics.md) können Sie die folgenden Vergleichsfunktionen verwenden, um zwei Werte zu vergleichen und `1` (wahr) oder `0` (falsch) auszugeben. AWS IoT SiteWise vergleicht Zeichenketten in [lexikografischer](https://en.wikipedia.org/wiki/Lexicographic_order) Reihenfolge.


| Funktion | Description | 
| --- | --- | 
|  `gt(x, y)`  |  Gibt `1` zurück, wenn `x` größer als `y` ist, andernfalls `0` (`x > y`). <a name="comparison-function-incompatible-types"></a>Diese Funktion gibt keinen Wert zurück, wenn `x` es sich um inkompatible Typen `y` handelt, z. B. eine Zahl und eine Zeichenfolge.  | 
|  `gte(x, y)`  |  Gibt `1` zurück, wenn `x` größer oder gleich `y` ist, andernfalls `0` (`x ≥ y`). <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise betrachtet die Argumente als gleich, wenn sie innerhalb einer relativen Toleranz von liegen`1E-9`. Dies verhält sich ähnlich wie die Funktion [isclose](https://docs.python.org/3/library/math.html#math.isclose) in Python. <a name="comparison-function-incompatible-types"></a>Diese Funktion gibt keinen Wert zurück, wenn `x` es sich um inkompatible Typen `y` handelt, z. B. eine Zahl und eine Zeichenfolge.  | 
|  `eq(x, y)`  |  Gibt `1` zurück, wenn `x` gleich `y` ist, andernfalls `0` (`x == y`). <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise betrachtet die Argumente als gleich, wenn sie innerhalb einer relativen Toleranz von liegen`1E-9`. Dies verhält sich ähnlich wie die Funktion [isclose](https://docs.python.org/3/library/math.html#math.isclose) in Python. <a name="comparison-function-incompatible-types"></a>Diese Funktion gibt keinen Wert zurück, wenn `x` es sich um inkompatible Typen `y` handelt, z. B. eine Zahl und eine Zeichenfolge.  | 
|  `lt(x, y)`  |  Gibt `1` zurück, wenn `x` kleiner als `y` ist, andernfalls `0` (`x < y`). <a name="comparison-function-incompatible-types"></a>Diese Funktion gibt keinen Wert zurück, wenn `x` es sich um inkompatible Typen `y` handelt, z. B. eine Zahl und eine Zeichenfolge.  | 
|  `lte(x, y)`  |  Gibt `1` zurück, wenn `x` kleiner oder gleich `y` ist, andernfalls `0` (`x ≤ y`). <a name="comparison-function-relative-tolerance"></a>AWS IoT SiteWise betrachtet die Argumente als gleich, wenn sie innerhalb einer relativen Toleranz von liegen`1E-9`. Dies verhält sich ähnlich wie die Funktion [isclose](https://docs.python.org/3/library/math.html#math.isclose) in Python. <a name="comparison-function-incompatible-types"></a>Diese Funktion gibt keinen Wert zurück, wenn `x` es sich um inkompatible Typen `y` handelt, z. B. eine Zahl und eine Zeichenfolge.  | 
|  `isnan(x)`  |  Gibt zurück`1`, ob gleich `x` ist`NaN`, andernfalls`0`. Diese Funktion gibt keinen Wert zurück, wenn `x` es sich um eine Zeichenfolge handelt.  | 

# Verwenden Sie bedingte Funktionen in Formelausdrücken
<a name="expression-conditional-functions"></a>

In [Transformationen](transforms.md) und [Metriken](metrics.md) können Sie die folgende Funktion verwenden, um eine Bedingung zu überprüfen und unterschiedliche Ergebnisse zurückzugeben, unabhängig davon, ob die Bedingung als wahr oder falsch ausgewertet wird.


| Funktion | Description | 
| --- | --- | 
|   `if(condition, result_if_true, result_if_false)`  |  Wertet das aus `condition` und gibt zurück`result_if_true`, ob die Bedingung als wahr oder `result_if_false` als wahr ausgewertet wird. `false` `condition`muss eine Zahl sein. Diese Funktion betrachtet `0` eine leere Zeichenfolge als `false` und alles andere (einschließlich`NaN`) als`true`. Boolesche Werte werden in `0` (falsch) und `1` (wahr) umgewandelt. Sie können die [Konstante none](expression-constants.md#none-definition) aus dieser Funktion zurückgeben, um die Ausgabe für eine bestimmte Bedingung zu verwerfen. Das bedeutet, dass Sie Datenpunkte herausfiltern können, die eine Bedingung nicht erfüllen. Weitere Informationen finden Sie unter [Datenpunkte filtern](expression-tutorials.md#filter-data). 

**Example Beispiele**  
+ `if(0, x, y)`gibt die Variable zurück`y`.
+ `if(5, x, y)`gibt die Variable zurück`x`.
+ `if(gt(temp, 300), x, y)`gibt die Variable zurück`x`, wenn die Variable größer als `temp` ist`300`.
+ `if(gt(temp, 300), temp, none)`gibt die Variable zurück, `temp` wenn sie größer oder gleich ist`300`, oder `none` (kein Wert), wenn sie kleiner als `temp` ist`300`. Es wird empfohlen, UFCS für verschachtelte bedingte Funktionen zu verwenden, bei denen es sich bei einem oder mehreren Argumenten um bedingte Funktionen handelt. Sie können `if(condition, result_if_true)` es verwenden, um eine Bedingung und zusätzliche Bedingungen `elif(condition, result_if_true, result_if_false)` auszuwerten. Sie können beispielsweise `if(condition1, result1_if_true).elif(condition2, result2_if_true, result2_if_false)` anstelle von verwenden`if(condition1, result1_if_true, if(condition2, result2_if_true, result2_if_false))`. Sie können auch zusätzliche bedingte Zwischenfunktionen verketten. Sie können beispielsweise mehrere `if` Anweisungen verwenden, `if(condition1, result1_if_true).elif(condition2, result2_if_true).elif(condition3, result3_if_true, result3_if_false)` anstatt sie zu verschachteln, wie `if(condition1, result1_if_true, if(condition2, result2_if_true, if(condition3, result3_if_true result3_if_false)))` z.  Sie müssen es `elif(condition, result_if_true, result_if_false)` mit UFCS verwenden.   | 

# Verwenden Sie Zeichenkettenfunktionen in Formelausdrücken
<a name="expression-string-functions"></a>

In [Transformationen](transforms.md) und [Metriken](metrics.md) können Sie die folgenden Funktionen verwenden, um mit Zeichenketten zu arbeiten. Weitere Informationen finden Sie unter [Verwenden Sie Zeichenketten in Formeln](expression-tutorials.md#use-strings-in-formulas).

**Wichtig**  
<a name="formula-output-rules"></a>Formelausdrücke können nur Doppel- oder Zeichenkettenwerte ausgeben. Verschachtelte Ausdrücke können andere Datentypen ausgeben, z. B. Zeichenfolgen, aber die Formel als Ganzes muss eine Zahl oder Zeichenfolge ergeben. Sie können die [Funktion jp](#jp-definition) verwenden, um eine Zeichenfolge in eine Zahl umzuwandeln. Der boolesche Wert muss 1 (wahr) oder 0 (falsch) sein. Weitere Informationen finden Sie unter [Undefinierte, unendliche und Überlaufwerte](expression-tutorials.md#undefined-values).


| Funktion | Description | 
| --- | --- | 
|  `len(s)`  |  Gibt die Länge der Zeichenfolge zurück. `s`  | 
|  `find(s, substring)`  |  Gibt den Index der Zeichenfolge `substring` in der Zeichenfolge zurück`s`.  | 
|  `contains(s, substring)`  |  Gibt zurück`1`, ob die Zeichenfolge die Zeichenfolge `s` enthält`substring`, andernfalls`0`.  | 
|  `upper(s)`  |  Gibt die Zeichenfolge `s` in Großbuchstaben zurück.  | 
|  `lower(s)`  |  Gibt die Zeichenfolge `s` in Kleinbuchstaben zurück.  | 
|   `jp(s, json_path)`  |  Wertet die Zeichenfolge `s` mit dem [JsonPath](https://github.com/json-path/JsonPath)Ausdruck aus `json_path` und gibt das Ergebnis zurück. Verwenden Sie diese Funktion, um Folgendes zu tun: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-string-functions.html) Um einen Zeichenkettenwert aus einer JSON-Struktur zu extrahieren und ihn als Zahl zurückzugeben, müssen Sie mehrere verschachtelte `jp` Funktionen verwenden. Die äußere `jp` Funktion extrahiert die Zeichenfolge aus der JSON-Struktur, und die innere `jp` Funktion konvertiert die Zeichenfolge in eine Zahl. Die Zeichenfolge `json_path` muss ein Zeichenfolgenliteral enthalten. Das bedeutet, dass es `json_path` sich nicht um einen Ausdruck handeln kann, der zu einer Zeichenfolge ausgewertet wird. 

**Example Beispiele**  
+ `jp('{"status":"active","value":15}', '$.value')` gibt `15` zurück.
+ `jp('{"measurement":{"reading":25,"confidence":0.95}}', '$.measurement.reading')` gibt `25` zurück.
+ `jp('[2,8,23]', '$[2]')` gibt `23` zurück.
+ `jp('{"values":[3,6,7]}', '$.values[1]')` gibt `6` zurück.
+ `jp('111', '$')` gibt `111` zurück.
+ `jp(jp('{"measurement":{"reading":25,"confidence":"0.95"}}', '$.measurement.confidence'), '$')` gibt `0.95` zurück.  | 
|  `join(s0, s1, s2, s3, ...)`  |  Gibt eine verkettete Zeichenfolge mit einem Trennzeichen zurück. Diese Funktion verwendet die erste Eingabezeichenfolge als Trennzeichen und verbindet die verbleibenden Eingabezeichenfolgen miteinander. Dies verhält sich ähnlich wie die Funktion [join (CharSequence delimiter, CharSequence... elements](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang.CharSequence...-)) in Java. 

**Example Beispiele**  
+ `join("-", "aa", "bb", "cc")`gibt zurück `aa-bb-cc`  | 
|  `format(expression: "format")` oder `format("format", expression)`  |  Gibt eine Zeichenfolge im angegebenen Format zurück. Diese Funktion ergibt `expression` einen Wert und gibt den Wert dann im angegebenen Format zurück. Dies verhält sich ähnlich wie die Funktion [format (String-Format, Object... args)](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-) in Java. Weitere Informationen zu unterstützten Formaten finden Sie unter Konvertierungen unter [Class Formatter](https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html) in der API-Spezifikation für *Java Platform, Standard Edition 7.* 

**Example Beispiele**  
+ `format(100+1: "d")`gibt eine Zeichenfolge zurück,`101`.
+ `format("The result is %d", 100+1)`gibt eine Zeichenfolge zurück,`The result is 101`.  | 
|  `f'expression'`  |  Gibt eine verkettete Zeichenfolge zurück. Mit dieser formatierten Funktion können Sie einen einfachen Ausdruck verwenden, um Zeichenketten zu verketten und zu formatieren. Diese Funktionen können verschachtelte Ausdrücke enthalten. Sie können `{}` (geschweifte Klammern) verwenden, um Ausdrücke zu interpolieren. Dies verhält sich ähnlich wie die [formatierten Zeichenkettenliterale](https://docs.python.org/3/reference/lexical_analysis.html#f-strings) in Python. 

**Example Beispiele**  
+ `f'abc{1+2: "f"}d'` gibt `abc3.000000d` zurück. Gehen Sie wie folgt vor, um diesen Beispielausdruck auszuwerten:

  1. `format(1+2: "f")`gibt eine Fließkommazahl zurück,`3.000000`.

  1. `join('', "abc", 1+2, 'd')`gibt eine Zeichenfolge zurück,`abc3.000000d`.

  Sie können den Ausdruck auch auf folgende Weise schreiben:`join('', "abc", format(1+2: "f"), 'd')`.  | 

# Verwenden Sie Aggregationsfunktionen in Formelausdrücken
<a name="expression-aggregation-functions"></a>

Nur in [Metriken](metrics.md) können Sie die folgenden Funktionen verwenden, um Eingabewerte für jedes Zeitintervall zu aggregieren und einen einzelnen Ausgabewert zu berechnen. Einige Aggregationsfunktionen können keine Daten aus zugeordneten Komponenten aggregieren.

Argumente für Aggregationsfunktionen können [Variablen](expression-variables.md), [Zahlenliterale](expression-literals.md#number-literal-definition), [zeitliche Funktionen](expression-temporal-functions.md), verschachtelte Ausdrücke oder Aggregationsfunktionen sein. Die Formel `max(latest(x), latest(y), latest(z))` verwendet eine Aggregationsfunktion als Argument und gibt den größten aktuellen Wert der `x` Eigenschaften, und zurück. `y` `z`

Sie können verschachtelte Ausdrücke in Aggregationsfunktionen verwenden. Wenn Sie verschachtelte Ausdrücke verwenden, gelten die folgenden Regeln: 
+ Jedes Argument kann nur eine Variable haben.  
**Example**  

  Zum Beispiel `avg(x*(x-1))` und `sum(x/2 )/avg(y^2 )` werden unterstützt.

  Wird beispielsweise `min(x/y)` nicht unterstützt.
+ Jedes Argument kann verschachtelte Ausdrücke mit mehreren Ebenen haben.  
**Example**  

  Wird beispielsweise unterstützt`sum(avg(x^2 )/2)`.
+ Verschiedene Argumente können unterschiedliche Variablen haben.  
**Example**  

  `sum(x/2, y*2)`Wird beispielsweise unterstützt.

**Anmerkung**  
Wenn Ihre Ausdrücke Messungen enthalten, AWS IoT SiteWise verwendet die letzten Werte im aktuellen Zeitintervall für die Messungen, um Aggregate zu berechnen.
Wenn Ihre Ausdrücke Attribute enthalten, AWS IoT SiteWise verwendet die neuesten Werte für die Attribute, um Aggregate zu berechnen.


| Funktion | Description | 
| --- | --- | 
|  `avg(x0, ..., xn)`  |  Gibt den Mittelwert der angegebenen Variablen werte über das aktuelle Zeitintervall zurück. <a name="aggregation-function-no-output"></a>Diese Funktion gibt nur dann einen Datenpunkt aus, wenn die angegebenen Variablen im aktuellen Zeitintervall mindestens einen Datenpunkt haben.  | 
|   `sum(x0, ..., xn)`  |  Gibt die Summe der angegebenen Variablenwerte über das aktuelle Zeitintervall zurück. <a name="aggregation-function-no-output"></a>Diese Funktion gibt nur dann einen Datenpunkt aus, wenn die angegebenen Variablen im aktuellen Zeitintervall mindestens einen Datenpunkt haben.  | 
|  `min(x0, ..., xn)`  |  Gibt den Mindestwert der angegebenen Variablenwerte über das aktuelle Zeitintervall zurück. <a name="aggregation-function-no-output"></a>Diese Funktion gibt nur dann einen Datenpunkt aus, wenn die angegebenen Variablen im aktuellen Zeitintervall mindestens einen Datenpunkt haben.  | 
|  `max(x0, ..., xn)`  |  Gibt den Höchstwert der angegebenen Variablenwerte über das aktuelle Zeitintervall zurück. <a name="aggregation-function-no-output"></a>Diese Funktion gibt nur dann einen Datenpunkt aus, wenn die angegebenen Variablen im aktuellen Zeitintervall mindestens einen Datenpunkt haben.  | 
|  `count(x0, ..., xn)`  |  Gibt die Gesamtanzahl der Datenpunkte für die angegebenen Variablen über das aktuelle Zeitintervall zurück. Weitere Informationen zum Zählen der Datenpunkte, die eine Bedingung erfüllen, finden Sie unter [Zählen Sie Datenpunkte, die einer Bedingung entsprechen](expression-tutorials.md#count-filtered-data). <a name="aggregation-function-always-output"></a>Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall.  | 
| `stdev(x0, ..., xn)` | Gibt die Standardabweichung der Werte der angegebenen Variablen über das aktuelle Zeitintervall zurück. Diese Funktion gibt nur dann einen Datenpunkt aus, wenn die angegebenen Variablen im aktuellen Zeitintervall mindestens einen Datenpunkt haben.  | 

# Verwenden Sie temporale Funktionen in Formelausdrücken
<a name="expression-temporal-functions"></a>

Verwenden Sie temporale Funktionen, um Werte zurückzugeben, die auf Zeitstempeln von Datenpunkten basieren.

## Verwenden Sie temporale Funktionen in Metriken
<a name="temporal-functions-in-metrics"></a>

Nur in [Metriken](metrics.md) können Sie die folgenden Funktionen verwenden, die Werte auf der Grundlage von Zeitstempeln von Datenpunkten zurückgeben.

Bei den Argumenten für temporale Funktionen muss es sich um Eigenschaften aus dem lokalen Objektmodell oder um verschachtelte Ausdrücke handeln. Das bedeutet, dass Sie keine Eigenschaften aus untergeordneten Vermögensmodellen in temporalen Funktionen verwenden können.

Sie können verschachtelte Ausdrücke in zeitlichen Funktionen verwenden. Wenn Sie verschachtelte Ausdrücke verwenden, gelten die folgenden Regeln: 
+ Jedes Argument kann nur eine Variable haben.

  `latest( t*9/5 + 32 )`Wird beispielsweise unterstützt.
+ Argumente können keine Aggregationsfunktionen sein.

  Wird beispielsweise `first( sum(x) )` nicht unterstützt.


| Funktion | Description | 
| --- | --- | 
|  `first(x)`  |  Gibt den Wert der angegebenen Variablen mit dem frühesten Zeitstempel über das aktuelle Zeitintervall hinweg zurück.  | 
|   `last(x)` |  Gibt den Wert der angegebenen Variablen mit dem spätesten Zeitstempel über das aktuelle Zeitintervall hinweg zurück.  | 
|  `earliest(x)`  |  Gibt den letzten Wert der angegebenen Variablen vor dem Beginn des aktuellen Zeitintervalls zurück. Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat. Details dazu finden Sie unter [time-range-defintion](#time-range-def).   | 
|   `latest(x)` |  Gibt den letzten Wert der angegebenen Variablen mit dem letzten Zeitstempel vor dem Ende des aktuellen Zeitintervalls zurück. Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat. Details dazu finden Sie unter [time-range-defintion](#time-range-def).  | 
|   `statetime(x)`  |  Gibt die Zeitspanne in Sekunden zurück, in der die angegebenen Variablen im aktuellen Zeitintervall positiv sind. Sie können die [Vergleichsfunktionen](expression-comparison-functions.md) verwenden, um eine Transformationseigenschaft zu erstellen, die von der `statetime` Funktion verwendet werden soll.  Wenn Sie beispielsweise eine `Idle`-Eigenschaft haben, für die `0` oder `1` gilt, können Sie die Leerlaufzeit pro Zeitintervall mit diesem Ausdruck berechnen: `IdleTime = statetime(Idle)`. Weitere Informationen finden Sie im [Beispielzustandszeitszenario](#statetime-example). Diese Funktion unterstützt keine Metrikeigenschaften als Eingabevariablen. Diese Funktion berechnet einen Datenpunkt für jedes Zeitintervall, wenn die Eingabeeigenschaft mindestens einen Datenpunkt im Verlauf hat.  | 
|   `TimeWeightedAvg(x, [interpolation])`  | Gibt den Durchschnitt der Eingabedaten zurück, gewichtet mit Zeitintervallen zwischen Punkten.Einzelheiten zur Berechnung und zu den Intervallen finden Sie unter [Parameter für zeitgewichtete Funktionen](#timeweighted-parameter).Das optionale Argument `interpolaton` muss eine Zeichenkettenkonstante sein:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-temporal-functions.html) | 
|   `TimeWeightedStDev(x, [algo])`  |  Gibt die Standardabweichung der Eingabedaten zurück, gewichtet mit Zeitintervallen zwischen Punkten.  Einzelheiten zu Berechnungen und Intervallen finden Sie unter [Parameter für zeitgewichtete Funktionen](#timeweighted-parameter).  Bei der Berechnung wird der Berechnungsalgorithmus Last Observed Carry Forward für Intervalle zwischen Datenpunkten verwendet. Bei diesem Ansatz wird der Datenpunkt als letzter beobachteter Wert bis zum Zeitstempel des nächsten Eingabedatenpunkts berechnet. Die Gewichtung wird als Zeitintervall in Sekunden zwischen Datenpunkten oder Fenstergrenzen berechnet.  Das optionale Argument `algo` muss eine Zeichenkettenkonstante sein: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-temporal-functions.html) Die folgenden Formeln werden für Berechnungen verwendet, wobei: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-temporal-functions.html) Gleichung für die Standardabweichung der Grundgesamtheit: ![\[Gleichung für die Standardabweichung der Population.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/timeweightedstdev1.png) Gleichung für die Frequenzstandardabweichung: ![\[Gleichung für die Frequenzstandardabweichung.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/timeweighted-frequency-stdev.png)  | 

Das folgende Diagramm zeigt, wie die zeitlichen Funktionen`first`,, und `last` `earliest``latest`, relativ zum aktuellen Zeitintervall AWS IoT SiteWise berechnet werden.

![\[AWS IoT SiteWise Temporale Funktionen geben Datenpunkte auf der Grundlage ihres Zeitstempels zurück.\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/images/sitewise-temporal-functions.png)
<a name="time-range-def"></a>

**Anmerkung**  
Der Zeitraum für`first(x)`, `last(x)` ist (aktueller Fensterstart, aktuelles Fensterende].
Der Zeitraum für `latest(x)` ist [Beginn der Zeit, Ende des aktuellen Fensters].
Der Zeitraum für `earliest(x)` ist [Beginn der Zeit, Ende des vorherigen Fensters].

**Parameter für zeitgewichtete Funktionen**

Bei den für das Aggregatfenster berechneten zeitgewichteten Funktionen wird Folgendes berücksichtigt:
+ Datenpunkte innerhalb des Fensters
+ Zeitintervalle zwischen Datenpunkten
+ Letzter Datenpunkt vor dem Fenster
+ Erster Datenpunkt nach dem Fenster (für einige Algorithmen)

**Bedingungen:**
+ **Schlechter Datenpunkt** — Jeder Datenpunkt mit nicht guter Qualität oder schlechtem Zahlenwert. Dies wird bei der Berechnung der Fensterergebnisse nicht berücksichtigt.
+ **Fehlerhaftes Intervall** — Das Intervall nach einem fehlerhaften Datenpunkt. Das Intervall vor dem ersten bekannten Datenpunkt wird ebenfalls als fehlerhaftes Intervall angesehen.
+ **Guter Datenpunkt** — Jeder Datenpunkt mit guter Qualität und numerischem Wert.

**Anmerkung**  
AWS IoT SiteWise verbraucht nur `GOOD` hochwertige Daten, wenn es Transformationen und Metriken berechnet. Es ignoriert alle Datenpunkte. `UNCERTAIN` `BAD`
Das Intervall vor dem ersten bekannten Datenpunkt wird als **schlechtes Intervall** angesehen. Weitere Informationen finden Sie unter [Tutorials zu Formelausdrücken](expression-tutorials.md).

Das Intervall nach dem letzten bekannten Datenpunkt dauert unbegrenzt und wirkt sich auf alle folgenden Fenster aus. Wenn ein neuer Datenpunkt eintrifft, berechnet die Funktion das Intervall neu.

Gemäß den obigen Regeln wird das aggregierte Fensterergebnis berechnet und auf Fenstergrenzen beschränkt. Standardmäßig sendet die Funktion das Fensterergebnis nur, wenn das gesamte Fenster ein **gutes Intervall aufweist**.

Wenn das **Intervall** für den Fensterwert kleiner als die Fensterlänge ist, sendet die Funktion das Fenster nicht. 

Wenn sich die Datenpunkte, die das Fensterergebnis beeinflussen, ändern, berechnet die Funktion das Fenster neu, auch wenn sich die Datenpunkte außerhalb des Fensters befinden. 

Wenn die Eingabeeigenschaft mindestens einen Datenpunkt in ihrer Historie hat und eine Berechnung eingeleitet wurde, berechnet die Funktion die zeitgewichteten Aggregatfunktionen für jedes Zeitintervall.

**Example Beispielzustandszeitszenario**  
Betrachten Sie ein Beispiel mit einer Komponente mit den folgenden Eigenschaften:  
+ `Idle`— Eine Messung, die oder ist. `0` `1` Wenn der Wert „`1`“ ist, befindet sich die Maschine im Leerlauf.
+ `Idle Time`— Eine Metrik, die anhand der Formel `statetime(Idle)` die Zeit in Sekunden berechnet, in der sich die Maschine im Leerlauf befindet, pro 1-Minuten-Intervall.
Die `Idle`-Eigenschaft verfügt über die folgenden Datenpunkte.  


|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| Zeitstempel | 14:00:00 Uhr | 14:00:30 Uhr | 14:01:15 Uhr | 14:02:45 Uhr | 14:04:00 Uhr | 
| Idle | 0 | 1 | 1 | 0 | 0 | 
AWS IoT SiteWise berechnet die `Idle Time` Eigenschaft jede Minute aus den Werten von`Idle`. Nach Abschluss dieser Berechnung verfügt die `Idle Time`-Eigenschaft über die folgenden Datenpunkte.  


|  |  |  |  |  |  | 
| --- |--- |--- |--- |--- |--- |
| Zeitstempel | 14:00:00 Uhr | 14:01:00 Uhr | 14:02:00 Uhr | 14:03:00 Uhr | 14:04:00 Uhr | 
| Idle Time | – | 30 | 60 | 45 | 0 | 
AWS IoT SiteWise führt am Ende jeder Minute die folgenden Berechnungen durch. `Idle Time`  
+ Um 14:00 Uhr (für 13:59 Uhr bis 14:00 Uhr)
  + Vor 14:00 Uhr liegen keine Daten für `Idle` vor, daher wird kein Datenpunkt berechnet.
+ Um 14:01 Uhr (für 14:00 Uhr bis 14:01 Uhr)
  + Um 14:00:00 Uhr ist die Maschine aktiv (`Idle` ist `0`).
  + Um 14:00:30 Uhr befindet sich die Maschine im Leerlauf (`Idle` ist `1`).
  + `Idle` ändert sich vor dem Ende des Intervalls um 14:01:00 Uhr nicht mehr, `Idle Time` ist also 30 Sekunden.
+ Um 14:02 Uhr (für 14:01 bis 14:02 Uhr)
  + Um 14:01:00 Uhr befindet sich die Maschine im Leerlauf (entsprechend des letzten Datenpunkts um 14:00:30 Uhr).
  + Um 14:01:15 Uhr befindet sich die Maschine noch im Leerlauf.
  + `Idle` ändert sich vor dem Ende des Intervalls um 14:02:00 Uhr nicht mehr, `Idle Time` ist also 60 Sekunden.
+ Um 14:03 Uhr (für 14:02 Uhr bis 14:03 Uhr)
  + Um 14:02:00 Uhr befindet sich die Maschine im Leerlauf (entsprechend des letzten Datenpunkts um 14:01:15 Uhr).
  + Um 14:02:45 Uhr ist die Maschine aktiv.
  + `Idle` ändert sich vor dem Ende des Intervalls um 14:03:00 Uhr nicht mehr, `Idle Time` ist also 45 Sekunden.
+ Um 14:04 Uhr (für 14:03 Uhr bis 14:04 Uhr)
  + Um 14:03:00 Uhr ist die Maschine aktiv (entsprechend des letzten Datenpunkts um 14:02:45 Uhr).
  + `Idle` ändert sich vor dem Ende des Intervalls um 14:04:00 Uhr nicht mehr, `Idle Time` ist also 0 Sekunden.

**Example Beispiel TimeWeightedAvg und TimeWeightedStDev Szenario**  
Die folgenden Tabellen enthalten Beispieleingaben und -ausgaben für diese einminütigen Fenstermetriken:`Avg(x), TimeWeightedAvg(x), TimeWeightedAvg(x, "linear"), stDev(x), timeWeightedStDev(x), timeWeightedStDev(x, 'p')`.  
Beispieleingabe für ein einminütiges Aggregatfenster:  
Diese Datenpunkte sind alle `GOOD` qualitativ hochwertig.


|  |  | 
| --- |--- |
| 03:00:00 | 4,0 | 
| 03:01:00 | 2.0 | 
| 03:01:10 | 8.0 | 
| 03:01:50 | 20.0 | 
| 03:02:00 | 14,0 | 
| 03:02:05 | 10.0 | 
| 03:02:10 | 3.0 | 
| 03:02:30 | 20.0 | 
| 03:03:30 | 0.0 | 
Ausgabe aggregierter Ergebnisse:  
Keine — Für dieses Fenster wurde kein Ergebnis generiert.


| Zeit | `Avg(x)` | `TimeWeightedAvg(x)` | `TimeWeightedAvg(X, "linear")` | `stDev(X)` | `timeWeightedStDev(x)` | `timeWeightedStDev(x, 'p')` | 
| --- | --- | --- | --- | --- | --- | --- | 
| 3:00:00 | 4 | Keine | Keine | 0 | Keine | Keine | 
| 3:01:00 | 2 | 4 | 3 | 0 | 0 | 0 | 
| 3:02:00 | 14 | 9 | 13 | 6 | 5,430610041581775 | 5,385164807134504 | 
| 3:03:00 | 11 | 13 | 12,875 | 8,54400374531753 | 7,724054437220943 | 7,659416862050705 | 
| 3:04:00 | 0 | 10 | 2.5 | 0 | 10,084389681792215 | 10 | 
| 3:05:00 | Keine | 0 | 0 | Keine | 0 | 0 | 

## Verwenden Sie temporale Funktionen in Transformationen
<a name="temporal-functions-in-transforms"></a>

Nur bei [Transformationen](transforms.md) können Sie die `pretrigger()` Funktion verwenden, um den `GOOD` Qualitätswert für eine Variable vor der Eigenschaftenaktualisierung abzurufen, die die aktuelle Transformationsberechnung ausgelöst hat.

Stellen Sie sich ein Beispiel vor AWS IoT SiteWise , bei dem ein Hersteller den Status einer Maschine überwacht. Der Hersteller verwendet die folgenden Messungen und Transformationen, um den Prozess darzustellen:
+ Eine Messung`current_state`, die 0 oder 1 sein kann.
  + Wenn sich die Maschine im Reinigungszustand befindet, `current_state` entspricht dies 1.
  + Wenn sich die Maschine im Fertigungszustand befindet, `current_state` entspricht 0.
+ Eine Transformation`cleaning_state_duration`, das entspricht`if(pretrigger(current_state) == 1, timestamp(current_state) - timestamp(pretrigger(current_state)), none)`. Diese Transformation gibt im Unix-Epochenformat in Sekunden zurück, wie lange sich die Maschine im Reinigungszustand befunden hat. Weitere Informationen finden Sie unter [Verwenden Sie bedingte Funktionen in Formelausdrücken](expression-conditional-functions.md) und zur Funktion [timestamp ()](expression-date-and-time-functions.md).

Bleibt das Gerät länger als erwartet im Reinigungszustand, überprüft der Hersteller das Gerät möglicherweise.

Sie können die `pretrigger()` Funktion auch in multivariaten Transformationen verwenden. Sie haben beispielsweise zwei Messungen mit dem Namen `x` und und `y` eine Transformation`z`, die entspricht. `x + y + pretrigger(y)` Die folgende Tabelle zeigt die Werte für `x``y`, und `z` von 9:00 Uhr bis 9:15 Uhr.

**Anmerkung**  
In diesem Beispiel wird davon ausgegangen, dass die Werte für die Messungen chronologisch eintreffen. Beispielsweise kommt der Wert `x` für 09:00 Uhr vor dem Wert `x` für 09:05 Uhr an.
Wenn die Datenpunkte für 9:05 Uhr vor den Datenpunkten für 9:00 Uhr ankommen, wird um 9:05 Uhr `z` nicht berechnet.
Wenn der Wert `x` für 9:05 Uhr vor dem Wert für 09:00 Uhr eintrifft und die Werte `x` für chronologisch `y` eintreffen, `z` entspricht `22 = 20 + 1 + 1` dies um 9:05 Uhr.


|  | 09:00 UHR | 09:05 UHR | 09:10 UHR | 09:15 UHR | 
| --- | --- | --- | --- | --- | 
|  `x`  |  10  |  20  |    |  30  | 
|  `y`  |  1  |  2  |  3  |    | 
|  `z = x + y + pretrigger(y)`  |  `y`empfängt vor 09:00 Uhr keinen Datenpunkt. Wird daher `z` nicht um 09:00 Uhr berechnet.  |  23 = 20 \$1 2 \$1 1 `pretrigger(y)`entspricht 1.  |  25 = 20 \$1 3 \$1 2 `x`empfängt keinen neuen Datenpunkt. `pretrigger(y)`entspricht 2.  |  36 = 30 \$1 3 \$1 3 `y`empfängt keinen neuen Datenpunkt. Entspricht `pretrigger(y)` also 3 um 09:15 Uhr.  | 

# Verwenden Sie Datums- und Uhrzeitfunktionen in Formelausdrücken
<a name="expression-date-and-time-functions"></a>

In [Transformationen](transforms.md) und [Metriken](metrics.md) können Sie die Datums- und Uhrzeitfunktionen auf folgende Weise verwenden:
+ Ruft den aktuellen Zeitstempel eines Datenpunkts in UTC oder in der lokalen Zeitzone ab.
+ Konstruieren Sie Zeitstempel mit Argumenten wie `year``month`, und. `day_of_month`
+ Extrahieren Sie mit dem `unix_time` Argument einen Zeitraum, z. B. ein Jahr oder einen Monat.


| Funktion | Description | 
| --- | --- | 
|  `now()`  |  Gibt das aktuelle Datum und die aktuelle Uhrzeit in Sekunden im Unix-Epochenformat zurück.  | 
|  `timestamp()`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `mktime(time_zone, year, month, day_of_month, hour, minute, second)`  |  Gibt die Eingabezeit in Sekunden im Unix-Epochenformat zurück. Für die Verwendung dieser Funktion gelten die folgenden Anforderungen: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) Für die Verwendung dieser Funktion gelten die folgenden Einschränkungen: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) Beispiele: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `localtime(unix_time, time_zone)`  |  Gibt das Jahr, den Tag des Monats, den Wochentag, den Tag des Jahres, die Stunde, die Minute oder die Sekunde in der angegebenen Zeitzone aus der Unix-Zeit zurück. Für die Verwendung dieser Funktion gelten die folgenden Anforderungen: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-date-and-time-functions.html) Beispiel für eine Antwort: `2007-12-03T10:15:30+01:00[Europe/Paris]` `localtime(unix_time, time_zone)`ist keine eigenständige Funktion. Die `sec()` Funktionen `year()` `mon()``mday`,`wday()`,`yday()`,`hour()`,`minute()`, und nehmen `localtime(unix_time, time_zone)` als Argument an. Beispiele: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot-sitewise/latest/userguide/expression-date-and-time-functions.html)  | 
|  `year(localtime(unix_time, time_zone)`  |  Gibt das Jahr von zurück`localtime(unix_time, time_zone)`.  | 
|  `mon(localtime(unix_time, time_zone))`  |  Gibt den Monat von zurück`localtime(unix_time, time_zone)`.  | 
|  `mday(localtime(unix_time, time_zone))`  |  Gibt den Tag des Monats von zurück`localtime(unix_time, time_zone)`.  | 
|  `wday(localtime(unix_time, time_zone))`  |  Gibt den Wochentag von zurück`localtime(unix_time, time_zone)`.  | 
|  `yday(localtime(unix_time, time_zone))`  |  Gibt den Tag des Jahres von zurück`localtime(unix_time, time_zone)`.  | 
|  `hour(localtime(unix_time, time_zone))`  |  Gibt die Stunde von zurück`localtime(unix_time, time_zone)`.  | 
|  `minute(localtime(unix_time, time_zone))`  |  Gibt die Minute von zurück`localtime(unix_time, time_zone)`.  | 
|  `sec(localtime(unix_time, time_zone))`  |  Gibt die Sekunde von zurück`localtime(unix_time, time_zone)`.  | 

## Unterstützte Zeitzonenformate
<a name="time-zone-expressions"></a>

Sie können das Zeitzonenargument auf folgende Weise angeben:
+ Zeitzonen-Offset — Geben Sie `'Z'` UTC oder einen Offset (`'+2'`oder`'-5'`) an.
+ Offset IDs — Kombiniert eine Abkürzung für eine Zeitzone und einen Offset. Beispiel: `'GMT+2'` und `'UTC-01:00'`. Die Abkürzung für die Zeitzone darf nur drei Buchstaben enthalten.
+ Regionsbezogen IDs — Zum Beispiel `'Etc/GMT+12'` und`'Pacific/Pago_Pago'`.

### Unterstützte Abkürzungen für Zeitzonen
<a name="spported-time-zones"></a>

Die Datums- und Uhrzeitfunktionen unterstützen die folgenden aus drei Buchstaben bestehenden Abkürzungen für Zeitzonen: 
+ BESTE ZEIT - - 05:00
+ DONNERSTAG - - 10:00
+ MST - - 07:00
+ ACT - Australien/Darwin
+ AET - Australien/Sydney
+ AGT - \$1Aires America/Argentina/Buenos
+ ART - Afrika/Kairo
+ AST - Amerika/Anchorage
+ BET - Amerika/Sao\$1Paulo
+ BST - Asien/Dhaka
+ CAT - Afrika/Harare
+ MEZ - Europa/Paris
+ CNT - Amerika/St\$1Johns
+ CST - Amerika/Chicago
+ CTT - Asia/Shanghai 
+ EAT - Afrika/Addis\$1Abeba
+ DIÄT - America/Indiana/Indianapolis
+ IST - Asien/Kalkutta
+ JST - Asien/Tokio
+ MIT - Pazifik/Apia
+ NET - Asien/Eriwan
+ NST - Pazifik/Auckland
+ PLT - Asien/Karatschi
+ PRT - Amerika/Puerto\$1Rico
+ PST - Amerika/Los\$1Angeles
+ SST - Pazifik/Guadalcanal
+ VST - Asien/Ho\$1Chi\$1Minh

### Wird regional unterstützt IDs
<a name="supported-region-based-ids"></a>

Die Datums- und Uhrzeitfunktionen unterstützen die folgenden regionsbasierten Funktionen IDs, geordnet nach ihrem Verhältnis zu UTC\$1 00:00:
+ ETC/GMT\$112 (UTC-12:00)
+ Pazifik/Pago\$1Pago (UTC- 11:00)
+ Pazifik/Samoa (UTC- 11:00)
+ Pazifik/Niue (UTC- 11:00)
+ USA/Samoa (UTC- 11:00)
+ ETC/GMT\$111 (UTC-11:00)
+ Pazifik/Midway (UTC- 11:00)
+ Pazifik/Honolulu (UTC- 10:00)
+ Pazifik/Rarotonga (UTC- 10:00)
+ Pazifik/Tahiti (UTC- 10:00)
+ Pazifik/Johnston (UTC- 10:00)
+ USA/Hawaii (UTC- 10:00)
+ SystemV V/ HST10 (UTC- 10:00)
+ ETC/GMT\$110 (UTC-10:00)
+ Pazifik/Marquesas (UTC- 09:30)
+ ETC/GMT\$19 (UTC-09:00)
+ Pazifik/Gambier (UTC- 09:00)
+ Amerika/Atka (UTC- 09:00)
+ SystemV V/ YST9 (UTC- 09:00)
+ Amerika/Adak (UTC- 09:00)
+ USA/Aleuten (UTC- 09:00)
+ ETC/GMT\$18 (UTC-08:00)
+ USA/Alaska (UTC- 08:00)
+ Amerika/Juneau (UTC- 08:00)
+ Amerika/Metlakatla (UTC- 08:00)
+ Amerika/Yakutat (UTC- 08:00)
+ Pazifik/Pitcairninseln (UTC- 08:00)
+ Amerika/Sitka (UTC- 08:00)
+ Amerika/Anchorage (UTC- 08:00)
+ SystemV V/ PST8 (UTC- 08:00)
+ Amerika/Nome (UTC- 08:00)
+ YST9SystemV/YDT (UTC- 08:00)
+ Kanada/Yukon (UTC- 07:00)
+ USA/Pazifik-Neu (UTC- 07:00)
+ ETC/GMT\$17 (UTC-07:00)
+ Vereinigte Staaten von Amerika und Arizona (UTC- 07:00)
+ Amerika/Dawson\$1Creek (UTC- 07:00)
+ Kanada/Pazifik (UTC- 07:00)
+ PST8PDT (UTC-07:00)
+ SystemV V/ MST7 (UTC- 07:00)
+ Amerika/Dawson (UTC- 07:00)
+ Mexiko/ BajaNorte (UTC- 07:00)
+ Amerika/Tijuana (UTC- 07:00)
+ Amerika/Creston (UTC- 07:00)
+ Amerika/Hermosillo (UTC- 07:00)
+ Amerika/Santa\$1Isabel (UTC- 07:00)
+ Amerika/Vancouver (UTC- 07:00)
+ Amerika/Ensenada (UTC- 07:00)
+ Amerika/Phoenix (UTC- 07:00)
+ Amerika/Whitehorse (UTC- 07:00)
+ Amerika/Fort\$1Nelson (UTC- 07:00)
+ PST8SystemV/PDT (UTC- 07:00)
+ Amerika/Los\$1Angeles (UTC- 07:00)
+ USA/Pazifik (UTC- 07:00)
+ Amerika/El\$1Salvador (UTC- 06:00)
+ Amerika/Guatemala (UTC- 06:00)
+ Amerika/Belize (UTC- 06:00)
+ Amerika/Managua (UTC- 06:00)
+ Amerika/Tegucigalpa (UTC- 06:00)
+ ETC/GMT\$16 (UTC-06:00)
+ Pazifik/Ostern (UTC- 06:00)
+ Mexiko/ BajaSur (UTC- 06:00)
+ Amerika/Regina (UTC- 06:00)
+ Amerika/Denver (UTC- 06:00)
+ Pazifik/Galapagos (UTC- 06:00)
+ Amerika/Yellowknife (UTC- 06:00)
+ Amerika/Swift\$1Current (UTC- 06:00)
+ Amerika/Inuvik (UTC- 06:00)
+ Amerika/Mazatlan (UTC- 06:00)
+ Amerika/Boise (UTC- 06:00)
+ Amerika/Costa\$1Rica (UTC- 06:00)
+ MST7MDT (UTC-06:00)
+ SystemV V/ CST6 (UTC- 06:00)
+ Amerika/Chihuahua (UTC- 06:00)
+ Amerika/Ojinaga (UTC- 06:00)
+ Chile/ EasterIsland (UTC- 06:00)
+ USA/Berg (UTC- 06:00)
+ Amerika/Edmonton (UTC- 06:00)
+ Kanada/Berg (UTC- 06:00)
+ Amerika/Cambridge\$1Bay (UTC- 06:00)
+ Navajo (UTC-06:00)
+ MST7SystemV/MDT (UTC- 06:00)
+ Kanada/Saskatchewan (UTC- 06:00)
+ Amerika/Shiprock (UTC- 06:00)
+ Amerika/Panama (UTC- 05:00)
+ Amerika/Chicago (UTC- 05:00)
+ Amerika/Eirunepe (UTC- 05:00)
+ ETC/GMT\$15 (UTC-05:00)
+ Mexiko/Allgemein (UTC- 05:00)
+ Amerika/Porto\$1Acre (UTC- 05:00)
+ Amerika/Guayaquil (UTC- 05:00)
+ Amerika/Rankin\$1Inlet (UTC- 05:00)
+ USA/Zentral (UTC- 05:00)
+ Amerika/Rainy\$1River (UTC- 05:00)
+ America/Indiana/Knox(UTC- 05:00)
+ America/North\$1Dakota/Beulah(UTC- 05:00)
+ Amerika/Monterrey (UTC- 05:00)
+ Amerika/Jamaika (UTC- 05:00)
+ Amerika/Atikokan (UTC- 05:00)
+ Amerika/Coral\$1Harbour (UTC- 05:00)
+ America/North\$1Dakota/Center(UTC- 05:00)
+ Amerika/Cayman (UTC- 05:00)
+ America/Indiana/Tell\$1Stadt (UTC- 05:00)
+ Amerika/Mexiko\$1Stadt (UTC- 05:00)
+ Amerika/Matamoros (UTC- 05:00)
+ CST6CDT (UTC-05:00)
+ Amerika/Knox\$1IN (UTC-05:00)
+ Amerika/Bogota (UTC- 05:00)
+ Amerika/Menominee (UTC- 05:00)
+ Amerika/Resolute (UTC- 05:00)
+ SystemV V/ EST5 (UTC- 05:00)
+ Kanada/Central (UTC- 05:00)
+ Brasilien/Acre (UTC- 05:00)
+ Amerika/Cancun (UTC- 05:00)
+ Amerika/Lima (UTC- 05:00)
+ Amerika/Bahia\$1Banderas (UTC- 05:00)
+ Vereinigte Staaten von Amerika und Indien (UTC- 05:00)
+ Amerika/Rio\$1Branco (UTC- 05:00)
+ CST6SystemV/CDT (UTC- 05:00)
+ Jamaika (UTC- 05:00)
+ Amerika/Mérida (UTC- 05:00)
+ America/North\$1Dakota/New\$1Salem (UTC- 05:00)
+ Amerika/Winnipeg (UTC- 05:00)
+ Amerika/Cuiaba (UTC- 04:00)
+ Amerika/Marigot (UTC- 04:00)
+ America/Indiana/Petersburg(UTC- 04:00)
+ Chile/Kontinental (UTC- 04:00)
+ Amerika/Grand\$1Turk (UTC- 04:00)
+ Kuba (UTC- 04:00)
+ ETC/GMT\$14 (UTC-04:00)
+ Amerika/Manaus (UTC- 04:00)
+ Amerika/Fort\$1Wayne (UTC- 04:00)
+ Amerika/St\$1Thomas (UTC- 04:00)
+ Amerika/Anguilla (UTC- 04:00)
+ Amerika/Havanna (UTC- 04:00)
+ USA/Michigan (UTC- 04:00)
+ Amerika/Barbados (UTC- 04:00)
+ Amerika/Louisville (UTC- 04:00)
+ Amerika/Curacao (UTC- 04:00)
+ Amerika/Guyana (UTC- 04:00)
+ Amerika/Martinique (UTC- 04:00)
+ Amerika/Puerto\$1Rico (UTC- 04:00)
+ Amerika/Port\$1of\$1Spain (UTC- 04:00)
+ SystemV V/ AST4 (UTC- 04:00)
+ America/Indiana/Vevay(UTC- 04:00)
+ America/Indiana/Vincennes(UTC- 04:00)
+ Amerika/Kralendijk (UTC- 04:00)
+ Amerika/Antigua (UTC- 04:00)
+ Amerika/Indianapolis (UTC- 04:00)
+ Amerika/Iqaluit (UTC- 04:00)
+ Amerika/St\$1Vincent (UTC- 04:00)
+ America/Kentucky/Louisville(UTC- 04:00)
+ Amerika/Dominica (UTC- 04:00)
+ Amerika/Asuncion (UTC- 04:00)
+ EST5EDT (UTC- 04:00)
+ Amerika/Nassau (UTC- 04:00)
+ America/Kentucky/Monticello(UTC- 04:00)
+ Brasilien/West (UTC- 04:00)
+ Amerika/Aruba (UTC- 04:00)
+ America/Indiana/Indianapolis(UTC- 04:00)
+ Amerika/Santiago (UTC- 04:00)
+ Amerika/La\$1Paz (UTC- 04:00)
+ Amerika/Thunder\$1Bay (UTC- 04:00)
+ America/Indiana/Marengo(UTC- 04:00)
+ Amerika/Blanc-Sablon (UTC- 04:00)
+ Amerika/Santo\$1Domingo (UTC- 04:00)
+ USA/Ost (UTC- 04:00)
+ Kanada/Eastern (UTC- 04:00)
+ Amerika/ Port-au-Prince (UTC- 04:00)
+ Amerika/St\$1Barthelemy (UTC- 04:00)
+ Amerika/Nipigon (UTC- 04:00)
+ USA/Ost-Indiana (UTC- 04:00)
+ Amerika/St\$1Lucia (UTC- 04:00)
+ Amerika/Montserrat (UTC- 04:00)
+ Amerika/Lower\$1Princes (UTC- 04:00)
+ Amerika/Detroit (UTC- 04:00)
+ Amerika/Tortola (UTC- 04:00)
+ Amerika/Porto\$1Velho (UTC- 04:00)
+ Amerika/Campo\$1Grande (UTC- 04:00)
+ Amerika/Virgin (UTC- 04:00)
+ Amerika/Pangnirtung (UTC- 04:00)
+ Amerika/Montreal (UTC- 04:00)
+ America/Indiana/Winamac(UTC- 04:00)
+ Amerika/Boa\$1Vista (UTC- 04:00)
+ Amerika/Grenada (UTC- 04:00)
+ Amerika/New\$1York (UTC- 04:00)
+ Amerika/St\$1Kitts (UTC- 04:00)
+ Amerika/Caracas (UTC- 04:00)
+ Amerika/Guadeloupe (UTC- 04:00)
+ Amerika/Toronto (UTC- 04:00)
+ EST5SystemV/EDT (UTC- 04:00)
+ America/Argentina/Catamarca(UTC- 03:00)
+ Kanada/Atlantik (UTC- 03:00)
+ America/Argentina/Cordoba(UTC- 03:00)
+ Amerika/Araguaina (UTC- 03:00)
+ America/Argentina/Salta(UTC- 03:00)
+ ETC/GMT\$13 (UTC-03:00)
+ Amerika/Montevideo (UTC- 03:00)
+ Brasilien/Ost (UTC- 03:00)
+ America/Argentina/Mendoza(UTC- 03:00)
+ America/Argentina/Rio\$1Galicien (UTC-03:00)
+ Amerika/Catamarca (UTC- 03:00)
+ Amerika/Cordoba (UTC- 03:00)
+ Amerika/Sao\$1Paulo (UTC- 03:00)
+ America/Argentina/Jujuy(UTC- 03:00)
+ Amerika/Cayenne (UTC- 03:00)
+ Amerika/Recife (UTC- 03:00)
+ Amerika/Buenos\$1Aires (UTC- 03:00)
+ Amerika/Paramaribo (UTC- 03:00)
+ Amerika/Moncton (UTC- 03:00)
+ Amerika/Mendoza (UTC- 03:00)
+ Amerika/Santarem (UTC- 03:00)
+ Atlantik/Bermuda (UTC- 03:00)
+ Amerika/Maceio (UTC- 03:00)
+ Atlantik/Stanley (UTC- 03:00)
+ Amerika/Halifax (UTC- 03:00)
+ Antarktis/Rothera (UTC- 03:00)
+ America/Argentina/San\$1Luis (UTC-03:00)
+ America/Argentina/Ushuaia(UTC-03:00)
+ Antarktis/Palmer (UTC- 03:00)
+ Amerika/Punta\$1Arenas (UTC- 03:00)
+ Amerika/Glace\$1Bay (UTC- 03:00)
+ Amerika/Fortaleza (UTC- 03:00)
+ Amerika/Thule (UTC- 03:00)
+ America/Argentina/La\$1Rioja (UTC- 03:00)
+ Amerika/Belem (UTC- 03:00)
+ Amerika/Jujuy (UTC- 03:00)
+ Amerika/Bahia (UTC- 03:00)
+ Amerika/Goose\$1Bay (UTC- 03:00)
+ America/Argentina/San\$1Juan (UTC- 03:00)
+ America/Argentina/ComodRivadavia(UTC- 03:00)
+ America/Argentina/Tucuman(UTC-03:00)
+ Amerika/Rosario (UTC- 03:00)
+ AST4SystemV/ADT (UTC- 03:00)
+ America/Argentina/Buenos\$1Aires (UTC-03:00)
+ Amerika/St\$1Johns (UTC- 02:30)
+ Kanada/Neufundland (UTC- 02:30)
+ Amerika/Miquelon (UTC- 02:00)
+ ETC/GMT\$12 (UTC-02:00)
+ Amerika/Godthab (UTC- 02:00)
+ Amerika/Noronha (UTC- 02:00)
+ Brasilien/ DeNoronha (UTC- 02:00)
+ Atlantik/Südgeorgien (UTC- 02:00)
+ ETC/GMT\$11 (UTC-01:00)
+ Atlantik/Kap Verde (UTC- 01:00)
+ Pazifik/Kiritimati (UTC\$1 14:00)
+ ETC/GMT-14 (UTC\$1 14:00)
+ Pazifik/Fakaofo (UTC\$1 13:00)
+ Pazifik/Enderbury (UTC\$1 13:00)
+ Pazifik/Apia (UTC\$1 13:00)
+ Pazifik/Tongatapu (UTC\$1 13:00)
+ ETC/GMT-13 (UTC\$1 13:00)
+ NZ-CHAT (UTC\$1 12:45)
+ Pazifik/Chatham (UTC\$1 12:45)
+ Pazifik/Kwajalein (UTC\$1 12:00)
+ Antarktis (UTC\$1 12:00) McMurdo 
+ Pazifik/Wallis (UTC\$1 12:00)
+ Pazifik/Fidschi (UTC\$1 12:00)
+ Pazifik/Funafuti (UTC\$1 12:00)
+ Pazifik/Nauru (UTC\$1 12:00)
+ Kwajalein (UTC\$1 12:00)
+ NEUSEELAND (UTC\$1 12:00)
+ Pazifik/Wake (UTC\$1 12:00)
+ Antarktis/Südpol (UTC\$1 12:00)
+ Pazifik/Tarawa (UTC\$1 12:00)
+ Pazifik/Auckland (UTC\$1 12:00)
+ Asien/Kamtschatka (UTC\$1 12:00)
+ ETC/GMT-12 (UTC\$1 12:00)
+ Asien/Anadyr (UTC\$1 12:00)
+ Pazifik/Majuro (UTC\$1 12:00)
+ Pazifik/Ponape (UTC\$1 11:00)
+ Pazifik/Bougainville (UTC\$1 11:00)
+ Antarktis/Macquarie (UTC\$1 11:00)
+ Pazifik/Pohnpei (UTC\$1 11:00)
+ Pazifik/Efate (UTC\$1 11:00)
+ Pazifik/Norfolk (UTC\$1 11:00)
+ Asien/Magadan (UTC\$1 11:00)
+ Pazifik/Kosrae (UTC\$1 11:00)
+ Asien/Sachalin (UTC\$1 11:00)
+ Pazifik/Noumea (UTC\$1 11:00)
+ ETC/GMT-11 (UTC\$1 11:00)
+ Asien/Srednekolymsk (UTC\$1 11:00)
+ Pazifik/Guadalcanal (UTC\$1 11:00)
+ Australien/Lord\$1Howe (UTC\$1 10:30)
+ Australien/LHI (UTC\$1 10:30)
+ Australien/Hobart (UTC\$1 10:00)
+ Pazifik/Yap (UTC\$1 10:00)
+ Australien/Tasmanien (UTC\$1 10:00)
+ Pazifik/Port\$1Moresby (UTC\$1 10:00)
+ Australien/ACT (UTC\$1 10:00)
+ Australien/Victoria (UTC\$1 10:00)
+ Pazifik/Chuuk (UTC\$1 10:00)
+ Australien/Queensland (UTC\$1 10:00)
+ Australien/Canberra (UTC\$1 10:00)
+ Australien/Currie (UTC\$1 10:00)
+ Pazifik/Guam (UTC\$1 10:00)
+ Pazifik/Truk (UTC\$1 10:00)
+ Australien/NSW (UTC\$1 10:00)
+ Asien/Wladiwostok (UTC\$1 10:00)
+ Pazifik/Saipan (UTC\$1 10:00)
+ Antarktis/Dumont (UTC\$1 10:00DUrville )
+ Australien/Sydney (UTC\$1 10:00)
+ Australien/Brisbane (UTC\$1 10:00)
+ ETC/GMT-10 (UTC\$1 10:00)
+ Asien/Ust-Nera (UTC\$1 10:00)
+ Australien/Melbourne (UTC\$1 10:00)
+ Australien/Lindeman (UTC\$1 10:00)
+ Australien/Norden (UTC\$1 09:30)
+ Australien/Yancowinna (UTC\$1 09:30)
+ Australien/Adelaide (UTC\$1 09:30)
+ Australien/Broken\$1Hill (UTC\$1 09:30)
+ Australien/Süden (UTC\$1 09:30)
+ Australien/Darwin (UTC\$1 09:30)
+ ETC/GMT-9 (UTC\$1 09:00)
+ Pazifik/Palau (UTC\$1 09:00)
+ Asien/Chita (UTC\$1 09:00)
+ Asien/Dili (UTC\$1 09:00)
+ Asien/Jayapura (UTC\$1 09:00)
+ Asien/Jakutsk (UTC\$1 09:00)
+ Asien/Pjöngjang (UTC\$1 09:00)
+ ROCK (UTC\$1 09:00)
+ Asien/Seoul (UTC\$1 09:00)
+ Asien/Khandyga (UTC\$1 09:00)
+ Japan (UTC\$1 09:00)
+ Asien/Tokio (UTC\$1 09:00)
+ Australien/Eucla (UTC\$1 08:45)
+ Asien/Kuching (UTC\$1 08:00)
+ Asien/Chungking (UTC\$1 08:00)
+ ETC/GMT-8 (UTC\$1 08:00)
+ Australien/Perth (UTC\$1 08:00)
+ Asien/Macau (UTC\$1 08:00)
+ Asien/Macau (UTC\$1 08:00)
+ Asien/Choibalsan (UTC\$1 08:00)
+ Asien/Shanghai (UTC\$1 08:00)
+ Antarktis/Casey (UTC\$1 08:00)
+ Asien/Ulan\$1Bator (UTC\$1 08:00)
+ Asien/Chongqing (UTC\$1 08:00)
+ Asien/Ulaanbaatar (UTC\$1 08:00)
+ Asien/Taipeh (UTC\$1 08:00)
+ Asien/Manila (UTC\$1 08:00)
+ PRC (UTC\$1 08:00)
+ Asien/Ujung\$1Pandang (UTC\$1 08:00)
+ Asien/Harbin (UTC\$1 08:00)
+ Singapur (UTC\$1 08:00)
+ Asien/Brunei (UTC\$1 08:00)
+ Australien/West (UTC\$1 08:00)
+ Asien/Hong\$1Kong (UTC\$1 08:00)
+ Asien/Makassar (UTC\$1 08:00)
+ Hongkong (UTC\$1 08:00)
+ Asien/Kuala\$1Lumpur (UTC\$1 08:00)
+ Asien/Irkutsk (UTC\$1 08:00)
+ Asien/Singapur (UTC\$1 08:00)
+ Asien/Pontianak (UTC\$1 07:00)
+ ETC/GMT-7 (UTC\$1 07:00)
+ Asien/Phnom\$1Penh (UTC\$1 07:00)
+ Asien/Nowosibirsk (UTC\$1 07:00)
+ Antarktis/Davis (UTC\$1 07:00)
+ Asien/Tomsk (UTC\$1 07:00)
+ Asien/Jakarta (UTC\$1 07:00)
+ Asien/Barnaul (UTC\$1 07:00)
+ Indisch/Weihnachten (UTC\$1 07:00)
+ Asien/Ho\$1Chi\$1Minh (UTC\$1 07:00)
+ Asien/Hovd (UTC\$1 07:00)
+ Asien/Bangkok (UTC\$1 07:00)
+ Asien/Vientiane (UTC\$1 07:00)
+ Asien/Nowokusnezk (UTC\$1 07:00)
+ Asien/Krasnojarsk (UTC\$1 07:00)
+ Asien/Saigon (UTC\$1 07:00)
+ Asien/Rangun (UTC\$1 06:30)
+ Asien/Rangun (UTC\$1 06:30)
+ Indisch/Cocos (UTC\$1 06:30)
+ Asien/Kashgar (UTC\$1 06:00)
+ ETC/GMT-6 (UTC\$1 06:00)
+ Asien/Almaty (UTC\$1 06:00)
+ Asien/Dacca (UTC\$1 06:00)
+ Asien/Omsk (UTC\$1 06:00)
+ Asien/Dhaka (UTC\$1 06:00)
+ Indisch/Chagos (UTC\$1 06:00)
+ Asien/Qyzylorda (UTC\$1 06:00)
+ Asien/Bischkek (UTC\$1 06:00)
+ Antarktis/Wostok (UTC\$1 06:00)
+ Asien/Urumqi (UTC\$1 06:00)
+ Asien/Thimbu (UTC\$1 06:00)
+ Asien/Thimphu (UTC\$1 06:00)
+ Asien/Kathmandu (UTC\$1 05:45)
+ Asien/Katmandu (UTC\$1 05:45)
+ Asien/Kalkutta (UTC\$1 05:30)
+ Asien/Colombo (UTC\$1 05:30)
+ Asien/Kalkutta (UTC\$1 05:30)
+ Asien/Aktau (UTC\$1 05:00)
+ ETC/GMT-5 (UTC\$1 05:00)
+ Asien/Samarkand (UTC\$1 05:00)
+ Asien/Karatschi (UTC\$1 05:00)
+ Asien/Jekaterinburg (UTC\$1 05:00)
+ Asien/Duschanbe (UTC\$1 05:00)
+ Indisch/Malediven (UTC\$1 05:00)
+ Asien/Oral (UTC\$1 05:00)
+ Asien/Taschkent (UTC\$1 05:00)
+ Antarktis/Mawson (UTC\$1 05:00)
+ Asien/Aktobe (UTC\$1 05:00)
+ Asien/Ashkhabad (UTC\$1 05:00)
+ Asien/Aschgabat (UTC\$1 05:00)
+ Asien/Atyrau (UTC\$1 05:00)
+ Indisch/Kerguelen (UTC\$1 05:00)
+ Iran (UTC\$1 04:30)
+ Asien/Teheran (UTC\$1 04:30)
+ Asien/Kabul (UTC\$1 04:30)
+ Asien/Eriwan (UTC\$1 04:00)
+ ETC/GMT-4 (UTC\$1 04:00)
+ ETC/GMT-4 (UTC\$1 04:00)
+ Asien/Dubai (UTC\$1 04:00)
+ Indisch/Reunion (UTC\$1 04:00)
+ Europa/Saratow (UTC\$1 04:00)
+ Europa/Samara (UTC\$1 04:00)
+ Indisch/Mahe (UTC\$1 04:00)
+ Asien/Baku (UTC\$1 04:00)
+ Asien/Muscat (UTC\$1 04:00)
+ Europa/Wolgograd (UTC\$1 04:00)
+ Europa/Astrachan (UTC\$1 04:00)
+ Asien/Tiflis (UTC\$1 04:00)
+ Europa/Uljanowsk (UTC\$1 04:00)
+ Asien/Aden (UTC\$1 03:00)
+ Afrika/Nairobi (UTC\$1 03:00)
+ Europa/Istanbul (UTC\$1 03:00)
+ ETC/GMT-3 (UTC\$1 03:00)
+ Europa/Zaporozhye (UTC\$1 03:00)
+ Israel (UTC\$1 03:00)
+ Indisch/Komoren (UTC\$1 03:00)
+ Antarktis/Syowa (UTC\$1 03:00)
+ Afrika/Mogadischu (UTC\$1 03:00)
+ Europa/Bukarest (UTC\$1 03:00)
+ Afrika/Asmera (UTC\$1 03:00)
+ Europa/Mariehamn (UTC\$1 03:00)
+ Asien/Istanbul (UTC\$1 03:00)
+ Europa/Tiraspol (UTC\$1 03:00)
+ Europa/Moskau (UTC\$1 03:00)
+ Europa/Chisinau (UTC\$1 03:00)
+ Europa/Helsinki (UTC\$1 03:00)
+ Asien/Beirut (UTC\$1 03:00)
+ Asien/Tel\$1Aviv (UTC\$1 03:00)
+ Afrika/Dschibuti (UTC\$1 03:00)
+ Europa/Simferopol (UTC\$1 03:00)
+ Europa/Sofia (UTC\$1 03:00)
+ Asien/Gaza (UTC\$1 03:00)
+ Afrika/Asmara (UTC\$1 03:00)
+ Europa/Riga (UTC\$1 03:00)
+ Asien/Bagdad (UTC\$1 03:00)
+ Asien/Damaskus (UTC\$1 03:00)
+ Afrika/Dar\$1es\$1Salaam (UTC\$1 03:00)
+ Afrika/Addis\$1Abeba (UTC\$1 03:00)
+ Europa/Uzhgorod (UTC\$1 03:00)
+ Asien/Jerusalem (UTC\$1 03:00)
+ Asien/Riad (UTC\$1 03:00)
+ Asien/Kuwait (UTC\$1 03:00)
+ Europa/Kirow (UTC\$1 03:00)
+ Afrika/Kampala (UTC\$1 03:00)
+ Europa/Minsk (UTC\$1 03:00)
+ Asien/Katar (UTC\$1 03:00)
+ Europa/Kiew (UTC\$1 03:00)
+ Asien/Bahrain (UTC\$1 03:00)
+ Europa/Vilnius (UTC\$1 03:00)
+ Indien/Antananarivo (UTC\$1 03:00)
+ Indisch/Mayotte (UTC\$1 03:00)
+ Europa/Tallinn (UTC\$1 03:00)
+ Türkei (UTC\$1 03:00)
+ Afrika/Juba (UTC\$1 03:00)
+ Asien/Nikosia (UTC\$1 03:00)
+ Asien/Famagusta (UTC\$1 03:00)
+ J-SO (UTC\$1 03:00)
+ FÜSSE (UTC\$1 03:00)
+ Asien/Hebron (UTC\$1 03:00)
+ Asien/Amman (UTC\$1 03:00)
+ Europa/Nikosia (UTC\$1 03:00)
+ Europa/Athen (UTC\$1 03:00)
+ Afrika/Kairo (UTC\$1 02:00)
+ Afrika/Mbabane (UTC\$1 02:00)
+ Europa/Brüssel (UTC\$1 02:00)
+ Europa/Warschau (UTC\$1 02:00)
+ MEZ (UTC\$1 02:00)
+ Europa/Luxemburg (UTC\$1 02:00)
+ ETC/GMT-2 (UTC\$1 02:00)
+ Libyen (UTC\$1 02:00)
+ Afrika/Kigali (UTC\$1 02:00)
+ Afrika/Tripolis (UTC\$1 02:00)
+ Europa/Kaliningrad (UTC\$1 02:00)
+ Afrika/Windhoek (UTC\$1 02:00)
+ Europa/Malta (UTC\$1 02:00)
+ Europa/Busingen (UTC\$1 02:00)
+ 
+ Europa/Skopje (UTC\$1 02:00)
+ Europa/Sarajevo (UTC\$1 02:00)
+ Europa/Rom (UTC\$1 02:00)
+ Europa/Zürich (UTC\$1 02:00)
+ Europa/Gibraltar (UTC\$1 02:00)
+ Afrika/Lubumbashi (UTC\$1 02:00)
+ Europa/Vaduz (UTC\$1 02:00)
+ Europa/Ljubljana (UTC\$1 02:00)
+ Europa/Berlin (UTC\$1 02:00)
+ Europa/Stockholm (UTC\$1 02:00)
+ Europa/Budapest (UTC\$1 02:00)
+ Europa/Zagreb (UTC\$1 02:00)
+ Europa/Paris (UTC\$1 02:00)
+ Afrika/Ceuta (UTC\$1 02:00)
+ Europa/Prag (UTC\$1 02:00)
+ Antarktis/Troll (UTC\$1 02:00)
+ Afrika/Gaborone (UTC\$1 02:00)
+ Europa/Kopenhagen (UTC\$1 02:00)
+ Europa/Wien (UTC\$1 02:00)
+ Europa/Tirane (UTC\$1 02:00)
+ GETROFFEN (UTC\$1 02:00)
+ Europa/Amsterdam (UTC\$1 02:00)
+ Afrika/Maputo (UTC\$1 02:00)
+ Europa/San\$1Marino (UTC\$1 02:00)
+ Polen (UTC\$1 02:00)
+ Europa/Andorra (UTC\$1 02:00)
+ Europa/Oslo (UTC\$1 02:00)
+ Europa/Podgorica (UTC\$1 02:00)
+ Afrika/Bujumbura (UTC\$1 02:00)
+ Atlantik/Jan\$1Mayen (UTC\$1 02:00)
+ Afrika/Maseru (UTC\$1 02:00)
+ Europa/Madrid (UTC\$1 02:00)
+ Afrika/Blantyre (UTC\$1 02:00)
+ Afrika/Lusaka (UTC\$1 02:00)
+ Afrika/Harare (UTC\$1 02:00)
+ Afrika/Khartum (UTC\$1 02:00)
+ Afrika/Johannesburg (UTC\$1 02:00)
+ Europa/Belgrad (UTC\$1 02:00)
+ Europa/Bratislava (UTC\$1 02:00)
+ Arktis/Longyearbyen (UTC\$1 02:00)
+ Ägypten (UTC\$1 02:00)
+ Europa/Vatikan (UTC\$1 02:00)
+ Europa/Monaco (UTC\$1 02:00)
+ Europa/London (UTC\$1 01:00)
+ ETC/GMT-1 (UTC\$1 01:00)
+ Europa/Jersey (UTC\$1 01:00)
+ Europa/Guernsey (UTC\$1 01:00)
+ Europa/Isle\$1of\$1Man (UTC\$1 01:00)
+ Afrika/Tunis (UTC\$1 01:00)
+ Afrika/Malabo (UTC\$1 01:00)
+ GB-Bier (UTC\$1 01:00)
+ Afrika/Lagos (UTC\$1 01:00)
+ Afrika/Algier (UTC\$1 01:00)
+ GB (UTC\$1 01:00)
+ Portugal (UTC\$1 01:00)
+ Afrika/Sao\$1Tome (UTC\$1 01:00)
+ Afrika/Ndjamena (UTC\$1 01:00)
+ Atlantik/Färöer (UTC\$1 01:00)
+ Irland (UTC\$1 01:00)
+ Atlantik/Färöer (UTC\$1 01:00)
+ Europa/Dublin (UTC\$1 01:00)
+ Afrika/Libreville (UTC\$1 01:00)
+ Afrika/El\$1Aaiun (UTC\$1 01:00)
+ Afrika/El\$1Aaiun (UTC\$1 01:00)
+ Afrika/Douala (UTC\$1 01:00)
+ Afrika/Brazzaville (UTC\$1 01:00)
+ Afrika/Porto Novo (UTC\$1 01:00)
+ Atlantik/Madeira (UTC\$1 01:00)
+ Europa/Lissabon (UTC\$1 01:00)
+ Atlantik/Kanarische Inseln (UTC\$1 01:00)
+ Afrika/Casablanca (UTC\$1 01:00)
+ Europa/Belfast (UTC\$1 01:00)
+ Afrika/Luanda (UTC\$1 01:00)
+ Afrika/Kinshasa (UTC\$1 01:00)
+ Afrika/Bangui (UTC\$1 01:00)
+ NASS (UTC\$1 01:00)
+ Afrika/Niamey (UTC\$1 01:00)
+ GMT (UTC\$1 00:00)
+ ETC/GMT-0 (UTC\$1 00:00)
+ Atlantik/St\$1Helena (UTC\$1 00:00)
+ ETC/GMT\$10 (UTC\$1 00:00)
+ Afrika/Banjul (UTC\$1 00:00)
+ ETC/GMT (UTC\$1 00:00)
+ Afrika/Freetown (UTC\$1 00:00)
+ Afrika/Bamako (UTC\$1 00:00)
+ Afrika/Conakry (UTC\$1 00:00)
+ Universell (UTC\$1 00:00)
+ Afrika/Nouakchott (UTC\$1 00:00)
+ UTC (UTC\$1 00:00)
+ /etc/Universell (UTC\$1 00:00)
+ Atlantik/Azoren (UTC\$1 00:00)
+ Afrika/Abidjan (UTC\$1 00:00)
+ Afrika/Accra (UTC\$1 00:00)
+ ETC/UTC (UTC\$1 00:00)
+ GMT0 (UTC\$1 00:00)
+ Zulu (UTC\$1 00:00) Zulu (UTC\$1 00:00)
+ Afrika/Ouagadougou (UTC\$1 00:00)
+ Atlantik/Reykjavik (UTC\$1 00:00)
+ etC/Zulu (UTC\$1 00:00)
+ Island (UTC\$1 00:00)
+ Afrika/Lome (UTC\$1 00:00)
+ Greenwich (UTC\$1 00:00)
+ Etc/ (UTC\$1 00:00GMT0 )
+ Amerika/Danmarkshavn (UTC\$1 00:00)
+ Afrika/Dakar (UTC\$1 00:00)
+ Afrika/Bissau (UTC\$1 00:00)
+ ETC/Greenwich (UTC\$1 00:00)
+ Afrika/Timbuktu (UTC\$1 00:00)
+ UTC (UTC\$1 00:00)
+ Afrika/Monrovia (UTC\$1 00:00)
+ ETC/UTC (UTC\$1 00:00)

# Tutorials zu Formelausdrücken
<a name="expression-tutorials"></a>

Sie können diesen Anleitungen folgen, um Formelausdrücke in zu verwenden. AWS IoT SiteWise

**Topics**
+ [Verwenden Sie Zeichenketten in Formeln](#use-strings-in-formulas)
+ [Datenpunkte filtern](#filter-data)
+ [Zählen Sie Datenpunkte, die einer Bedingung entsprechen](#count-filtered-data)
+ [Späte Daten in Formeln](#late-data)
+ [Datenqualität in Formeln](#data-quality)
+ [Undefinierte, unendliche und Überlaufwerte](#undefined-values)

## Verwenden Sie Zeichenketten in Formeln
<a name="use-strings-in-formulas"></a>

Sie können mit Zeichenketten in Ihren Formelausdrücken arbeiten. Sie können auch Zeichenketten aus Variablen eingeben, die auf Attribut- und Messeigenschaften verweisen.

**Wichtig**  
<a name="formula-output-rules"></a>Formelausdrücke können nur Doppel- oder Zeichenkettenwerte ausgeben. Verschachtelte Ausdrücke können andere Datentypen ausgeben, z. B. Zeichenfolgen, aber die Formel als Ganzes muss eine Zahl oder Zeichenfolge ergeben. Sie können die [Funktion jp](expression-string-functions.md#jp-definition) verwenden, um eine Zeichenfolge in eine Zahl umzuwandeln. Der boolesche Wert muss 1 (wahr) oder 0 (falsch) sein. Weitere Informationen finden Sie unter [Undefinierte, unendliche und Überlaufwerte](#undefined-values).

AWS IoT SiteWise stellt die folgenden Funktionen für Formelausdrücke bereit, mit denen Sie Zeichenfolgen bearbeiten können:
+ [Zeichenkettenliterale](expression-literals.md#string-literal-definition)
+ Der [Indexoperator](expression-operators.md#index-operator-definition) () `s[index]`
+ Der [Slice-Operator](expression-operators.md#slice-operator-definition) (`s[start:end:step]`)
+ [Vergleichsfunktionen](expression-comparison-functions.md), mit denen Sie Zeichenketten in [lexikografischer](https://en.wikipedia.org/wiki/Lexicographic_order) Reihenfolge vergleichen können
+ [Zeichenkettenfunktionen](expression-string-functions.md), zu denen auch die `jp` Funktion gehört, die serialisierte JSON-Objekte analysieren und Zeichenketten in Zahlen konvertieren kann

## Datenpunkte filtern
<a name="filter-data"></a>

Sie können die [if-Funktion](expression-conditional-functions.md#if-definition) verwenden, um Datenpunkte herauszufiltern, die eine Bedingung nicht erfüllen. Die `if` Funktion wertet eine Bedingung aus und gibt unterschiedliche Werte `true` und `false` Ergebnisse zurück. Sie können die [Konstante none](expression-constants.md#none-definition) als Ausgabe für einen Fall einer `if` Funktion verwenden, um den Datenpunkt für diesen Fall zu verwerfen.

**Um Datenpunkte herauszufiltern, die einer Bedingung entsprechen**
+ Erstellen Sie eine Transformation, die die `if` Funktion verwendet, um eine Bedingung zu definieren, die prüft, ob eine Bedingung erfüllt ist, und entweder den `result_if_false` Wert `result_if_true` oder zurückgibt`none`.

**Example Beispiel: Filtert Datenpunkte heraus, an denen das Wasser nicht kocht**  
Stellen Sie sich ein Szenario vor, in dem Sie eine Messung durchführen`temp_c`, die die Temperatur (in Celsius) des Wassers in einer Maschine angibt. Sie können die folgende Transformation definieren, um Datenpunkte herauszufiltern, an denen das Wasser nicht kocht:  
+ Transformation: `boiling_temps = if(gte(temp_c, 100), temp_c, none)` — Gibt die Temperatur zurück, wenn sie größer oder gleich 100 Grad Celsius ist, andernfalls wird kein Datenpunkt zurückgegeben.

## Zählen Sie Datenpunkte, die einer Bedingung entsprechen
<a name="count-filtered-data"></a>

Sie können [Vergleichsfunktionen](expression-comparison-functions.md) und [sum ()](expression-aggregation-functions.md#sum-definition) verwenden, um die Anzahl der Datenpunkte zu zählen, für die eine Bedingung zutrifft.

**Um Datenpunkte zu zählen, die einer Bedingung entsprechen**

1. Erstellen Sie eine Transformation, die eine Vergleichsfunktion verwendet, um eine Filterbedingung für eine andere Eigenschaft zu definieren.

1. Erstellen Sie eine Metrik, die die Datenpunkte summiert, für die diese Bedingung erfüllt ist.

**Example Beispiel: Zählen Sie die Anzahl der Datenpunkte, bei denen Wasser kocht**  
Stellen Sie sich ein Szenario vor, in dem Sie über eine Messung verfügen`temp_c`, die die Temperatur (in Celsius) des Wassers in einer Maschine angibt. Sie können die folgenden Transformations- und Metrikeigenschaften definieren, um die Anzahl der Datenpunkte zu zählen, bei denen das Wasser kocht:  
+ Transformation: `is_boiling = gte(temp_c, 100)` — Gibt zurück, `1` ob die Temperatur größer oder gleich 100 Grad Celsius ist, andernfalls wird zurückgegeben`0`.
+ Metrisch: `boiling_count = sum(is_boiling)` — Gibt die Anzahl der Datenpunkte zurück, an denen Wasser kocht.

## Späte Daten in Formeln
<a name="late-data"></a>

AWS IoT SiteWise unterstützt die späte Datenaufnahme von Daten, die bis zu 7 Tage alt sind. Wenn verspätete Daten AWS IoT SiteWise empfangen werden, werden vorhandene Werte für jede Metrik neu berechnet, die die verspäteten Daten in einem vergangenen Fenster eingibt. Diese Neuberechnungen führen zu Gebühren für die Datenverarbeitung.

**Anmerkung**  
Bei der AWS IoT SiteWise Berechnung von Eigenschaften, die verspätete Daten eingeben, wird der aktuelle Formelausdruck jeder Eigenschaft verwendet.

Nachdem ein vergangenes Fenster für eine Metrik AWS IoT SiteWise neu berechnet wurde, ersetzt es den vorherigen Wert für dieses Fenster. Wenn Sie Benachrichtigungen für diese Metrik aktiviert haben, wird AWS IoT SiteWise auch eine Benachrichtigung über den Eigenschaftswert ausgegeben. Dies bedeutet, dass Sie eine neue Benachrichtigung zum Aktualisieren von Eigenschaftswerten für dieselbe Eigenschaft und denselben Zeitstempel erhalten können, für die Sie zuvor bereits eine Benachrichtigung erhalten haben. Wenn Ihre Anwendungen oder Data Lakes Eigenschaftswertbenachrichtigungen verwenden, müssen Sie den vorherigen Wert mit dem neuen Wert aktualisieren, damit die Daten weiterhin korrekt sind.

## Datenqualität in Formeln
<a name="data-quality"></a>

 AWS IoT SiteWise In hat jeder Datenpunkt einen Qualitätscode, der einer der folgenden sein kann:
+ `GOOD`— Die Daten sind von keinen Problemen betroffen.
+ `BAD`— Die Daten sind von einem Problem wie einem Sensorausfall betroffen.
+ `UNCERTAIN`— Die Daten sind von einem Problem wie einer Sensorungenauigkeit betroffen.

AWS IoT SiteWise verbraucht bei der Berechnung von Transformationen und Metriken nur `GOOD` hochwertige Daten. AWS IoT SiteWise gibt nur `GOOD` Qualitätsdaten für erfolgreiche Berechnungen aus. Wenn eine Berechnung nicht erfolgreich ist, wird AWS IoT SiteWise kein Datenpunkt für diese Berechnung ausgegeben. Dies kann auftreten, wenn eine Berechnung zu einem undefinierten, unendlichen oder Überlaufwert führt.

Weitere Informationen zum Abfragen von Daten und zum Filtern nach Datenqualität finden Sie unter [Daten abfragen von AWS IoT SiteWise](query-industrial-data.md).

## Undefinierte, unendliche und Überlaufwerte
<a name="undefined-values"></a>

Einige Formelausdrücke (wie `x / 0``sqrt(-1)`, oder`log(0)`) berechnen Werte, die in einem reellen Zahlensystem undefiniert, unendlich oder außerhalb des von unterstützten Bereichs liegen. AWS IoT SiteWise Wenn der Ausdruck einer Anlageneigenschaft einen undefinierten, unendlichen Wert oder einen Überlaufwert berechnet, wird AWS IoT SiteWise kein Datenpunkt für diese Berechnung ausgegeben.

AWS IoT SiteWise gibt auch keinen Datenpunkt aus, wenn ein nicht numerischer Wert als Ergebnis eines Formelausdrucks berechnet wird. Das bedeutet, dass, wenn Sie eine Formel definieren, die eine Zeichenfolge, ein Array oder die [Konstante none](expression-constants.md#none-definition) berechnet, AWS IoT SiteWise kein Datenpunkt für diese Berechnung ausgegeben wird.

**Example Beispiele**  
Jeder der folgenden Formelausdrücke führt zu einem Wert, der nicht als Zahl dargestellt AWS IoT SiteWise werden kann. AWS IoT SiteWise gibt bei der Berechnung dieser Formelausdrücke keinen Datenpunkt aus.  
+ `x / 0`ist undefiniert.
+ `log(0)`ist undefiniert.
+ `sqrt(-1)`ist in einem reellen Zahlensystem undefiniert.
+ `"hello" + " world"`ist eine Zeichenfolge.
+ `jp('{"values":[3,6,7]}', '$.values')`ist ein Array.
+ `if(gte(temp, 300), temp, none)`ist `none` wann `temp` ist weniger als`300`.