Dies ist ein kleines Programm, das ein Erz mehr MQTT-Themen abonnieren und sie als Desktop-Benachrichtigungen über D-Bus veröffentlichen kann. Das Programm soll im Hintergrund einer Desktop -Sitzung ausgeführt werden und Desktop -Benachrichtigungen von MQTT -Nachrichten generieren.
Die einzige Option rechts ist die Installation von Quelle. Installieren Sie zuerst Go.
Installieren Sie als Nächstes GO -Abhängigkeiten:
$ go get github.com/godbus/dbus
$ go get github.com/eclipse/paho.mqtt.golang
Installieren Sie als Nächstes die App MQTT-DBUS-NOTIFY-App:
$ go install github.com/akeil/mqtt-dbus-notify
Die Konfigurationsdatei wird bei $HOME/.config/mqtt-dbus-notify.json erwartet. Eine Beispielkonfiguration sieht Folgendes aus:
{
"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 " ,
}
]
} Abgesehen von den subscriptions sind dies auch die Standardwerte. Wenn der MQTT -Broker auf dem selben Computer auf dem Standardport ( 1883 ) und ohne Authentifizierung ausgeführt wird, ist keine Konfiguration erforderlich.
Die secure Option verwendet eine TLS -verschlüsselte Verbindung, normalerweise über Port 8883 .
Um Benachrichtigungen zu generieren, müssen ein oder mehrere Abonnements konfiguriert werden. Ein Abonnement muss mindestens ein topic angeben. Themen -Wildcards können verwendet werden.
Ein Abonnement kann auch ein benutzerdefiniertes icon angeben. Wenn keiner angegeben ist, wird das Standardsymbol verwendet (siehe unten).
Standardmäßig wird der Körper der MQTT -Nachricht als Titel für die Benachrichtigung verwendet. Wenn die Nachricht aus mehreren Zeilen besteht, wird die erste Zeile als Titel und die verbleibenden Zeilen als Körper verwendet.
Ein Abonnement kann einen maßgeschneiderten title und body haben. Das sind Go -Vorlagen. Verwenden Sie {{.}} Um auf die MQTT -Nachrichtennutzlast zu verweisen.
Innerhalb der Title and Body -Vorlage kann die Topic verwendet werden, um einen Teil des MQTT -Themas zurückzugeben. Zum Beispiel:
...
"topic" : " weather/berlin/temperature "
"title" : " {{.Topic 2}} in {{.Topic 1}} "
...Dadurch wird "Temperatur in Berlin" als Benachrichtigungs -Titel angezeigt.
Symbole können unter Verwendung von Standard-Symbolnamen wie "Termin-AON" angegeben werden. Schauen Sie sich die Verzeichnisstruktur unter /usr/share/icons/ um zu sehen, welche Symbole verfügbar sind.
Alternativ kann der absolute Pfad zu einer Bilddatei als icon verwendet werden. so was:
{
"topic" : " my/topic " ,
"icon" : " /home/yourname/myicon.png "
}Das Programm muss im Kontext einer Desktop -Sitzung ausgeführt werden. Andernfalls wäre es nicht in der Lage, Benachrichtigungen zu veröffentlichen.
Eine einfache Möglichkeit, dies zu tun, besteht darin, eine mqtt-dbus-notify.desktop Datei zu erstellen und in $HOME/.config/autostart zu platzieren.
[Desktop Entry]
Name =MQTT-DBus-Notify
Comment =Desktop notifications from MQTT messages
NoDisplay =false
Exec =$GOHOME/bin/mqtt-dbus-notify
Type =Application
Categories =Accessoires ; Die meisten (alle?) Desktop -Umgebungen sollten dies unterstützen und den unter Exec aufgeführten Befehl ausführen, wenn Sie sich bei der DE anmelden.