mirror of
https://github.com/deunix-educ/voice-assistant.git
synced 2026-10-13 00:11:57 +02:00
54 lines
2.4 KiB
Plaintext
54 lines
2.4 KiB
Plaintext
# Configuration Mosquitto 2.x de l'assistant vocal.
|
|
#
|
|
# Deux façons de l'utiliser :
|
|
# - service Debian : `make mosquitto-config` (copie vers /etc/mosquitto/conf.d/) ;
|
|
# - conteneur Docker : monter ce fichier comme /mosquitto/config/mosquitto.conf
|
|
# (voir docs/MOSQUITTO.md).
|
|
#
|
|
# Piège n°1 : sans « listener » explicite, Mosquitto 2.x n'écoute QUE sur
|
|
# localhost. L'ESP32 ne peut alors pas se connecter, alors que mosquitto_sub
|
|
# fonctionne très bien sur la machine elle-même.
|
|
#
|
|
# Piège n°2 : UN SEUL « listener » par port. Deux lignes « listener 1883 »
|
|
# font planter le broker au démarrage (« Error: Address in use ») ; dans un
|
|
# conteneur en « restart: unless-stopped », il redémarre alors en boucle.
|
|
|
|
listener 1883 0.0.0.0
|
|
|
|
# Étape 15 : plus d'accès anonyme. Chaque client a un compte (make mqtt-user),
|
|
# et le fichier acl dit qui peut lire ou écrire quel topic : une carte ne lit
|
|
# que ses commandes, et personne d'autre que le serveur n'entend les micros.
|
|
# Chemins du conteneur Docker ; « make mosquitto-config » les adapte au service
|
|
# Debian (/etc/mosquitto/).
|
|
#
|
|
# Piège n°4 : TOUS les clients de ce broker ont désormais besoin d'un compte,
|
|
# y compris ceux d'autres projets qui l'utilisaient sans mot de passe.
|
|
allow_anonymous false
|
|
password_file /mosquitto/config/passwd
|
|
acl_file /mosquitto/config/acl
|
|
|
|
# Étape 16 : envoi immédiat des petits paquets (pas d'algorithme de Nagle). Un chunk audio
|
|
# de 1600 octets tient en deux paquets TCP ; sans cette option, le second attend l'accusé de
|
|
# réception du premier, que l'ESP32 retarde : la réponse démarre ~200 ms plus tard.
|
|
set_tcp_nodelay true
|
|
|
|
# Taille maximale d'un paquet MQTT complet (en-tête et topic compris).
|
|
# Un chunk audio fait 1600 octets : 8192 laisse une large marge.
|
|
# (remplace « message_size_limit », obsolète depuis Mosquitto 2.0)
|
|
max_packet_size 8192
|
|
|
|
# Journal sur la sortie standard : visible avec `docker logs` dans un conteneur,
|
|
# et dans `journalctl -u mosquitto` avec le service Debian.
|
|
# Piège n°3 : « log_dest syslog » dans un conteneur n'écrit nulle part, et un
|
|
# plantage au démarrage devient invisible.
|
|
log_dest stdout
|
|
log_type error
|
|
log_type warning
|
|
log_type notice
|
|
log_type information
|
|
connection_messages true
|
|
|
|
# Pas de persistance : les messages audio n'ont aucun intérêt après coup, et
|
|
# l'état « retenu » de l'ESP32 est republié à chaque connexion.
|
|
persistence false
|