Neu: Die KI-Firewall überwacht jedes Modul und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Trigger-Blöcke

Referenz aller Blöcke, die einen Flow starten – Flow input, Device message, Inject, Schedule, Named timer, Webhook, Event, Catch, Status, Complete und Link in.

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.

Ausgangout: die Nachricht, so wie sie übergeben wurde, im selben Lauf. In einem IoT-Root jede Gerätenachricht, bei Telemetrie eine Nachricht pro Datensatz.
EinstellungenKeine. Der Flow selbst ist die Adresse.
HinweiseDer 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.

EinstellungBedeutungStandardWerte
typesDie Nachrichtentypen, die ihn startenjeder Typtelemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response, attributes_updated, alarm
profilesNur Geräte dieser Profilejedes ProfilIhre Geräteprofile
skip_redeliveredEine erneut zugestellte Nachricht startet ihn nichtausan, 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.

EinstellungBedeutungStandardWerte
payloadWas in msg.payload gelangtdie aktuelle Zeit (Epochensekunden)eine Zahl, Text, Ja/Nein, JSON, die aktuelle Zeit, nichts, eine Umgebungsvariable oder ein Ausdruck
topicmsg.topicleerbis zu 256 Zeichen
repeat_msErneut auslösen nach dieser Dauer; 0 = keine Wiederholung0bis zu 7 Tage; in der Cloud mindestens 60 s (Mindestwert Ihres Tarifs)
once_after_msEinmal auslösen nach dieser Dauer nach dem Start des Flowsleer0 bis 24 h
originatorVon wem die Nachricht stammtdie Organisationdie Organisation oder dieser Flow (seine eigene Lane)
msg_typeDer Nachrichtentypinjecteiner der Nachrichtentypen des Hosts
metadataZusätzliche Einträge in msg.metadatakeinebis zu 16 Zeilen
timesNach so vielen Wiederholungen beenden0 (kein Ende)benötigt eine Wiederholung
catch_upNach einem Ausfallonceonce (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.

EinstellungBedeutungStandardWerte
modeWie die Zeit angegeben wirddailydaily, cron, sun
timeUhrzeit (täglich)08:00HH:MM, 24 Stunden
weekdaysTage, an denen er auslöst (täglich)keiner angehakt = jeden TagMo bis So
cronCron-Ausdruck0 8 * * 1-55 Felder: Minute, Stunde, Tag des Monats, Monat, Wochentag
sunSonnenaufgang oder Sonnenuntergangsetrise, set
offset_minMinuten nach (+) oder vor (−) dem Sonnenereignis0−720 bis 720
lat, lonPosition für Sonnenzeitenleer−90 bis 90, −180 bis 180; erforderlich für Modus sun
tzZeitzonedie Standardzone der Organisationein IANA-Name wie Europe/Istanbul
originatorVon wem die Nachricht stammtdie Organisationdie Organisation oder dieser Flow
msg_typeDer Nachrichtentypscheduleeiner der Typen des Hosts
payloadErsetzt die Standard-Nutzlast{ event: "due", mode, at, time }beliebiger Wert oder Ausdruck
catch_upNach einem Ausfallonceonce, 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 wie MON werden 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_device ab.

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.

EinstellungBedeutungWerte
nameDer Timer, auf den gehört wirderforderlich

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.

EinstellungBedeutungStandardWerte
authWie sich Aufrufer ausweisentokentoken (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)
permissionNur Session: eine Berechtigung, die der Aufrufer ebenfalls besitzen mussleereine Berechtigungs-ID
originatorWorum es in der Nachricht gehtdie Organisationdie Organisation oder eine Entität Ihrer Organisation
max_bodyGrößter Body16 KiBhöchstens 256 KiB
parseWie der Body gelesen wirdjsonjson, text
replyWann der Aufrufer seine Antwort erhältacceptedaccepted (202 mit einer ID sofort), response (ein Baustein HTTP response antwortet)
timeout_msWie lange ein synchroner Aufrufer wartet10,0001.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.

EinstellungBedeutungStandardWerte
sourceDie Ereignisquellebeliebigeine Quelle, z. B. flow; * = beliebig
kindDie Ereignisartbeliebigexakt, * oder ein Präfix, das mit * endet (tank.*)
filterEin Ausdruck, der wahr sein musskeinerü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.

EinstellungBedeutungStandard
scopeDie Blöcke, deren Fehler abgefangen werdenjeder Block des Flows
uncaught_onlyNur Fehler, die kein anderer Catch übernimmtaus

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.

EinstellungBedeutungStandard
scopeDie überwachten Blöckejeder 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.

EinstellungBedeutungWerte
nodesDie überwachten Blöckebis zu 64; keiner = feuert nie

Ausgang out: eine Kopie der abgeschlossenen Nachricht mit msg.complete { id, type, name }.

Ein benannter Eingang, an den Link out– und Link call-Blöcke senden, aus diesem oder einem anderen Flow desselben Hosts.

EinstellungBedeutungWerte
nameDer Name, den Link-Blöcke verwenden1 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.