هذا برنامج صغير يمكنه الاشتراك في مواضيع MQTT أكثر من ORE ونشرها كإشعارات لسطح المكتب عبر D-BUS. يهدف البرنامج إلى التشغيل في خلفية جلسة سطح المكتب وإنشاء إشعارات سطح المكتب من رسائل MQTT.
الخيار الوحيد الصحيح هو التثبيت من المصدر. أولا ، تثبيت الذهاب.
بعد ذلك ، تثبيت GO تبعيات:
$ go get github.com/godbus/dbus
$ go get github.com/eclipse/paho.mqtt.golang
بعد ذلك ، قم بتثبيت تطبيق MQTT-DBUS-NOTIFY:
$ go install github.com/akeil/mqtt-dbus-notify
من المتوقع أن يكون ملف التكوين على $HOME/.config/mqtt-dbus-notify.json . يبدو أن تكوين عينة هكذا:
{
"host" : " localhost " ,
"port" : 1883 ,
"username" : " " ,
"password" : " " ,
"secure" : false ,
"timeout" : 5 ,
"icon" : " dialog-information " ,
"subscriptions" : [
{
"topic" : " calendar/alert " ,
"icon" : " appointment-soon " ,
"title" : " Appointment " ,
"body" : " {{.}} "
},
{
"topic" : " test/notify " ,
}
]
} بصرف النظر عن subscriptions ، هذه هي أيضا القيم الافتراضية. إذا كان وسيط MQTT يعمل على نفس الكمبيوتر على المنفذ الافتراضي ( 1883 ) وبدون مصادقة ، فلا يلزم تكوين.
يستخدم الخيار secure اتصال TLS المشفرة ، وعادة ما يكون عبر المنفذ 8883 .
لإنشاء الإخطارات ، يجب تكوين اشتراكات واحدة أو أكثر. يجب على الاشتراك على الأقل تحديد topic واحد. يمكن استخدام الأبطال البرية الموضوع.
يمكن للاشتراك أيضًا تحديد icon مخصصة. إذا لم يتم تحديد أي منها ، فسيتم استخدام الرمز الافتراضي (انظر أدناه).
بشكل افتراضي ، يتم استخدام جسم رسالة MQTT كعنوان للإخطار. إذا كانت الرسالة تتكون من خطوط متعددة ، فسيتم استخدام السطر الأول كعنوان والخطوط المتبقية كجسم.
يمكن أن يكون للاشتراك title body مخصص. هذه قوالب الذهاب. استخدم {{.}} للإشارة إلى حمولة رسالة MQTT.
ضمن قالب العنوان والقالب ، يمكن استخدام وظيفة Topic لإرجاع جزء من موضوع MQTT. على سبيل المثال:
...
"topic" : " weather/berlin/temperature "
"title" : " {{.Topic 2}} in {{.Topic 1}} "
...سيعرض هذا "درجة الحرارة في برلين" كعنوان إخطار.
يمكن تحديد الرموز باستخدام أسماء الأيقونات القياسية مثل "الموعد". انظر إلى بنية الدليل أدناه /usr/share/icons/ لمعرفة الرموز المتوفرة.
بدلاً من ذلك ، يمكن استخدام المسار المطلق إلى ملف الصورة icon . مثله:
{
"topic" : " my/topic " ,
"icon" : " /home/yourname/myicon.png "
}يحتاج البرنامج إلى التشغيل في سياق جلسة سطح المكتب. خلاف ذلك ، لن يكون قادرًا على نشر الإخطارات.
هناك طريقة بسيطة للقيام بذلك وهي إنشاء ملف mqtt-dbus-notify.desktop ووضعه في $HOME/.config/autostart .
[Desktop Entry]
Name =MQTT-DBus-Notify
Comment =Desktop notifications from MQTT messages
NoDisplay =false
Exec =$GOHOME/bin/mqtt-dbus-notify
Type =Application
Categories =Accessoires ; يجب على معظم بيئات سطح المكتب (الكل؟) دعم هذا الأمر وتشغيل الأمر المدرج ضمن Exec عند تسجيل الدخول إلى DE.