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

Aktionsblöcke

Referenz zu HTTP request, HTTP response, MQTT out, Webhook, Emit event, Set variable, Timer, Flow-Umschaltung, Run flow, Link out, Log und Debug.

Aktionsblöcke tun etwas: Sie rufen ein anderes System auf, veröffentlichen eine Nachricht, speichern eine Variable, starten einen Timer, übergeben die Nachricht an einen anderen Flow oder schreiben eine Logzeile. Die Aktionen für Geräte, Alarme und Benachrichtigungen stehen auf eigenen Seiten: IoT-Datenblöcke und Alarm-, Befehls- und Benachrichtigungsblöcke.

Gemeinsames Verhalten ausgehender Blöcke

HTTP request, MQTT out und Webhook folgen diesen Regeln:

ThemaVerhalten
RisikoExternal: Ein Deployment, das einen solchen Block enthält, verlangt eine Bestätigung
WiederholungenNur vorübergehende Fehler werden wiederholt; standardmäßig 3 Versuche (retry_*-Einstellungen), höchstens 5, mit exponentiellem Backoff ab 1 s
IdempotenzJeder Versuch einer Nachricht trägt denselben Schlüssel (X-Idempotency-Key oder die MQTT-5-Benutzereigenschaft idempotency-key), auch nach einem Absturz oder einem Replay, damit ein Empfänger Duplikate erkennen kann
ZustellungMindestens einmal
SchutzschalterEin Block, dessen Aufrufe immer wieder fehlschlagen, pausiert seine Aufrufe für eine Weile (circuit_open)
Verspätete Nachrichtenlate: skip (Standard; die Nachricht endet und wird als Too old gezählt) oder send (ein Datenfeed, der nach einem Ausfall auch den Rückstau erhalten muss)
TestsEin Testlauf sendet nichts und meldet, was er gesendet hätte
ReihenfolgeAufrufe von HTTP request und MQTT out laufen getrennt von dem Lauf, der sie ausgelöst hat: Die nächste Nachricht des Geräts wartet nicht auf die Antwort, und die Reihenfolge der Nachrichten nach dem Aufruf ist nicht garantiert
AdressenPrivate und interne Adressen werden abgelehnt (ssrf_blocked)

HTTP request

Ruft einen HTTP-Endpunkt auf und legt die Antwort in die Nachricht. Schema, Host, Port, Authentifizierung und TLS kommen nur aus der endpoint-Verbindung, nie aus der Nachricht. Siehe Verbindungen und Geheimnisse.

EinstellungBedeutungStandardWerte
endpointDie HTTP-Endpunkt-Verbindungerforderlich
hostEin anderer Host, den der Endpunkt erlaubtleereine Vorlage; muss mit den erlaubten Hosts des Endpunkts übereinstimmen
methodHTTP-MethodeGETGET, POST, PUT, PATCH, DELETE, HEAD
pathWird an den Basispfad des Endpunkts angehängtleereine Vorlage, 1.024 Zeichen
queryAbfrageparameterkeinebis zu 16 Zeilen
headersZusätzliche Headerkeinebis zu 16 Zeilen; Host, Authorization, Cookie, Proxy-*, Content-Length, X-Idempotency-Key und Hop-by-Hop-Header werden abgelehnt
bodyWas gesendet wirdpayloadpayload, template, none (ausgeblendet bei GET, HEAD, DELETE)
templateDie Body-Vorlageleerbis zu 4.096 Zeichen
template_formatWie {{ }}-Werte geschrieben werdentexttext, json (jeder Wert als JSON-Wert; der Body muss JSON sein)
timeout_msZeit pro Versuch10,0001.000 bis 30.000
parseWie die Antwort gelesen wirdautoauto, json, text
max_bytesGrößte Antwort64 KiB1 bis 256 KiB
response_headersAntwort-Header, die in msg.metadata.headers behalten werdenallall, list, none (höchstens 32 Header, 8 KiB)
max_parallelGleichzeitige Aufrufe für diesen Block0 (keine Begrenzung)0 bis 64
inlineDen Aufruf im Lauf belassen, sodass die nächste Nachricht des Geräts auf die Antwort wartet (das Deployment warnt)offon, off
retry_*Versuche und Backoff3, ab 1 s
lateSiehe obenskipskip, send

Ausgänge:

  • out: Status unter 400. msg.payload ist der Body, außerdem msg.statusCode, msg.contentType, msg.metadata.headers. Weiterleitungen werden nicht verfolgt.
  • error: http_status (400 oder höher, Body in msg.payload), timeout, connect, tls, ssrf_blocked, too_large, invalid_json, invalid_value, oauth_failed, function_error, circuit_open, limit. msg.error.attempts gibt an, wie viele Versuche unternommen wurden.

