> 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-publish.md).

# MQTT Publish (TLS-Beta)

Ce bloc fonctionnel envoie des données à un broker MQTT avec une option de sécurité TLS. Il fournit des réglages pour Broker Address, l'authentification, TLS Mode Selection, QoS, le drapeau Retain et Keep alive—vous permettant de publier des messages formatés depuis votre système vers n'importe quel Topic MQTT.

## 📥 Entrées (sockets) <a href="#inputs" id="inputs"></a>

`Enable` Bascule pour activer la publication. Lorsque cette entrée est TRUE, le bloc tentera d'envoyer les données fournies.

`Data` Les données à publier. Cette socket générique accepte du texte ou des données structurées (il est recommandé de formater en JSON ou en string).

## 📤 Sorties (sockets) <a href="#outputs" id="outputs"></a>

Ce bloc fonctionnel ne produit aucune sortie.

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

`Broker Address` Saisissez l'hôte ou l'adresse IP du broker MQTT.

`Port` Saisissez le port du broker. Le port par défaut courant est 1883.

`Topic` Le Topic MQTT sur lequel publier les messages.

`Username` Nom d'utilisateur optionnel pour l'authentification auprès du broker.

`Password` Mot de passe optionnel pour l'authentification (masqué dans l'UI).

`TLS Mode Selection` Choisissez le comportement TLS. Options : `None`, `Auto` (utilise le certificat système/racine), ou des versions TLS spécifiques avec un fichier de certificat personnalisé.

`Cert File Path` Chemin optionnel vers un fichier .crt lorsque vous utilisez une configuration TLS personnalisée.

`Quality of Service` Choisissez le niveau de livraison du message (0, 1 ou 2).

`Keep alive (s)` Réglez l'intervalle de keepalive en secondes.

`Retain` Activez pour publier des messages conservés (retained) sur le broker.

## 🎯 Principales fonctionnalités <a href="#features" id="features"></a>

* Publication sécurisée avec options TLS sélectionnables, incluant la gestion automatique des certificats ou un fichier de certificat personnalisé.
* Prise en charge de l'authentification via Username/Password.
* QoS et drapeau Retain pour garantir la livraison et la persistance des messages.
* Tentatives de reconnexion automatiques en cas de perte de connexion et journalisation simple pour diagnostiquer les problèmes.
* Contrôles UI simples pour tous les paramètres MQTT courants — aucune programmation requise.

## 📝 Comment utiliser <a href="#usage" id="usage"></a>

1. Remplissez `Broker Address` et `Port` pour pointer vers votre broker MQTT.
2. Définissez `Topic` pour les messages cibles.
3. Si nécessaire, fournissez `Username` et `Password`. Laissez-les vides pour les brokers anonymes.
4. Choisissez `TLS Mode Selection`. Utilisez `Auto` pour des connexions sécurisées standard sans fournir de fichier de certificat, ou indiquez `Cert File Path` si votre broker exige un .crt spécifique.
5. Configurez `Quality of Service`, `Keep alive (s)` et activez `Retain` si vous souhaitez que les messages soient conservés sur le broker.
6. Alimentez la donnée à envoyer dans l'entrée `Data`. Utilisez `Enable` pour déclencher l'envoi (TRUE pour activer).
7. Surveillez les logs affichés par le bloc pour l'état de connexion et le statut de publication.

## 📊 Que se passe-t-il lors de l'exécution <a href="#evaluation" id="evaluation"></a>

Lorsque le bloc est activé, il vérifie les paramètres de connexion et tente de se connecter ou de se reconnecter au broker si nécessaire. Une fois connecté, il publie les `Data` fournis sur le `Topic` configuré en utilisant le Quality of Service et les options Retain sélectionnées. Les problèmes de connexion et les résultats de publication sont signalés via le statut/les messages de journal du bloc.

## 💡 Astuces et conseils <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Combinez avec `Data to JSON` pour convertir plusieurs champs de données en un seul message JSON adapté aux tableaux de bord IoT.
* Utilisez `String Merge` pour construire un message texte personnalisé (par exemple fusionner device id + status).
* Ajoutez `Date-Time` pour inclure des horodatages dans vos messages pour la journalisation ou les graphiques chronologiques.
* Déclenchez la publication sur des événements en couplant ce bloc avec `Logic Input` ou `Rising Edge` afin que les messages ne soient envoyés que lorsqu'un événement pertinent se produit.
* Utilisez `MQTT Subscribe (TLS-Beta)` dans une instance séparée du même type de bloc pour vérifier que les messages sont bien reçus sur le broker (utile pour des tests end-to-end).
* Avant d'envoyer des données volumineuses en images, pensez à utiliser `Image Logger` ou `Image Write` pour enregistrer les images localement et ne publier que des métadonnées ou un chemin de fichier via MQTT afin de réduire la bande passante.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Connexion échouée : vérifiez `Broker Address`, `Port`, le pare-feu et la connectivité réseau. Essayez un client MQTT simple pour confirmer que le broker est joignable.
* Erreurs de certificat/TLS : basculez `TLS Mode Selection` sur `Auto` si vous n'avez pas de fichier de certificat, ou fournissez le bon `Cert File Path` lorsque TLS personnalisé est requis.
* Échec d'authentification : vérifiez `Username` et `Password` auprès de votre broker.
* Messages non visibles sur le broker : confirmez `Topic`, QoS et `Retain` ; utilisez `MQTT Subscribe (TLS-Beta)` pour surveiller le Topic localement.
* Format de données inattendu : prévisualisez ou journalisez votre message avant publication en utilisant `Debug Input`, `String Merge`, ou `Data to JSON` pour vous assurer que le format correspond aux attentes des abonnés.
