Préparer l'hôte¶
Si vous installez Sowel sur une machine fraîchement préparée (Raspberry Pi, mini-PC, VM Debian/Ubuntu), cette page couvre les deux dépendances que Sowel n'embarque pas : Docker et un broker MQTT (optionnel, selon les plugins que vous utilisez).
Vous avez déjà Docker et/ou un broker MQTT ?
Passez directement à Premiers pas — Installation.
Spécificités Raspberry Pi¶
Cette section ne concerne que les Raspberry Pi (3, 4, 5). Sur un PC/serveur Debian ou Ubuntu standard, sautez à Installer Docker.
Système 64-bit obligatoire¶
Sowel ne fonctionne qu'en 64-bit. Vérifiez :
Si vous voyez armv7l, reflashez la carte SD avec Raspberry Pi OS Lite 64-bit via Raspberry Pi Imager.
Carte SD ou SSD¶
Sowel et InfluxDB écrivent en continu. Une carte SD grand public meurt typiquement en 6 à 12 mois.
- Minimum : carte SD haute endurance (SanDisk High Endurance, Samsung PRO Endurance), 64 Go ou plus.
- Recommandé : SSD USB3 branché sur un port USB bleu. Beaucoup plus fiable et plus rapide.
Augmenter le swap¶
Par défaut, Raspberry Pi OS alloue 100 Mo de swap, ce qui est trop juste lors des compactions InfluxDB.
sudo nano /etc/dphys-swapfile
# changer CONF_SWAPSIZE=100 en CONF_SWAPSIZE=1024
sudo systemctl restart dphys-swapfile
Installer Docker¶
Procédure officielle, valable sur Raspberry Pi OS, Debian et Ubuntu.
Puis logout/login (ou newgrp docker) pour que la nouvelle appartenance au groupe prenne effet :
Ne pas sauter le re-login
Si vous lancez le script d'installation Sowel sans re-login, il échoue avec Error: cannot reach the Docker daemon. Votre utilisateur est bien dans le groupe docker, mais votre session shell courante ne le sait pas encore.
Activez Docker au boot (normalement fait automatiquement, à vérifier) :
Installer un broker MQTT (optionnel)¶
Sowel n'embarque pas de broker MQTT
Les plugins basés sur MQTT (Zigbee2MQTT, LoRa2MQTT, Tasmota, Shelly...) ont besoin d'un broker accessible sur le LAN. Si vous en avez déjà un, passez à la suite. Si vous n'utilisez aucun plugin MQTT, cette section ne vous concerne pas.
Procédure pour Mosquitto, valable sur Raspberry Pi OS, Debian et Ubuntu.
Installation¶
Le service démarre automatiquement mais n'écoute que sur localhost:1883 par défaut depuis Debian Bookworm.
Ouvrir au LAN¶
Créez /etc/mosquitto/conf.d/sowel.conf :
Deux lignes suffisent. Toutes les autres options (persistence, persistence_location, etc.) sont déjà dans le /etc/mosquitto/mosquitto.conf par défaut. Ne les redéfinissez pas, Mosquitto refuse les valeurs dupliquées.
Puis :
Sécurité de allow_anonymous true
Sans authentification, n'importe quelle machine du LAN peut publier et s'abonner. Acceptable pour une installation domestique purement LAN derrière la box. À éviter si le port 1883 est exposé à Internet, ou sur un LAN partagé non fiable.
Pour ajouter un mot de passe, voir la [documentation Mosquitto](https://mosquitto.org/man/mosquitto-conf-5.html).
Tester¶
Depuis une autre machine du LAN :
# terminal 1 (abonnement)
mosquitto_sub -h <ip-de-l'hôte> -p 1883 -t test/#
# terminal 2 (publication)
mosquitto_pub -h <ip-de-l'hôte> -p 1883 -t test/hello -m "ok"
Si le message arrive, le broker est joignable. Vous pouvez maintenant pointer le plugin Zigbee2MQTT de Sowel (et Z2M lui-même) vers mqtt://<ip-de-l'hôte>:1883.
Dépannage¶
Error: cannot reach the Docker daemon¶
Votre utilisateur n'est pas dans le groupe docker, ou votre session shell n'a pas rechargé ses groupes. Voir Installer Docker.
Mosquitto refuse de démarrer : Duplicate persistence_location¶
Vous avez redéfini persistence_location (ou persistence) dans votre conf.d/sowel.conf. Ces options sont déjà dans le mosquitto.conf par défaut. Retirez-les de votre fichier : il ne doit contenir que listener et allow_anonymous.
Start request repeated too quickly¶
Après plusieurs tentatives de démarrage ratées, systemd bloque les nouvelles requêtes start. Réinitialisez le compteur :