Wiederholt werden: Timeouts, Verbindungsfehler sowie HTTP 408, 425, 429 (unter Beachtung von Retry-After), 500, 502, 503, 504.

Für einen aus Werten aufgebauten JSON-Body verwenden Sie template_format: json und lassen die Platzhalter ohne Anführungszeichen: {"name": {{ msg.payload.name }}, "n": {{ msg.payload.n }}}.

HTTP response

Antwortet dem Aufrufer eines synchronen Webhook-Triggers (reply: response). Die erste Antwort eines Laufs gewinnt.

EinstellungBedeutungStandardWerte
statusHTTP-Status (msg.statusCode überschreibt ihn)200100 bis 599
headersAntwort-Headerkeinecontent-type, cache-control, location (3xx), x-* (nicht x-forwarded-*)
bodyWas gesendet wirdpayloadpayload, template, none
templateBody-Vorlageleerbis zu 4.096 Zeichen
max_bytesGrößter Body256 KiBhöchstens 256 KiB

Fehler: no_reply_pending, reply_sent, limit. Ohne Antwort erhält der Aufrufer 204; nach dem Timeout des Hooks 504.

MQTT out

Veröffentlicht die Payload auf einem Topic Ihres Brokers und gibt die Nachricht dann weiter. Text wird als Text gesendet, alles andere als JSON.

EinstellungBedeutungStandardWerte
brokerDie MQTT-Broker-Verbindungerforderlich
topicDas Topic{{ msg.topic }}eine Vorlage, 256 Zeichen; ein führendes ~/ ist das Topic-Präfix des Brokers
qosZustellgarantie00, 1, 2
retainDen Broker bitten, die Nachricht zu behaltenoffon, off
timeout_msZeit für die Bestätigung10,0001.000 bis 30.000
max_parallelGleichzeitig laufende Veröffentlichungen0 (keine Begrenzung)0 bis 64
retry_*, lateWie oben

