Nouveau : le pare-feu IA surveille chaque module et explique chaque incident en termes simples. Découvrez comment ça marche

Blocs d’action

Référence de Requête HTTP, Réponse HTTP, MQTT out, Webhook, Émettre un événement, Définir une variable, Minuterie, bascule de flux, Exécuter un flux, Sortie de liaison, journal et Débogage.

Les blocs d’action font quelque chose : appeler un autre système, publier un message, stocker une variable, démarrer une minuterie, transmettre le message à un autre flux ou écrire une ligne de journal. Les actions liées aux appareils, aux alarmes et aux notifications figurent sur leurs propres pages : blocs de données IoT et blocs Alarme, commande et notification.

Comportement commun des blocs sortants

HTTP request, MQTT out et Webhook partagent ces règles :

SujetComportement
RisqueExterne : un déploiement qui en contient un demande une confirmation
Nouvelles tentativesSeules les défaillances transitoires sont relancées ; 3 tentatives par défaut (paramètres retry_*), au maximum 5, avec un délai exponentiel à partir de 1 s
IdempotenceChaque tentative d’un même message porte la même clé (X-Idempotency-Key, ou la propriété utilisateur MQTT 5 idempotency-key), y compris après un plantage ou une relecture, afin qu’un récepteur puisse dédoublonner
LivraisonAu moins une fois
DisjoncteurUn bloc dont les appels échouent sans cesse suspend ses appels pendant un certain temps (circuit_open)
Messages tardifslate : skip (par défaut ; le message s’arrête et est compté comme Trop ancien) ou send (un flux de données qui doit aussi recevoir le retard accumulé après une panne)
TestsUne exécution de test n’envoie rien et indique ce qu’elle aurait envoyé
OrdreLes appels HTTP request et MQTT out s’exécutent séparément de l’exécution qui les a produits : le message suivant de l’appareil n’attend pas la réponse, et l’ordre des messages après l’appel n’est pas garanti
AdressesLes adresses privées et internes sont refusées (ssrf_blocked)

HTTP request

Appelle un point de terminaison HTTP et place la réponse dans le message. Le schéma, l’hôte, le port, l’authentification et le TLS proviennent uniquement de la connexion endpoint, jamais du message. Voir Connexions et secrets.

ParamètreSignificationPar défautValeurs
endpointLa connexion au point de terminaison HTTPobligatoire
hostUn autre hôte autorisé par le point de terminaisonvideun modèle ; doit correspondre aux hôtes autorisés du point de terminaison
methodMéthode HTTPGETGET, POST, PUT, PATCH, DELETE, HEAD
pathAjouté au chemin de base du point de terminaisonvideun modèle, 1 024 caractères
queryParamètres de requêteaucunjusqu’à 16 lignes
headersEn-têtes supplémentairesaucunjusqu’à 16 lignes ; Host, Authorization, Cookie, Proxy-*, Content-Length, X-Idempotency-Key et les en-têtes hop-by-hop sont refusés
bodyCe qui est envoyépayloadpayload, template, none (masqué pour GET, HEAD, DELETE)
templateLe modèle du corpsvidejusqu’à 4 096 caractères
template_formatÉcriture des valeurs {{ }}texttext, json (chaque valeur en valeur JSON ; le corps doit être du JSON)
timeout_msDurée par tentative10,0001 000 à 30 000
parseLecture de la réponseautoauto, json, text
max_bytesRéponse la plus grande64 KiB1 à 256 KiB
response_headersEn-têtes de réponse conservés dans msg.metadata.headersallall, list, none (32 en-têtes au maximum, 8 KiB)
max_parallelAppels en cours pour ce bloc0 (sans limite)0 à 64
inlineGarde l’appel dans l’exécution, de sorte que le message suivant de l’appareil attend la réponse (le déploiement affiche un avertissement)offon, off
retry_*Tentatives et délai3, à partir de 1 s
lateVoir ci-dessusskipskip, send

Sorties :

  • out : statut inférieur à 400. msg.payload est le corps, msg.statusCode, msg.contentType, msg.metadata.headers. Les redirections ne sont pas suivies.
  • error : http_status (400 ou plus, corps dans msg.payload), timeout, connect, tls, ssrf_blocked, too_large, invalid_json, invalid_value, oauth_failed, function_error, circuit_open, limit. msg.error.attempts indique le nombre de tentatives effectuées.

