Это небольшая программа, которая может подписаться на одну руду более темы MQTT и публиковать их в качестве уведомлений на рабочем столе через D-BUS. Программа предназначена для запуска в фоновом режиме настольного сеанса и генерации уведомлений на рабочем столе из сообщений MQTT.
Единственный вариант правого нет - установить из источника. Сначала установите Go.
Далее, установка 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 . Это шаблоны GO. Используйте {{.}} , Чтобы обратиться к полезной нагрузке сообщения MQTT.
В рамках титула и шаблона тела функция Topic может быть использована для возврата части темы MQTT. Например:
...
"topic" : " weather/berlin/temperature "
"title" : " {{.Topic 2}} in {{.Topic 1}} "
...Это будет отображать «температуру в Берлине» в качестве заголовка уведомления.
Значки могут быть указаны с использованием стандартных имен значков, таких как «Назначение-SOON». Посмотрите на структуру каталога ниже /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.