> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/input-output/communication/mqtt-subscribe.md).

# MQTT Subscribe

Ce bloc de fonction écoute un topic MQTT et fournit les messages entrants pour utilisation ailleurs dans votre scénario. Il suit si un message est nouveau afin que vous puissiez déclencher des actions uniquement lorsque des données fraîches arrivent.

## 📥 Entrées

* `Enable` — Entrée pour activer ou désactiver l'abonnement. Lorsqu'il est actif, le bloc se connecte au broker et écoute les messages.

## 📤 Sorties

* `Data` — Sortie contenant la charge utile (texte) du dernier message reçu depuis le topic abonné.
* `New Data` — Sortie booléenne qui devient true pendant une exécution lorsque un nouveau message arrive.

## 🕹️ Contrôles

* `Broker Address` — Nom d'hôte ou IP du broker MQTT auquel se connecter.
* `Port` — Port TCP du broker (généralement 1883 ou 8883 pour TLS).
* `Topic` — Chaîne du topic à abonner (prise en charge de la correspondance exacte de topic).
* `Client ID` — Identifiant optionnel pour le client MQTT.
* `Username` — Nom d'utilisateur optionnel pour l'authentification auprès du broker.
* `Password` — Mot de passe optionnel pour l'authentification.
* `Keep Alive` — Intervalle utilisé pour maintenir la connexion au broker.
* `Use TLS` — Basculer pour activer une connexion sécurisée TLS (si prise en charge par le broker).
* `Reconnect / Connect` — Bouton ou logique automatique dans l'UI pour (re)établir la connexion lorsque les paramètres changent.

(la présentation de ces contrôles dans l'UI peut varier ; fournissez des paramètres de connexion valides et activez le bloc pour commencer à recevoir des messages)

## 🎯 Fonctionnalités

* Abonnement persistant tant que `Enable` est true — les messages sont reçus en temps réel.
* Fournit à la fois les données brutes via `Data` et un drapeau `New Data` valable une seule exécution pour que les blocs en aval réagissent uniquement aux nouveaux messages.
* Se reconnecte automatiquement si les paramètres de connexion changent.
* Statut de connexion basique et messages d'information apparaissent dans l'UI du bloc pour aider au diagnostic des événements de connexion.

## ⚙️ Mécanisme d'exécution

* Lorsque `Enable` est actif, le bloc utilise les paramètres de connexion configurés pour se connecter au broker MQTT et s'abonner au `Topic` choisi.
* Les messages entrants sont stockés en interne et exposés sur la sortie `Data`.
* Le bloc met `New Data` à true uniquement pour l'exécution immédiatement après l'arrivée d'un nouveau message ; lors des exécutions suivantes, il revient à false jusqu'à la réception d'un autre message.
* La modification des paramètres de connexion provoque une reconnexion afin que les nouveaux paramètres prennent effet.

## 📝 Instructions d'utilisation

1. Renseignez les paramètres de connexion : `Broker Address`, `Port` et `Topic` (ajoutez les identifiants si le broker les exige).
2. Activez le bloc via l'entrée `Enable`.
3. Utilisez la sortie `Data` pour transmettre les payloads reçus à d'autres blocs. Utilisez `New Data` pour déclencher le traitement en aval uniquement lorsqu'un nouveau message arrive.
4. Si vous changez les paramètres de connexion, laissez un court instant au bloc pour se reconnecter.

## 💡 Astuces

* Pour transférer les messages reçus vers un serveur ou un service, connectez `Data` à `REST API - Post`.
* Pour republier ou renvoyer des messages, combinez ce bloc avec `MQTT Publish` ou `MQTT Publish (TLS-Beta)`.
* Utilisez `Data to JSON` pour structurer plusieurs champs depuis le texte entrant avant de les journaliser ou les exporter.
* Sauvegardez les messages entrants pour revue ultérieure en connectant `Data` à `CSV Export` ou à `SQL-DB Operations` (via `Data to JSON` ou un formatage approprié).
* Ajoutez un bloc `Debug Input` pour inspecter rapidement le contenu des messages dans la fenêtre de log pendant le développement.
* Pour gérer des formats changeants, utilisez `Replace None` ou `Is None` afin de traiter proprement les messages manquants ou malformés.

(les conseils ci‑dessus n'utilisent que les blocs de fonction disponibles dans le système)

## 🛠️ Résolution des problèmes

* Aucun message reçu : vérifiez que `Broker Address`, `Port` et `Topic` sont corrects et que le broker est joignable depuis la machine exécutant le scénario.
* Erreurs d'authentification : vérifiez `Username` et `Password` et si votre broker exige TLS.
* Connexion intermittente : vérifiez les paramètres réseau/pare-feu et essayez d'activer TLS ou d'ajuster `Keep Alive`.
* Les messages arrivent mais ne sont pas propagés : assurez-vous que les blocs en aval sont activés et utilisez le drapeau `New Data` s'ils doivent s'exécuter uniquement sur de nouveaux payloads.
* Si vous modifiez les paramètres, attendez brièvement après la réactivation pour que le bloc se reconnecte avant d'attendre des messages.