Relancées : délais d’attente, échecs de connexion et HTTP 408, 425, 429 (en respectant Retry-After), 500, 502, 503, 504.

Pour un corps JSON construit à partir de valeurs, utilisez template_format: json et n’entourez pas les espaces réservés de guillemets : {"name": {{ msg.payload.name }}, "n": {{ msg.payload.n }}}.

HTTP response

Répond à l’appelant d’un déclencheur Webhook synchrone (reply: response). La première réponse d’une exécution l’emporte.

ParamètreSignificationPar défautValeurs
statusStatut HTTP (msg.statusCode le remplace)200100 à 599
headersEn-têtes de réponseaucuncontent-type, cache-control, location (3xx), x-* (pas x-forwarded-*)
bodyCe qui est envoyépayloadpayload, template, none
templateModèle du corpsvidejusqu’à 4 096 caractères
max_bytesCorps le plus grand256 KiB256 KiB au maximum

Erreurs : no_reply_pending, reply_sent, limit. Sans réponse, l’appelant reçoit 204 ; après le délai d’attente du hook, 504.

MQTT out

Publie la charge utile vers un sujet de votre broker, puis transmet le message. Le texte est envoyé en texte, tout le reste en JSON.

ParamètreSignificationPar défautValeurs
brokerLa connexion au broker MQTTobligatoire
topicLe sujet{{ msg.topic }}un modèle, 256 caractères ; un ~/ en tête représente le préfixe de sujet du broker
qosGarantie de livraison00, 1, 2
retainDemander au broker de conserver le messageoffon, off
timeout_msDélai de l’accusé de réception10,0001 000 à 30 000
max_parallelPublications en cours0 (sans limite)0 à 64
retry_*, lateComme ci-dessus