Fehler: bad_topic (leer, + oder #, oder ~/ ohne Präfix), timeout, connect, auth, ssrf_blocked, node_not_ready, not_configured, circuit_open, limit. Nur Timeouts und Verbindungsfehler werden wiederholt.

Webhook

Sendet die Nachricht an einen Webhook-Endpunkt Ihrer Organisation: signiert, wiederholt und in den Zustellungen des Endpunkts aufgelistet. Dies ist der Pfad mit garantierter Zustellung.

EinstellungBedeutungStandardWerte
endpointDer Endpunkterforderlichaktive Endpunkte, die Automation message abonniert haben
topicWird als topic gesendet{{ msg.topic }}eine Vorlage, 256 Zeichen
bodyWas neben dem Topic gesendet wirdpayloadpayload, payload and metadata
metadata_keysGesendete Metadatenschlüsselkeinehöchstens 20
lateSiehe obenskipskip, send

Der Empfänger erhält das Ereignis automation.message mit topic, payload, originator, flowId, flowVersion, nodeId, actor und den aufgelisteten Metadaten. out enthält msg.metadata.webhook.deliveryId, sobald die Nachricht in der Warteschlange steht. Fehler: endpoint_not_found, endpoint_inactive, enqueue_failed, not_configured, node_not_ready, circuit_open, limit (Webhooks nicht in Ihrem Tarif enthalten). Siehe Webhooks.

Ereignis senden

Sendet ein Ereignis, das Event-Trigger mit der Quelle flow empfangen, in jedem Flow.

EinstellungBedeutungStandardWerte
kindDer Name des Ereignisseserforderlichein Kleinbuchstabe zuerst, danach Kleinbuchstaben, Ziffern, _ und .; bis zu 32 Zeichen
dataWas es enthältmsg.payloadjeder Wertetyp; ein Nicht-Objekt wird als { "value": … } verpackt

Empfänger erhalten msg.payload = die Daten und msg.topic flow/<kind>. Fehler: rate_limited, invalid_value (ein ungültiger Typ oder „emit: depth“: der fünfte Schritt einer Kette). Ein Deployment lehnt eine erkennbare Schleife ab (flow_cycle). Eine verspätete Nachricht sendet kein Ereignis.

Variable setzen

Speichert einen Wert in einer Flow- oder globalen Variable.

EinstellungBedeutungWerte
pathDie Variableflow.<name> oder global.<name>, tiefere Schlüssel erlaubt; flow.persist:<name> für den persistenten Speicher
valueWas gespeichert wirdjeder Wertetyp; nichts (null) entfernt ihn

Fehler: invalid_value, limit (Speicher voll; der alte Wert bleibt erhalten). Grenzen: 1 MiB pro Flow, 4 MiB für globale Variablen. Im Test wird die eigene Kopie des Tests geschrieben.

Timer

Startet, startet neu oder bricht einen benannten Timer ab. Wenn er abläuft, werden alle Named timer-Trigger mit diesem Namen ausgelöst.

EinstellungBedeutungStandardWerte
nameDer Timer, von allen Flows gemeinsam genutzterforderlich
opStarten (neu) oder abbrechenstartstart, cancel
msDauer (msg.ms überschreibt sie)1 min0 bis 7 Tage

Das Starten eines laufenden Timers setzt ihn auf null zurück: das Watchdog-Muster. Fehler queue_full „too many timers“: Die Organisation hält 64 Timer mit 60 s oder weniger oder 10.000 längere. Eine verspätete Nachricht startet oder bricht nichts ab.

Flow aktivieren oder deaktivieren

Schaltet einen anderen Flow ein oder aus, wie den Schalter in der Flow-Liste.

EinstellungBedeutungStandardWerte
flowDer Flowerforderlichein bereitgestellter Flow der Organisation, nicht dieser
stateAktivieren oder deaktivierenenableenable, disable

out enthält msg.metadata.flow_enable { flow, enabled, changed }. Fehler: not_configured, self_reference, not_found, not_approved, conflict, invalid, limit (mehr als 6 Schaltvorgänge pro Minute). Das Bereitstellen eines Flows mit diesem Block erfordert die getippte Bestätigung.

Flow ausführen

Übergibt die Nachricht an den Flow input eines anderen Flows und beendet diesen Zweig.

EinstellungBedeutungWerte
flowDer auszuführende Flowein anderer Flow desselben Hosts; niemals ein Root-Flow

Kein out-Port; es kommt nichts zurück. Fehler: not_configured, invalid_value (fehlt, deaktiviert oder gestoppt), forbidden (ein Root), loop (fünfter Sprung). Ein Flow, den andere Flows ausführen, kann erst gelöscht werden, wenn diese Blöcke entfernt sind. Die Nachricht behält ihr Gerät, sodass Save telemetry im Ziel-Flow funktioniert.

Übergibt die Nachricht nach Name an Link in-Blöcke oder gibt die Antwort an einen Link call zurück.

EinstellungBedeutungStandardWerte
modelink (zu Link-in-Blöcken) oder return (Antwort an den Aufrufer)linklink, return
targetsLink-in-Namen (Modus link)leerbis zu 16
nameDer Name der Rückgabe (Modus return)outeine Rückgabe, die der Aufrufer deklariert

Kein out-Port. Ein fehlendes Ziel ist im Debug-Panel eine Warnung, kein Fehler. Ein Deploy lehnt unbekannte Namen und Schleifen ohne wartenden Block ab (cycle_sync).

Systemprotokoll

Schreibt eine Zeile in das Protokoll des Flows (Activity > Events > Log, 24 Stunden gespeichert).

EinstellungBedeutungStandardWerte
textDie Zeile, mit {{ }}-Platzhaltern{{ msg.payload }}bis zu 512 Zeichen
levelPrioritätinfoinfo, notice, warn, err

Debug

Zeigt die Nachrichten, die es erreichen, im Tab Activity > Debug des Editors an. Kein out-Port.

EinstellungBedeutungStandardWerte
propertyWas angezeigt wirdmsg.payloadmsg (die ganze Nachricht) oder ein Pfad
activeNachrichten überhaupt anzeigenonon, off

Debug-Einträge werden 24 Stunden gespeichert und sind für Personen sichtbar, die debuggen dürfen. Der Schalter am Block schaltet sie ohne Speichern ein und aus.

In eine externe Zeitreihendatenbank schreiben

Ein Block schreibt pro Nachricht einen Messpunkt in einen externen Zeitreihendatenbank-Server, den Sie selbst betreiben, über eine Datenbankserver-Verbindung. Einstellungen: der Server, der Bucket oder die Datenbank, die Measurement, bis zu 16 Tags, 1 bis 32 Felder (mit einem Typ: auto, float, int, string, bool), die Zeit (Standard: die Zeit des ersten Versuchs, bei jedem Wiederholversuch gleich), timeout_ms (1.000 bis 30.000), Wiederholungen und late. out enthält msg.metadata mit dem geschriebenen Measurement, den Feldern und Tags. Für eine allgemeine Integration ist der HTTP request-Block zu Ihrer eigenen API oft einfacher.