> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-de/kilo-iot-server/rules-engine/triggers.md).

# Trigger

Definieren Sie eine gespeicherte Bedingung, die eine Kilo-Regel sofort oder nach einer Verzögerung für ein oder mehrere Geräte startet.

A **Trigger** ist eine gespeicherte Bedingung, die eine Regel starten kann. Sie sagt Kilo, welche Gerätedaten überwacht werden sollen, welcher Vergleich wahr werden muss und welches ausgewählte Gerät die Bedingung ausgelöst hat.

Ein Trigger ist nicht nur ein Timer und auch keine wiederverwendbare Gerätegruppe. Zeitverhalten und Gerätauswahl sind zwei voneinander unabhängige Teile desselben Triggers:

* **Zeitverhalten** entscheidet, ob Kilo die Regel sofort startet oder wartet, bis die Bedingung weiterhin wahr bleibt.
* **Geräte** entscheiden, ob die Bedingung für ein Gerät oder getrennt für mehrere Geräte ausgewertet wird.

Zum Beispiel kann ein Trigger den `door_open` Metrik auf 50 Kühlraumtüren überwachen. Er kann eine gemeinsame Regel starten, sobald eine beliebige Tür geöffnet wird, oder erst nachdem genau diese Tür 20 Minuten lang offen geblieben ist. Jede Tür behält ihren eigenen Zustand und Countdown.

## Wann ein Trigger verwendet wird

Jede Regel hat **Startereignis** hat zwei Startquellen:

| Erforderliches Verhalten                                                               | Startquelle                    | Zusätzliche Einstellung                                                |
| -------------------------------------------------------------------------------------- | ------------------------------ | ---------------------------------------------------------------------- |
| Ausführen, sobald ein Sensor meldet                                                    | **Sensorwert**                 | Wähle ein Gerät und einen Sensor im Start Event aus.                   |
| Ausführen, wenn eine Bedingung wahr wird                                               | **Trigger-Bedingung**          | Setze den Trigger auf **Sofort**.                                      |
| Kurzzeitig auftretende Bedingungen ignorieren                                          | **Trigger-Bedingung**          | Setze den Trigger auf **Nur wenn sie anhält** und eine Dauer eingeben. |
| Dieselbe Bedingung und Reaktion auf mehrere Geräte anwenden                            | **Trigger-Bedingung**          | Wähle diese Geräte im Trigger aus.                                     |
| Zulassen, dass eine der beiden Quellen nur während festgelegter Zeiten ausgeführt wird | Behalte die ausgewählte Quelle | Aktivieren **Zeitplan aktivieren** im Start Event.                     |

Verwende **Sensorwert** wenn die Regel jedes normalisierte Sensorereignis und sein `vars.value`. Verwende **Trigger-Bedingung** wenn Kilo entscheiden muss, ob eine gespeicherte Bedingung erfüllt wurde, bevor die Regel beginnt.

## Wie ein Trigger funktioniert

Trigger und Regel haben getrennte Aufgaben:

1. Der Trigger überwacht normalisierte Metriken und wertet seine Bedingung aus.
2. Sein Zeitverhalten und sein Rücksetzverhalten bestimmen, wann die Bedingung aktiv wird und wieder in den Normalzustand zurückkehrt.
3. Wenn der Trigger aktiv wird, identifiziert er das überwachte Gerät und signalisiert jede bereitgestellte Regel, die diesen Trigger verwendet.
4. Die Regel führt die operative Reaktion aus, z. B. einen Alarm auslösen, Daten anreichern oder einen Befehl senden.

Das Speichern eines Triggers führt daher nicht selbst eine Aktion aus. Du musst ihn mit einer Regel verbinden und diese Regel dann erstellen und bereitstellen.

## Vom Trigger zur laufenden Regel

Ein Trigger ist eine gespeicherte **Startquelle**, kein Knoten, den du auf die Regel-Canvas ziehst. Das Erstellen des Triggers und das Verknüpfen mit einer Regel erfolgen in zwei verschiedenen Tabs:

