Il s'agit d'un petit programme qui peut s'abonner à un minerai de minerai MQTT et les publier sous forme de notifications de bureau via D-BUS. Le programme est destiné à s'exécuter en arrière-plan d'une session de bureau et à générer des notifications de bureau à partir des messages MQTT.
La seule option droite non consiste à installer à partir de la source. Tout d'abord, installez Go.
Ensuite, installez les dépendances GO:
$ go get github.com/godbus/dbus
$ go get github.com/eclipse/paho.mqtt.golang
Ensuite, installez l'application MQTT-DBUS-NOTIFY:
$ go install github.com/akeil/mqtt-dbus-notify
Le fichier de configuration est attendu sur $HOME/.config/mqtt-dbus-notify.json . Un exemple de configuration ressemble à ceci:
{
"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 " ,
}
]
} Mis à part les subscriptions , ce sont également les valeurs par défaut. Si le courtier MQTT fonctionne sur le même ordinateur sur le port par défaut ( 1883 ) et sans authentification, aucune configuration n'est requise.
L'option secure utilise une connexion cryptée TLS, généralement sur le port 8883 .
Pour générer des notifications, un ou plusieurs abonnements doivent être configurés. Un abonnement doit au moins spécifier un topic . Les caractères génériques de sujet peuvent être utilisés.
Un abonnement peut également spécifier une icon personnalisée. Si aucun n'est spécifié, l'icône par défaut sera utilisée (voir ci-dessous).
Par défaut, le corps du message MQTT est utilisé comme titre pour la notification. Si le message se compose de plusieurs lignes, la première ligne est utilisée comme titre et les lignes restantes comme corps.
Un abonnement peut avoir un title et body personnalisés. Ce sont des modèles GO. Utilisez {{.}} Pour se référer à la charge utile du message MQTT.
Dans le modèle de titre et de corps, la fonction Topic peut être utilisée pour renvoyer une partie du sujet MQTT. Par exemple:
...
"topic" : " weather/berlin/temperature "
"title" : " {{.Topic 2}} in {{.Topic 1}} "
...Cela affichera "la température à Berlin" comme titre de notification.
Les icônes peuvent être spécifiées à l'aide de noms d'icônes standard comme "rendez-vous-soon". Regardez la structure du répertoire ci-dessous /usr/share/icons/ pour voir quelles icônes sont disponibles.
Alternativement, le chemin absolu vers un fichier image peut être utilisé comme icon . comme ça:
{
"topic" : " my/topic " ,
"icon" : " /home/yourname/myicon.png "
}Le programme doit s'exécuter dans le contexte d'une session de bureau. Sinon, il ne serait pas en mesure de publier des notifications.
Un moyen simple de le faire consiste à créer un fichier mqtt-dbus-notify.desktop et à le placer dans $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 ; La plupart des environnements de bureau (tous?) Doivent prendre en charge cela et exécuter la commande répertoriée sous Exec lorsque vous vous connectez au DE.