Ini adalah program kecil yang dapat berlangganan satu lebih banyak topik MQTT dan menerbitkannya sebagai pemberitahuan desktop melalui D-Bus. Program ini dimaksudkan untuk berjalan di latar belakang sesi desktop dan menghasilkan pemberitahuan desktop dari pesan MQTT.
Satu -satunya opsi yang tidak adalah menginstal dari sumber. Pertama, instal Go.
Selanjutnya, instal GO Dependencies:
$ go get github.com/godbus/dbus
$ go get github.com/eclipse/paho.mqtt.golang
Selanjutnya, instal aplikasi MQTT-DBUS-Notify:
$ go install github.com/akeil/mqtt-dbus-notify
File konfigurasi diharapkan pada $HOME/.config/mqtt-dbus-notify.json . Konfigurasi sampel terlihat seperti ini:
{
"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 " ,
}
]
} Selain subscriptions , ini juga merupakan nilai default. Jika broker MQTT berjalan di komputer yang sama di port default ( 1883 ) dan tanpa otentikasi, tidak diperlukan konfigurasi.
Opsi secure menggunakan koneksi terenkripsi TLS, biasanya lebih dari port 8883 .
Untuk menghasilkan pemberitahuan, satu atau lebih langganan perlu dikonfigurasi. Langganan setidaknya harus menentukan satu topic . Topik Wildcards dapat digunakan.
Langganan juga dapat menentukan icon khusus. Jika tidak ada yang ditentukan, ikon default akan digunakan (lihat di bawah).
Secara default, badan pesan MQTT digunakan sebagai judul untuk pemberitahuan. Jika pesan terdiri dari beberapa baris, baris pertama digunakan sebagai judul dan garis yang tersisa sebagai tubuh.
Langganan dapat memiliki title dan body yang disesuaikan. Ini adalah template Go. Gunakan {{.}} Untuk merujuk ke muatan pesan MQTT.
Dalam judul dan templat tubuh, fungsi Topic dapat digunakan untuk mengembalikan bagian dari topik MQTT. Misalnya:
...
"topic" : " weather/berlin/temperature "
"title" : " {{.Topic 2}} in {{.Topic 1}} "
...Ini akan menampilkan "suhu di Berlin" sebagai judul pemberitahuan.
Ikon dapat ditentukan menggunakan nama ikon standar seperti "janji temu". Lihatlah struktur direktori di bawah /usr/share/icons/ untuk melihat ikon mana yang tersedia.
Atau, jalur absolut ke file gambar dapat digunakan sebagai icon . seperti ini:
{
"topic" : " my/topic " ,
"icon" : " /home/yourname/myicon.png "
}Program perlu dijalankan dalam konteks sesi desktop. Kalau tidak, itu tidak akan dapat mempublikasikan pemberitahuan.
Cara sederhana untuk melakukan ini adalah dengan membuat file mqtt-dbus-notify.desktop dan menempatkannya di $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 ; Sebagian besar lingkungan desktop (semua?) Harus mendukung ini dan menjalankan perintah yang tercantum di bawah Exec ketika Anda masuk ke DE.