Erreurs : bad_topic (vide, + ou #, ou ~/ sans préfixe), timeout, connect, auth, ssrf_blocked, node_not_ready, not_configured, circuit_open, limit. Seuls les délais d’attente et les échecs de connexion sont relancés.

Webhook

Envoie le message à l’un des points de terminaison webhook de votre organisation : signé, relancé et listé dans les livraisons du point de terminaison. C’est le chemin de livraison garantie.

ParamètreSignificationPar défautValeurs
endpointLe point de terminaisonobligatoirepoints de terminaison actifs abonnés à Automation message
topicEnvoyé comme topic{{ msg.topic }}un modèle, 256 caractères
bodyCe qui est envoyé en plus du sujetpayloadpayload, payload and metadata
metadata_keysClés de métadonnées envoyéesaucune20 au maximum
lateVoir ci-dessusskipskip, send

Le récepteur reçoit l’événement automation.message avec topic, payload, originator, flowId, flowVersion, nodeId, actor et les métadonnées listées. out porte msg.metadata.webhook.deliveryId une fois mis en file. Erreurs : endpoint_not_found, endpoint_inactive, enqueue_failed, not_configured, node_not_ready, circuit_open, limit (webhooks non inclus dans votre offre). Voir Webhooks.

Emit event

Envoie un événement que Event déclenché avec la source flow entend, dans n’importe quel flux.

ParamètreSignificationPar défautValeurs
kindLe nom de l’événementobligatoireune lettre minuscule en premier, puis des lettres minuscules, des chiffres, _ et . ; 32 caractères au maximum
dataCe qu’il transportemsg.payloadtout type de valeur ; une valeur qui n’est pas un objet est encapsulée dans { "value": … }

Les écouteurs reçoivent msg.payload = les données et msg.topic flow/<kind>. Erreurs : rate_limited, invalid_value (un kind invalide, ou « emit: depth » : la cinquième étape d’une chaîne). Un déploiement refuse une boucle qu’il peut voir (flow_cycle). Un message tardif n’émet rien.

Set variable

Stocke une valeur dans une variable de flux ou globale.

ParamètreSignificationValeurs
pathLa variableflow.<name> ou global.<name>, clés plus profondes autorisées ; flow.persist:<name> pour le stockage persistant
valueCe qu’il faut stockertout type de valeur ; rien (null) la supprime

Erreurs : invalid_value, limit (stockage plein ; l’ancienne valeur reste). Limites : 1 MiB par flux, 4 MiB pour les variables globales. Dans un test, la copie propre au test est écrite.

Minuterie

Démarre, redémarre ou annule une minuterie nommée. À échéance, chaque déclencheur Minuterie nommée portant ce nom se déclenche.

RéglageSignificationValeur par défautValeurs
nameLa minuterie, partagée par tous les fluxobligatoire
opDémarrer (à nouveau) ou annulerstartstart, cancel
msDurée (msg.ms la remplace)1 min0 à 7 jours

Démarrer une minuterie en cours la redémarre à zéro : le schéma de chien de garde. Erreur queue_full « too many timers » : l’organisation détient 64 minuteries de 60 s ou moins, ou 10 000 plus longues. Un message tardif ne démarre ni n’annule rien.

Activer ou désactiver un flux

Active ou désactive un autre flux, comme le commutateur de la liste des flux.

RéglageSignificationValeur par défautValeurs
flowLe fluxobligatoireun flux déployé de l’organisation, autre que celui-ci
stateActiver ou désactiverenableenable, disable

out transporte msg.metadata.flow_enable { flow, enabled, changed }. Erreurs : not_configured, self_reference, not_found, not_approved, conflict, invalid, limit (plus de 6 commutations par minute). Déployer un flux contenant ce bloc exige la confirmation saisie.

Exécuter un flux

Transmet le message à l’Entrée de flux d’un autre flux et termine cette branche.

RéglageSignificationValeurs
flowLe flux à exécuterun autre flux du même hôte ; jamais un flux racine

Pas de port out ; rien ne revient. Erreurs : not_configured, invalid_value (absent, désactivé ou arrêté), forbidden (une racine), loop (cinquième saut). Un flux que d’autres flux exécutent ne peut pas être supprimé tant que ces blocs ne sont pas retirés. Le message conserve son appareil, donc Enregistrer la télémétrie fonctionne dans le flux cible.

Sortie de liaison

Transmet le message aux blocs Entrée de liaison par leur nom, ou renvoie la réponse à un Appel de liaison.

RéglageSignificationValeur par défautValeurs
modelink (vers des blocs Entrée de liaison) ou return (répondre à l’appelant)linklink, return
targetsNoms des Entrées de liaison (mode link)videjusqu’à 16
nameLe nom du retour (mode return)outun retour déclaré par l’appelant

Pas de port out. Une cible absente est un avertissement dans le panneau de débogage, non une erreur. Un déploiement refuse les noms inconnus et les boucles sans bloc d’attente (cycle_sync).

Journal système

Écrit une ligne dans le journal du flux (Activité > Événements > Journal, conservé 24 heures).

RéglageSignificationValeur par défautValeurs
textLa ligne, avec des espaces réservés {{ }}{{ msg.payload }}jusqu’à 512 caractères
levelPrioritéinfoinfo, notice, warn, err

Débogage

Affiche les messages qui lui parviennent dans l’onglet Activité > Débogage de l’éditeur. Pas de port out.

RéglageSignificationValeur par défautValeurs
propertyCe qu’il faut affichermsg.payloadmsg (le message entier) ou un chemin
activeAfficher les messagesonon, off

Les entrées de débogage sont conservées 24 heures et sont visibles des personnes autorisées à déboguer. Le bouton du bloc les active et désactive sans enregistrer.

Écrire dans une base de données de séries temporelles externe

Un bloc écrit un point par message dans un serveur de base de données de séries temporelles externe qui vous appartient, via une connexion au serveur de base de données. Réglages : le serveur, le bucket ou la base, la mesure, jusqu’à 16 tags, 1 à 32 champs (avec un type : auto, float, int, string, bool), l’heure (par défaut : l’heure de la première tentative, identique à chaque nouvelle tentative), timeout_ms (1 000 à 30 000), les nouvelles tentatives et late. out transporte msg.metadata avec la mesure, les champs et les tags écrits. Pour une intégration générale, le bloc Requête HTTP vers votre propre API est souvent plus simple.