Ein Trigger startet einen Lauf: Er hat keine Eingabe und sendet eine Nachricht, wenn sein Ereignis eintritt. Ein Flow kann mehrere Trigger haben. Diese Seite listet jeden Trigger mit seinen Ausgängen und Einstellungen, so wie die Bausteine sie definieren. Der Reiter Help des Editors zeigt für den ausgewählten Baustein dieselbe Referenz.
Nachrichten werden mindestens einmal zugestellt: Nach einem Absturz kann eine Nachricht erneut zugestellt werden, markiert mit msg.metadata.redelivered = true, mit denselben Nachrichten-IDs, sodass Bausteine, die Anfragen auslösen, dieselben Idempotenz-Schlüssel senden. Die zeitbasierten und Webhook-Trigger haben eine Einstellung skip_redelivered (standardmäßig aus): Ist sie an, startet eine erneut zugestellte Nachricht den Flow nicht erneut.
Flow-Eingang
Der Eingang für Nachrichten, die ein anderer Flow mit Run flow übergibt, und, in einem Root-Flow, für die Gerätenachrichten des Geltungsbereichs des Roots. Jeder Flow hat genau einen; er kann nicht gelöscht werden.
| Ausgang | out: die Nachricht, so wie sie übergeben wurde, im selben Lauf. In einem IoT-Root jede Gerätenachricht, bei Telemetrie eine Nachricht pro Datensatz. |
| Einstellungen | Keine. Der Flow selbst ist die Adresse. |
| Hinweise | Der Flow muss eingeschaltet sein und laufen, um Nachrichten zu empfangen. Ein Root wird nie von einem anderen Flow ausgeführt. Daten kommen nur über die Nachricht; Felder vor Run flow setzen. |
Gerätenachricht (IoT-Host)
Startet bei Nachrichten von Geräten. Gerätenachrichten (telemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response) gehen nur an einen Root-Flow; ist in einem Root der Flow-Eingang verdrahtet, ist der Flow-Eingang ihr Eingang. Nachrichten alarm und attributes_updated gehen an jeden Flow mit einem Trigger Gerätenachricht, der sie nennt, Root oder nicht. Ein Trigger ohne angehakte Typen empfängt nur die Gerätenachrichtentypen: alarm oder attributes_updated namentlich anhaken, um sie zu empfangen.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| types | Die Nachrichtentypen, die ihn starten | jeder Typ | telemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response, attributes_updated, alarm |
| profiles | Nur Geräte dieser Profile | jedes Profil | Ihre Geräteprofile |
| skip_redelivered | Eine erneut zugestellte Nachricht startet ihn nicht | aus | an, aus |
Ausgänge: out (Telemetrie, eine Nachricht pro Datensatz, mit msg.metadata.recordTs), error (bad_payload: Telemetrie, die keinen Datensatz ergab; msg.error.drops nennt den Grund, warum jeder Wert weggelassen wurde).
Nur lesbare Metadaten: msgType, deviceId, profileId, deviceName, profileName, transport (mqtt oder http), ts (Empfangszeit), recordTs, topic (nur bei Daten eigener Topics), gatewayDeviceId und weitere. Metadaten werden nie gespeichert.
Inject
Startet einen Flow von Hand (die Schaltfläche am Baustein), einmal kurz nach dem Start des Flows oder wiederholt.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| payload | Was in msg.payload gelangt | die aktuelle Zeit (Epochensekunden) | eine Zahl, Text, Ja/Nein, JSON, die aktuelle Zeit, nichts, eine Umgebungsvariable oder ein Ausdruck |
| topic | msg.topic | leer | bis zu 256 Zeichen |
| repeat_ms | Erneut auslösen nach dieser Dauer; 0 = keine Wiederholung | 0 | bis zu 7 Tage; in der Cloud mindestens 60 s (Mindestwert Ihres Tarifs) |
| once_after_ms | Einmal auslösen nach dieser Dauer nach dem Start des Flows | leer | 0 bis 24 h |
| originator | Von wem die Nachricht stammt | die Organisation | die Organisation oder dieser Flow (seine eigene Lane) |
| msg_type | Der Nachrichtentyp | inject | einer der Nachrichtentypen des Hosts |
| metadata | Zusätzliche Einträge in msg.metadata | keine | bis zu 16 Zeilen |
| times | Nach so vielen Wiederholungen beenden | 0 (kein Ende) | benötigt eine Wiederholung |
| catch_up | Nach einem Ausfall | once | once (ein Lauf für den jüngsten verpassten Takt), skip |
Ausgang: out. Die Nutzlast wird bei jedem Auslösen neu ermittelt.
Zeitplan
Startet einen Flow nach der Uhrzeit.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| mode | Wie die Zeit angegeben wird | daily | daily, cron, sun |
| time | Uhrzeit (täglich) | 08:00 | HH:MM, 24 Stunden |
| weekdays | Tage, an denen er auslöst (täglich) | keiner angehakt = jeden Tag | Mo bis So |
| cron | Cron-Ausdruck | 0 8 * * 1-5 | 5 Felder: Minute, Stunde, Tag des Monats, Monat, Wochentag |
| sun | Sonnenaufgang oder Sonnenuntergang | set | rise, set |
| offset_min | Minuten nach (+) oder vor (−) dem Sonnenereignis | 0 | −720 bis 720 |
| lat, lon | Position für Sonnenzeiten | leer | −90 bis 90, −180 bis 180; erforderlich für Modus sun |
| tz | Zeitzone | die Standardzone der Organisation | ein IANA-Name wie Europe/Istanbul |
| originator | Von wem die Nachricht stammt | die Organisation | die Organisation oder dieser Flow |
| msg_type | Der Nachrichtentyp | schedule | einer der Typen des Hosts |
| payload | Ersetzt die Standard-Nutzlast | { event: "due", mode, at, time } | beliebiger Wert oder Ausdruck |
| catch_up | Nach einem Ausfall | once | once, skip |
Ausgang out: msg.payload { "event": "due", "mode": "daily", "at": …, "time": … }, msg.topic schedule/<mode>.
- Cron-Felder akzeptieren Zahlen,
*, Bereiche (1-5), Listen (1,15) und Schritte (*/10); Wochentag 0 und 7 sind Sonntag; Namen wieMONwerden nicht verstanden. Sind Tag des Monats und Wochentag beide eingeschränkt, genügt eines von beiden. - Eine Zeit, die durch eine Sommerzeitumstellung übersprungen wird, löst nicht aus. Ein Tag ohne Sonnenauf- oder Sonnenuntergang (Polargebiete) wird übersprungen.
- Show the next runs in den Einstellungen des Bausteins listet die nächsten Auslösezeiten in dessen Zone auf.
- Die Nachricht eines Zeitplans hat kein Gerät: Bausteine, die eine Gerätenachricht benötigen (Save telemetry, Raise alarm, Send command), lehnen sie mit
not_a_deviceab.
Benannter Timer
Startet einen Flow, wenn ein benannter Timer abläuft. Der Aktionsbaustein Timer startet, setzt neu oder bricht ihn ab, aus jedem Flow der Organisation.
| Einstellung | Bedeutung | Werte |
|---|---|---|
| name | Der Timer, auf den gehört wird | erforderlich |
Ausgang out: msg.payload { "event": "fired", "name", "ms", "time" }, msg.topic timer/<name>, msg.text „Timer name ist abgelaufen“. Timer überstehen Änderungen an den Flows und werden von der Plattform gehalten. Ein Timer, der während eines Ausfalls länger als die Lebensdauer fällig wird, wird zu einer fehlgeschlagenen Nachricht, die Sie erneut abspielen können.
Webhook
Ein HTTP-POST an die Adresse des Bausteins startet den Flow. Die Adresse wird im Dialog Webhooks des Editors angezeigt, sobald der Flow bereitgestellt und eingeschaltet ist.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| auth | Wie sich Aufrufer ausweisen | token | token (Authorization: Bearer <secret>), hmac (X-Automation-Signature: hexadezimaler HMAC-SHA256 von timestamp.rawBody, und X-Automation-Timestamp innerhalb von 300 s), session (ein angemeldetes Mitglied Ihrer Organisation) |
| permission | Nur Session: eine Berechtigung, die der Aufrufer ebenfalls besitzen muss | leer | eine Berechtigungs-ID |
| originator | Worum es in der Nachricht geht | die Organisation | die Organisation oder eine Entität Ihrer Organisation |
| max_body | Größter Body | 16 KiB | höchstens 256 KiB |
| parse | Wie der Body gelesen wird | json | json, text |
| reply | Wann der Aufrufer seine Antwort erhält | accepted | accepted (202 mit einer ID sofort), response (ein Baustein HTTP response antwortet) |
| timeout_ms | Wie lange ein synchroner Aufrufer wartet | 10,000 | 1.000 bis 10.000 |
Ausgang out: msg.payload ist der Body; msg.metadata.http enthält method, query und die Header content-type, user-agent und x-request-id (nie authorization oder Cookies). Bei einem Session-Hook ist msg.metadata.user.id der Aufrufer.
Antworten: 202 angenommen, 401 falsches Token, falsche Signatur oder Sitzung, 403 Sitzung abgelehnt, 404 unbekannter Hook, 413 Body zu groß, 429 Rate-Limit oder Kontingent überschritten, 503 ausgelastet. Ein synchroner Hook antwortet mit 204, wenn der Flow keine Antwort sendet, mit 500 bei einem nicht abgefangenen Fehler und mit 504 bei Ablauf der Frist. Informationen zu Geheimnissen und Rotation finden Sie unter Verbindungen und Geheimnisse.
Ereignis
Startet bei einem Ereignis, das nach Quelle und Art ausgewählt wird, zum Beispiel eines, das ein anderer Flow mit Ereignis senden gesendet hat.
| Einstellung | Bedeutung | Standard | Werte |
|---|---|---|---|
| source | Die Ereignisquelle | beliebig | eine Quelle, z. B. flow; * = beliebig |
| kind | Die Ereignisart | beliebig | exakt, * oder ein Präfix, das mit * endet (tank.*) |
| filter | Ein Ausdruck, der wahr sein muss | keiner | über msg, bis zu 512 Zeichen |
Ausgang out: msg.payload sind die Daten des Ereignisses, msg.topic <source>/<kind>. Fehler invalid_value, wenn der Filter nicht kompiliert werden kann. Außer für die Quellen flow und platform müssen Sie eine Art oder ein Präfix angeben.
Catch
Empfängt Fehler von Blöcken im selben Flow, deren eigener Ausgang error nicht verdrahtet ist.
| Einstellung | Bedeutung | Standard |
|---|---|---|
| scope | Die Blöcke, deren Fehler abgefangen werden | jeder Block des Flows |
| uncaught_only | Nur Fehler, die kein anderer Catch übernimmt | aus |
Ausgang out: eine Kopie der fehlerhaften Nachricht mit msg.error { message, code, source: { id, type, flow, name } }.
Status
Startet, wenn ein Block desselben Flows die Statuszeile unter sich ändert.
| Einstellung | Bedeutung | Standard |
|---|---|---|
| scope | Die überwachten Blöcke | jeder Block des Flows |
Ausgang out: msg.payload der Statustext, msg.status { fill, shape, text, ts, source }. Überwachen Sie nicht jeden Block und verbinden Sie keinen Block, der seinen eigenen Status setzt (etwa Debug): Er startet sich sonst immer wieder selbst neu.
Abgeschlossen
Startet, wenn ausgewählte Blöcke desselben Flows eine Nachricht ohne Fehler abschließen.
| Einstellung | Bedeutung | Werte |
|---|---|---|
| nodes | Die überwachten Blöcke | bis zu 64; keiner = feuert nie |
Ausgang out: eine Kopie der abgeschlossenen Nachricht mit msg.complete { id, type, name }.
Link in
Ein benannter Eingang, an den Link out– und Link call-Blöcke senden, aus diesem oder einem anderen Flow desselben Hosts.
| Einstellung | Bedeutung | Werte |
|---|---|---|
| name | Der Name, den Link-Blöcke verwenden | 1 bis 32 Zeichen: Buchstaben, Ziffern, _, ., -; eindeutig |
Ausgang out: jede eingehende Nachricht, unverändert und im selben Durchlauf.
Kommentar
Ein Kommentar-Block ist eine Notiz auf der Arbeitsfläche (bis zu 2.048 Zeichen). Er tut beim Ausführen des Flows nichts.
Siehe auch Routing- und Zeitblöcke für Link call und Aktionsblöcke für Link out, Ereignis senden, Timer und Flow ausführen.

