이 프로그램은 하나의 광석 더 많은 MQTT 주제를 구독하여 D-BU를 통해 데스크탑 알림으로 게시 할 수있는 작은 프로그램입니다. 이 프로그램은 데스크탑 세션의 백그라운드에서 실행되고 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 옵션은 일반적으로 포트 8883 통해 TLS 암호화 된 연결을 사용합니다.
알림을 생성하려면 하나 이상의 구독을 구성해야합니다. 구독은 적어도 하나 topic 를 지정해야합니다. 주제 와일드 카드를 사용할 수 있습니다.
구독은 또한 사용자 정의 icon 지정할 수도 있습니다. 아무도 지정되지 않으면 기본 아이콘이 사용됩니다 (아래 참조).
기본적으로 MQTT 메시지의 본문은 알림 제목으로 사용됩니다. 메시지가 여러 줄로 구성되면 첫 번째 줄은 제목으로 사용되고 나머지 선은 본체로 사용됩니다.
구독에는 맞춤형 title 과 body 가있을 수 있습니다. 이들은 GO 템플릿입니다. {{.}} 사용하여 MQTT 메시지 페이로드를 참조하십시오.
제목 및 바디 템플릿 내에서 Topic 기능을 사용하여 MQTT 주제의 일부를 반환 할 수 있습니다. 예를 들어:
...
"topic" : " weather/berlin/temperature "
"title" : " {{.Topic 2}} in {{.Topic 1}} "
...이것은 "베를린의 온도"를 알림 제목으로 표시합니다.
아이콘은 "약속 -soo"와 같은 표준 아이콘 이름을 사용하여 지정할 수 있습니다. 사용 가능한 아이콘을 확인하려면 아래 /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 에 나열된 명령을 실행해야합니다.