Un petit article rapide pour te donner une petite astuce afin d’optimiser MQTT pour Rhasspy. J’avais vu cette astuce sur le discord de snips donné par Psychokiller1888.
J’ai déjà rapidement évoqué le fonctionnement de MQTT dans cet article. C’est donc un moyen de discussion qui permet à des composants logiciels d’envoyer des messages et recevoir des messages sur ce qu’on appelle des “topics”.
Par défaut ces messages sont sauvegardés en attendant qu’un composant abonné au topic revienne à la vie si celui-ci est absent lors de la distribution du message.
Or dans le cadre de Rhasspy, cette fonctionnalité qui est appelée “persistence” ne nous intéresse pas du tout. En effet, soit le message est reçu au bon moment par le composant logiciel adéquat, soit c’est mort. Par exemple, si on demande l’heure, cela ne nous intéresse pas qu’il nous la donne 2 heures plus tard une fois qu’on a fini de corriger le problème. Bon, je simplifie mais l’esprit est là.
Et surtout, la persistance génère un fichier de type base de données qui peut être problématique dans certains cas.
Pour voir la taille du fichier existant :
ls -lsa /var/lib/mosquitto/mosquitto.db
Par défaut, rhasspy a besoin de mosquitto comme prérequis et fait office de serveur MQTT. C’est dans le fichier de configuration de mosquitto que nous allons désactiver la persistance. C’est parti.
Modification de la configuration mosquitto (serveur MQTT)
dans un premier temps, on arrête mosquitto
sudo systemctl stop mosquitto
On ouvre avec nano le fichier de configuration mosquitto :
sudo nano /etc/mosquitto/mosquitto.conf
Voici le contenu par défaut :
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
Nous allons tout simplement changer la ligne
persistence true
par la ligne
persistence false
Un CTRL+O pour sauvegarder et un CTRL+X pour quitter nano. Ensuite, on redémarre le tout
sudo init 6
Et voilà ! Le tour est joué 🙂 Une petite optimisation MQTT facile à mettre en place.
A bientôt !
Ced
Bonjour,
Cette astuce semble intégrée dans la dernière version de Snips
Hello Olivier
J’ai installé un snips il y a quelques jours et la persistance est toujours à “true” dans mon cas.
Je ne sais pas pourquoi nous avons 2 configs mosquitto différentes 🙂
Si d’autres ont la réponse, je suis preneur !
Ced