1. Öffne **Rules Engine → Trigger**, klicke **Trigger hinzufügen**, konfiguriere die Bedingung, das Zeitverhalten und die Geräte und klicke auf **Trigger erstellen**.
2. Wechsle zurück zum **Regeln** Tab. Die **Regel hinzufügen** Schaltfläche ist dort verfügbar, nicht im Trigger-Tab.
3. Klicken Sie **Regel hinzufügen**, oder bearbeite eine vorhandene Regel, die auf den Trigger reagieren soll.
4. Suche den **Startereignis** bereits auf der Canvas platziert ist. Wähle ihn aus und klicke auf den Stift unterhalb des Knotens, um seine Eigenschaften zu öffnen.
5. Setze **Startquelle** auf **Trigger-Bedingung**, und wähle dann den gespeicherten Trigger aus.
6. Klicken Sie **Speichern** am unteren Rand des Start-Event-Bereichs. Dadurch wird die Auswahl auf das Diagramm angewendet.
7. Füge die Alarm-, Befehls-, Anreicherungs- oder anderen Knoten hinzu, die die Reaktion definieren. Klicke dann auf **Speichern** im Regel-Editor.
8. Klicken Sie **Erstellen** und stelle das resultierende Artefakt bereit. Nur eine bereitgestellte Regel kann reagieren, wenn der Trigger aktiv wird.

Das Erstellen eines Triggers erstellt keine Regel, fügt keinen Knoten zur Canvas hinzu und wählt den Trigger nicht automatisch aus. Der Trigger entscheidet **wann und für welches Gerät** eine Regel startet; die Knoten nach dem Start Event entscheiden **was die Regel tut**.

## Trigger erstellen

1. Öffne **Rules Engine → Trigger**.
2. Klicken Sie **Trigger hinzufügen**.
3. Gib einen **Name** ein, der die Situation beschreibt, z. B. `Kühlraumtür offen gelassen`.
4. Unter **Was soll die Regel starten?**, klicke **Normierten Schlüssel hinzufügen** und wähle die zu bewertende Metrik aus.
5. Wähle einen **Ist** Operator und gib den Vergleich ein **Wert**.
6. Unter **Wann soll es starten?**, wähle **Sofort** oder **Nur wenn sie anhält**.
7. Konfigurieren **Rücksetzverhalten** wenn die Rückkehr zum Normalzustand eine eigene Bedingung oder Verzögerung benötigt.
8. Unter **Geräte**, wähle das oder die Geräte aus, deren Daten der Trigger verwenden wird.
9. Überprüfen **Wie dieser Trigger ausgeführt wird**, und klicke dann auf **Trigger erstellen**.

<figure><img src="https://895787959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-ebb50a42e55112e4a2f5f8a9cce0ee26a91e9d28%2Ftrigger-time-window.jpg?alt=media" alt="The Kilo Create trigger dialog showing a condition and its timing choice"><figcaption></figcaption></figure>

Das Formular unterstützt bis zu 10 normierte Schlüssel über die Start- und optionalen Rücksetzbedingungen hinweg, bis zu 500 ausgewählte Geräte und eine Dauer von 10 Sekunden bis 30 Tagen.

Das vollständige Zeitverhalten findest du unter [Trigger-Zeitverhalten](/kilo-docs-de/kilo-iot-server/rules-engine/triggers/trigger-timing.md). Informationen zur Gerätauswahl, zu gemeinsamen Messwerten und zur geräteweisen Auswertung findest du unter [Ein Trigger für mehrere Geräte](/kilo-docs-de/kilo-iot-server/rules-engine/triggers/multiple-devices.md).

## Bedingung aufbauen

Wähle für jeden normierten Schlüssel den Vergleich, den Kilo durchführen soll:

* Numerische Metriken bieten **ist gleich**, **ist größer als**, und **ist kleiner als**.
* String- und Boolean-Metriken bieten **ist gleich**.
* **Prüfung für ‹metric› hinzufügen** fügt einen weiteren Vergleich für dieselbe Metrik hinzu.
* **Normierten Schlüssel hinzufügen** bezieht eine weitere Metrik in die Bedingung ein.

Verwende **UND** wenn jede Prüfung wahr sein muss, und **ODER** wenn jede beliebige Prüfung wahr sein darf. Ein zweites AND/OR-Steuerelement kombiniert unterschiedliche normierte Schlüssel. Diese Steuerelemente kombinieren Messwerte für ein überwachtes Gerät; sie kombinieren nicht die Zustände verschiedener überwachter Geräte.

## Wo Trigger verwendet werden können

Im aktuellen Regel-Editor ist der Start Event der einzige Ort, an dem du einen gespeicherten Trigger auswählst. Trigger sind nicht auf Gateways, Set Alarm, Execute Command, Enrichment oder anderen nachgelagerten Knoten verfügbar.

Ein gespeicherter Trigger kann von mehreren Regeln ausgewählt werden. Wenn er aktiv wird, kann jede bereitgestellte Regel, die ihn verwendet, ausgeführt werden. Jede einzelne Regel hat weiterhin genau einen Start Event und eine Startquelle.

