> 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/arabic/alblwkat-alwzyfyh/blocks-reference/input-output/communication/mqtt-publish.md).

# MQTT Publish (TLS-Beta)

تقوم هذه كتلة الدالة بإرسال بيانات إلى وسيط MQTT مع إمكانية استخدام أمان TLS اختياري. توفر إعدادات لعنوان الوسيط، المصادقة، وضع TLS، QoS، علم الاحتفاظ (retain) وkeepalive—حتى تتمكن من نشر رسائل منسقة من نظامك إلى أي `Topic`.

## 📥 Inputs (sockets)

* `Enable`\
  مفتاح لتفعيل النشر. عندما يكون هذا الإدخال TRUE ستحاول الكتلة إرسال البيانات المزوَّدة.
* `Data`\
  البيانات المراد نشرها. هذه المقبس العام يقبل نصاً أو بيانات مُركبة (يوصى بتنسيقها كـ JSON أو سلسلة نصية).

## 📤 Outputs (sockets)

هذه كتلة الدالة لا تُنتج أي مخرجات.

## 🕹️ Controls

* `Broker Address`\
  أدخل مضيف أو عنوان IP لوسيط MQTT.
* `Port`\
  أدخل منفذ الوسيط. الافتراضي الشائع هو 1883.
* `Topic`\
  الـ `Topic` في MQTT الذي ستُنشر إليه الرسائل.
* `Username`\
  اسم مستخدم اختياري لمصادقة على الوسيط.
* `Password`\
  كلمة مرور اختيارية لمصادقة على الوسيط (مخفاة في واجهة المستخدم).
* `TLS Mode Selection`\
  اختر سلوك TLS. الخيارات تتضمن `None`، `Auto` (استخدام شهادة النظام/root) وإصدارات TLS محددة مع ملف شهادة مخصص.
* `Cert File Path`\
  مسار اختياري لملف .crt عند استخدام تكوين TLS مخصص.
* `Quality of Service`\
  اختر مستوى توصيل الرسالة (0، 1 أو 2).
* `Keep alive (s)`\
  اضبط فترة keepalive بالثواني.
* `Retain`\
  مفتاح لنشر رسائل محتفظ بها على الوسيط.

## 🎯 Key features

* نشر آمن مع خيارات TLS قابلة للاختيار، بما في ذلك التعامل التلقائي مع الشهادات أو استخدام ملف شهادة مخصص.
* دعم المصادقة عبر `Username`/`Password`.
* إعدادات QoS وعلم الاحتفاظ لضمان التسليم والرسائل المستمرة.
* محاولات إعادة اتصال تلقائية عند فقدان الاتصال وتسجيل حالة بسيطة لتشخيص المشكلات.
* عناصر تحكم واجهة بسيطة لكل معلمات MQTT الشائعة—لا حاجة للبرمجة.

## 📝 How to use

1. املأ `Broker Address` و`Port` للإشارة إلى وسيط MQTT الخاص بك.
2. اضبط `Topic` للرسائل المستهدفة.
3. إن لزم، قدّم `Username` و`Password`، اتركهما فارغين إذا كان الوسيط يسمح بالوصول المجهول.
4. اختر `TLS Mode Selection`. استخدم `Auto` للاتصالات الآمنة القياسية بدون ملف شهادة، أو قدّم `Cert File Path` إذا كان وسيطك يتطلب ملف .crt محدد.
5. اضبط `Quality of Service` و`Keep alive (s)` وفعل `Retain` إن رغبت في تخزين الرسائل على الوسيط.
6. اغذِ البيانات المراد إرسالها إلى مدخل `Data`. استخدم `Enable` لتشغيل الإرسال (TRUE للتفعيل).
7. راقب السجلات التي تعرضها الكتلة لحالة الاتصال ونتائج النشر.

## 📊 What happens when it runs

عند التفعيل، تتحقق الكتلة من معلمات الاتصال وتحاول الاتصال أو إعادة الاتصال بالوسيط إذا لزم الأمر. بعد الاتصال، تنشر الكتلة البيانات الموجودة في `Data` إلى الـ `Topic` المهيأ باستخدام QoS وإعدادات الاحتفاظ المحددة. تُعرض مشكلات الاتصال ونتائج النشر عبر رسائل الحالة/السجل الخاصة بالكتلة.

## 💡 Tips and Tricks

* ادمج مع `Data to JSON` لتحويل حقول بيانات متعددة إلى رسالة JSON واحدة مناسبة للوحة تحكم IoT.
* استخدم `String Merge` عند رغبتك في إنشاء رسالة نصية مخصصة (مثلاً دمج device id + status).
* أضِف `Date-Time` لتضمين الطوابع الزمنية في رسائلك لأغراض التسجيل أو المخططات الزمنية.
* أشعل النشر بناءً على أحداث بربط هذه الكتلة مع `Logic Input` أو `Rising Edge` حتى تُرسل الرسائل فقط عند حدوث حدث مهم.
* استخدم `MQTT Subscribe (TLS-Beta)` في مثيل منفصل من نفس النوع للتحقق من استلام الرسائل على الوسيط (مفيد للاختبارات الشاملة).
* قبل إرسال بيانات صور كبيرة، فكر في استخدام `Image Logger` أو `Image Write` لحفظ الصور محلياً ونشر ميتاداتا أو مسار الملف عبر MQTT لتقليل عرض النطاق.

## 🛠️ Troubleshooting

* فشل الاتصال: تحقق من `Broker Address`، `Port` والجدار الناري وقابلية الوصول للشبكة. جرّب عميل MQTT بسيط للتأكد من أن الوسيط متاح.
* أخطاء الشهادة/TLS: غيّر `TLS Mode Selection` إلى `Auto` إذا لم يكن لديك ملف شهادة، أو زود المسار الصحيح في `Cert File Path` عند الحاجة إلى TLS مخصص.
* فشل المصادقة: تحقق من صحّة `Username` و`Password` مع الوسيط.
* الرسائل غير ظاهرة على الوسيط: تأكد من `Topic` وQoS وإعدادات `Retain`؛ استخدم `MQTT Subscribe (TLS-Beta)` لمراقبة الـ Topic محلياً.
* تنسيق بيانات غير متوقع: عاين أو سجّل رسالتك قبل النشر باستخدام `Debug Input`، `String Merge`، أو `Data to JSON` للتأكد أن التنسيق يتوافق مع توقعات المشتركين.
