

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 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.<br />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.<br />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. <br />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).<br />Diese Funktion unterstützt keine Metrikeigenschaften als Eingabevariablen.<br />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).<br />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. <br />Einzelheiten zur Berechnung und zu den Intervallen finden Sie unter [Parameter für zeitgewichtete Funktionen](#timeweighted-parameter).<br /> 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. <br />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)<br />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)<br />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)<br />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 erzeugt.


| 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 \+ 2 \+ 1<br />`pretrigger(y)`entspricht 1. | 25 = 20 \+ 3 \+ 2<br />`x`empfängt keinen neuen Datenpunkt. `pretrigger(y)`entspricht 2. | 36 = 30 \+ 3 \+ 3<br />`y`empfängt keinen neuen Datenpunkt. Entspricht `pretrigger(y)` also 3 um 09:15 Uhr. | 