<figure><img src="https://895787959-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-b6c7ebde10c33010ad7526ff9fcafd734edc83a0%2Frule-start-source.jpg?alt=media" alt="The Kilo Start Event panel with Trigger condition selected as the start source"><figcaption></figcaption></figure>

Ein Start Event verwendet **Sensorwert** oder **Trigger-Bedingung**, niemals beides. **Zeitplan aktivieren** ist eine optionale Einschränkung der ausgewählten Quelle und keine weitere Startquelle.

Der Trigger-Auswahldialog lädt derzeit nur seine erste Seite. Wenn der benötigte Trigger nicht aufgeführt ist, kann er in diesem Feld noch nicht ausgewählt werden.

## Der Regel verfügbare Daten

Eine durch einen Trigger gestartete Regel erhält Informationen über das Bedingungssignal und das überwachte Gerät:

| Variable            | Wert                                                                    |
| ------------------- | ----------------------------------------------------------------------- |
| `vars.device_name`  | Name des überwachten Geräts, das die Bedingung erfüllt hat              |
| `vars.subject_kind` | Überwachter Ressourcentyp; derzeit `Gerät`                              |
| `vars.subject_id`   | ID des überwachten Geräts                                               |
| `vars.sensor_id`    | Mit dem Lauf und einem eventuell ausgelösten Alarm verknüpfte Sensor-ID |
| `vars.detector_id`  | ID des Triggers                                                         |
| `vars.timestamp`    | Unix-Zeitstempel des Triggersignals                                     |

`vars.value` ist nicht verfügbar, weil das Signal den Zustandsübergang der Trigger-Bedingung und nicht ein einzelnes normalisiertes Sensorereignis darstellt. Aktualisiere Ausdrücke, die `vars.value` bevor du eine vorhandene Regel von **Sensorwert** auf **Trigger-Bedingung**.

Um das betroffene Gerät in einem Alarm zu identifizieren, füge `vars.device_name` in ihrer **Motivationsnachricht**:

```cel
"Tür offen gelassen: " + vars.device_name
```

Der Gerätename wird nicht automatisch eingefügt.

## Trigger bearbeiten oder löschen

Das Bearbeiten einer Bedingung kann aktive Countdowns neu starten. Kilo zeigt eine Warnung an, bevor eine Änderung gespeichert wird, die den Trigger-Zustand zurücksetzt.

Das Löschen eines Triggers kann nicht rückgängig gemacht werden. Es beendet die zukünftige Überwachung und verhindert, dass verbundene Regeln von ihm aus starten. Prüfe die Regeln, die den Trigger verwenden, und alle ausstehenden Alarme, bevor du ihn löschst.

## Fehlerbehebung

| Problem                                 | Was zu prüfen ist                                                                                                                        |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Ein Gerät fehlt                         | Stelle sicher, dass seine eingehenden Daten einem normierten Schlüssel zugeordnet sind, den der Trigger verwendet.                       |
| Ein Sensor kann keine Metrik liefern    | Stelle sicher, dass der Sensor eine Quellzuordnung hat. Wenn mehrere Sensoren dieselbe Metrik liefern, wähle den gewünschten Sensor aus. |
| Der Trigger lässt sich nicht speichern  | Überprüfe die Dauer und kontrolliere **Wie dieser Trigger ausgeführt wird** auf eine fehlende oder mehrdeutig geteilte Metrik.           |
| Ein CEL-Ausdruck schlägt fehl           | Entferne `vars.value` aus einem durch einen Trigger gestarteten Pfad und verwende die oben aufgelisteten Variablen.                      |
| Ein Alarm identifiziert das Gerät nicht | Füge `vars.device_name` zur Alarmnachricht hinzu.                                                                                        |

## Siehe auch

* [Regeln erstellen](/kilo-docs-de/kilo-iot-server/rules-engine/creating-rules.md) — wähle die richtige Start-Event-Quelle
* [Trigger-Zeitverhalten](/kilo-docs-de/kilo-iot-server/rules-engine/triggers/trigger-timing.md) — sofort, Dauer, Rücksetzung und Zeitpläne
* [Ein Trigger für mehrere Geräte](/kilo-docs-de/kilo-iot-server/rules-engine/triggers/multiple-devices.md) — Auswahl von Teilnehmern und gemeinsame Messwerte
* [CEL-Referenz](/kilo-docs-de/kilo-iot-server/rules-engine/cel-reference.md) — schreibe Ausdrücke für jeden Startkontext


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kiloiot.io/kilo-docs-de/kilo-iot-server/rules-engine/triggers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
