這是一個小程序,可以訂閱一個礦石更多的MQTT主題,並通過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選項通常在端口8883上使用TLS加密連接。
要生成通知,需要配置一個或多個訂閱。訂閱至少必須指定一個topic 。可以使用主題通配符。
訂閱還可以指定自定義icon 。如果未指定,將使用默認圖標(請參見下文)。
默認情況下,MQTT消息的主體用作通知標題。如果消息由多行組成,則將第一行用作標題,其餘行作為身體。
訂閱可以具有自定義的title和body 。這些是GO模板。使用{{.}}參考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 ;登錄DE時,大多數(全部?)桌面環境都應該支持這一點,並運行Exec下列出的命令。