1 line
16 KiB
JSON
1 line
16 KiB
JSON
[{"uuid":"6016aa4b-f42b-43ef-9957-b893fa030a0c","slug":"mosquitto","title":"Mosquitto : client et serveur MQTT","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-03-14 07:45:19","created_at":"2023-03-14 07:45:19","updated_at":"2023-03-14 07:45:19","tags":[],"plain":"Mosquitto est un courtier de messages (ou broker / serveur MQTT) MQTT open source. Plus d'infos sur MQTT à la page . Mosquitto peut être utilisé pour implémenter des scénarios tels que la collecte de données de capteurs, la surveillance de l'état des appareils et la gestion de l'IoT en général. Les clients MQTT peuvent se connecter à Mosquitto pour publier et/ou recevoir des messages sur des topics spécifiques, permettant une communication efficace et fiable entre les appareils. Dans cet article j'installe Mosquitto sur Rasbperry Pi. Le port par défaut 1883/tcp sera utilisé. Installer le service Mosquitto\nVoici les étapes générales pour installer Mosquitto sur Rasbperry Pi OS, Debian ou Ubuntu : Après l'installation, vous pouvez vérifier si Mosquitto est en cours d'exécution en utilisant la commande dans l'invite de commandes. Cela devrait afficher la version de Mosquitto et les informations de journalisation. Vérifier l’accessibilité du service\nPour vous assurer que le port Mosquitto est ouvert, vous pouvez utiliser un outil en ligne de commande comme nmap pour scanner votre adresse IP publique et vérifier si le port 1883 est ouvert. Par exemple, en utilisant la commande suivante : . Si le port Mosquitto est ouvert, vous devriez voir une ligne dans la sortie de la commande qui indique que le port 1883 est \"open\". Je conseille d’exécuter sur un autre ordinateur que celui qui exécute le service Mosquitto. Configurer la connexion identifiée\nLa connexion à Mosquitto peut être anonyme ou avec un nom d'utilisateur et un mot de passe, selon la configuration du serveur. Dans se paragraphe nous abordons la configuration d'un utilisateur. Pour créer un utilisateur et de définir un mot de passe afin d'accéder à Mosquitto, il faut utiliser l'utilitaire qui est installé avec Mosquitto et permet de gérer les informations d'identification des utilisateurs pour Mosquitto. sudo mosquittopasswd -c /etc/mosquitto/passwd UTILISATEUR Plus spécifiquement, cette commande effectue les actions suivantes :\npermet d'exécuter la commande avec des privilèges d'administrateur pour pouvoir écrire dans le dossier /etc/mosquitto où se trouve le fichier de mots de passe.\nest l'utilitaire de ligne de commande pour gérer le fichier de mots de passe.\ncrée un nouveau fichier de mots de passe s'il n'existe pas déjà, ou remplace un fichier existant.\nest le chemin d'accès complet au fichier de mots de passe à créer ou modifier.\nest le nom d'utilisateur à ajouter au fichier de mots de passe. Vous pouvez remplacer ce nom d'utilisateur par le nom que vous souhaitez utiliser. Une fois que vous avez créé le fichier de mots de passe et ajouté des utilisateurs, vous pouvez utiliser ces informations d'identification pour restreindre l'accès à Mosquitto, en configurant l'authentification basée sur le nom d'utilisateur et le mot de passe dans le fichier de configuration de Mosquitto. Cela est particulièrement important si vous utilisez Mosquitto dans un environnement de production ou si vous souhaitez sécuriser l'accès à votre broker MQTT. Vous devez modifier le fichier de configuration de Mosquitto pour autoriser l'authentification basée sur le nom d'utilisateur et le mot de passe. Ouvrez le fichier de configuration de Mosquitto. Le fichier peut être situé à différents endroits en fonction de votre installation. Par exemple, sur une installation standard de Mosquitto sous Linux, le fichier se trouve généralement dans . Ajoutez les lignes suivantes au fichier de configuration pour spécifier le chemin d'accès au fichier de mots de passe que vous avez créé avec , ainsi que les paramètres d'authentification : passwordfile /etc/mosquitto/passwd\n allowanonymous false Enregistrez le fichier de configuration et redémarrez le service Mosquitto pour que les modifications prennent effet :\n \n sudo systemctl restart mosquitto Après avoir suivi ces étapes, les utilisateurs devront s'authentifier avec un nom d'utilisateur et un mot de passe valides pour publier et souscrire à des messages dans Mosquitto. Si l'utilisateur n'a pas les bonnes informations d'identification, il sera refusé d'accès. Cette fonctionnalité de sécurité renforce la sécurité de Mosquitto et permet de restreindre l'accès à des utilisateurs de confiance uniquement.\n \nConfigurer la connexion anonyme\nLa connexion à Mosquitto peut être anonyme ou avec un nom d'utilisateur et un mot de passe, selon la configuration du serveur. Dans ce paragraphe nous abordons la configuration pour une connexion anonyme. Pour indiquer que la connexion au serveur MQTT est anonyme (sans nom d'utilisateur ni mot de passe), vous devez ajouter les lignes suivantes dans votre fichier de configuration : allowanonymous true Ceci autorisera les connexions anonymes au serveur MQTT. Si cette option n'est pas définie, toutes les connexions nécessiteront un nom d'utilisateur et un mot de passe valides. Assurez-vous de redémarrer le serveur MQTT après avoir modifié le fichier de configuration pour que les modifications prennent effet. Notez que l'utilisation de connexions anonymes peut présenter des risques de sécurité, car cela permet à n'importe qui de se connecter et de publier ou de recevoir des messages sans authentification. Il est donc recommandé d'utiliser des informations d'authentification sécurisées pour protéger votre serveur MQTT.\nEnvoyer / recevoir des messages MQTT\nMosquitto-clients est un outil en ligne de commande fourni avec le broker Mosquitto pour publier et souscrire à des messages MQTT à partir de la ligne de commande. En d'autres termes, Mosquitto-clients permet aux développeurs et aux administrateurs de système de tester et de déboguer des applications MQTT en utilisant des commandes simples pour publier et recevoir des messages. Cela peut être utile pour vérifier la connectivité, le flux de données et le traitement des messages entre les appareils et le broker Mosquitto. Pour installer les clients Mosquitto, y compris le client de ligne de commande et le client d'envoi , vous pouvez suivre ces étapes : sudo apt update\n sudo apt install mosquitto-clients Vous pouvez maintenant utiliser les clients Mosquitto pour publier et souscrire à des messages dans Mosquitto. Par exemple, vous pouvez utiliser la commande pour <u>publier des messages MQTT</u> à un topic : mosquittopub -h localhost -t sensor/elec -m 2546 Par exemple vous pouvez utiliser la commande pour souscrire au topic et <u>recevoir des messages MQTT</u> : mosquittosub -h localhost -t \"sensor/elec\""},{"uuid":"d9006eec-fc78-4e2f-9470-b0d173c68b7c","slug":"installer-mqtt-broker-mosquitto-linux","title":"Installer Mqtt Broker Mosquitto Linux","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-18 07:56:13","created_at":"2023-02-18 07:56:13","updated_at":"2023-02-18 07:56:13","tags":[],"plain":"REDIRECT>informatique:applications:mosquitto"},{"uuid":"8da6da4b-5b28-4f67-b6f7-277ee42843ce","slug":"de-zigbee2mqtt-a-proxmox-l-effet-papillon-d-un-switch-defaillant","title":"De Zigbee2MQTT à Proxmox : l’effet papillon d’un switch défaillant","category":"domotique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-25 06:01:36","created_at":"2025-05-25 06:01:36","updated_at":"2025-05-25 06:01:36","tags":{"logiciels":["Home Assistant"]},"plain":"Contexte initial\r\n\r\nDepuis plusieurs semaines, je soupçonnais mon coordinateur Zigbee SLZB-06M (Ethernet + PoE) de provoquer des instabilités réseau sous Zigbee2MQTT. Les symptômes étaient clairs : redémarrages en boucle du service, erreurs , commandes Zigbee échouées… Bref, une stack Zigbee instable malgré une configuration soignée.\r\n\r\nJ’avais tout envisagé : firmware Ember instable, problème d’alimentation PoE, bugs dans le bridge UART-to-TCP, saturation du port TCP 6638. J’ai même reflashé le dongle et validé la configuration YAML ligne par ligne. Sans succès. Toujours les mêmes erreurs :\r\n\r\n\r\n\r\nJ’envisageais déjà de tout remplacer : passer à un dongle USB, revoir le routage, refaire un mesh propre. Et puis...\r\n--\r\n\r\nL’incident du lundi matin\r\n\r\nUn blackout complet frappe mon infra : plus aucun service local ou distant ne répond. Proxmox, Zigbee2MQTT, partages NFS, Home Assistant, NAS — tout semble mort. Même l’accès Internet est intact, mais tout ce qui repose sur mon réseau interne est figé.\r\n\r\nJ’isole alors le NAS (la machine hôte centrale qui héberge tout le stockage via Proxmox), le connecte localement via un boîtier d’acquisition HDMI. Rien. Écran noir.\r\n\r\nJe commence à douter de tout : le câble DisplayPort ? Le boîtier HDMI ? Le BIOS ? Je teste, redémarre, écoute. Trois bips longs. Rien à l’écran. Jusqu’à ce que je réalise que j’attendais une image 1080p… alors que le BIOS sort du 640x480. Je reconfigure OBS (oui, parce que je passe par OBS pour afficher mes périphériques), ajuste la fréquence… et là, miracle :\r\n« Press to enter Setup or to enter Boot Menu »\r\n\r\nS’ensuivent des erreurs BIOS typiques :\r\n--\r\n\r\nLe coupable n°1 : la pile CMOS\r\n\r\nLa pile bouton est morte. Résultat : perte des paramètres BIOS à chaque redémarrage, y compris le boot sur disque. Je la remplace par une neuve (CR2032 à 3,1V), et tout rentre dans l’ordre… en apparence.\r\n\r\nJe replace le serveur. Et là, à nouveau : plus rien. Ping muet. Services inaccessibles. Home Assistant muet. Zigbee2MQTT en erreur.\r\n--\r\n\r\nLe vrai coupable : le switch réseau\r\n\r\nUn doute m’envahit. Je regarde le switch PoE. Il est éteint. Plus une LED.\r\n\r\nJe le remplace immédiatement. Nouveau switch, même câblage. Et tout revient :\r\n\r\n Proxmox opérationnel\r\n Partages NFS montés\r\n Home Assistant réactif\r\n Zigbee2MQTT sans erreur\r\n--\r\n\r\nLe lien entre les deux incidents\r\n\r\nC’est là que tout devient limpide.\r\n\r\n Le switch défaillant provoquait des microcoupures entre les VMs et le stockage.\r\n Les erreurs ECONNRESET de Zigbee2MQTT venaient du lien instable entre le coordinateur Ethernet et le service.\r\n L’instabilité du réseau expliquait les redémarrages en boucle, les commandes Zigbee échouées, les automatisations manquantes.\r\n\r\nEt pendant ce temps, je blâmais le coordinateur Zigbee, le firmware Ember ou un bug MQTT… alors que tout venait d’un simple transformateur à 10€ du switch.\r\n--\r\n\r\nBilan\r\n\r\nCe que j’ai appris :\r\n\r\n Ne jamais sous-estimer un composant “passif” : un switch, une pile, une alimentation.\r\n Un bug réseau peut se déguiser en bug applicatif.\r\n Les microcoupures sont pires que les pannes franches : elles érodent les services sans les faire crasher complètement, rendant le diagnostic flou.\r\n Observer avant d’agir, c’est vital. Sinon, on démonte tout… pour rien.\r\n--\r\n\r\nEt maintenant ?\r\n\r\nTout est reparti. Le coordinateur Zigbee SLZB-06M fonctionne parfaitement. Plus aucun redémarrage du service. Plus d’. Les automatisations sont de retour.\r\n\r\nParfois, c’est \"juste\" un switch qu'il faut changer !**"},{"uuid":"14330f3c-e4ce-4334-8ecb-1045a4a9fbba","slug":"zigbee2mqtt","title":"zigbee2mqtt","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2024-06-22 17:27:02","created_at":"2024-06-22 17:27:02","updated_at":"2024-06-22 17:27:02","tags":{"logiciels":["Home Assistant"]},"plain":"Le programme permet de transposer les informations d'un réseau Zigbee à un bus de message MQTT. Il est nécessaire de disposer d'un bus de message MQTT et d'un récepteur Zigbee. Reprise des éléments de la page https:www.zigbee2mqtt.io/guide/installation/01linux.html Installation\nInstallation de Zigbee2MQTT sur un Raspberry Pi 3 fonctionnant sur la distribution Raspberry Pi OS Linux fraîchement installée. Avant d'installer Zigbee2MQTT, nous vérifions que l'adaptateur Zigbee soit bien reconnu par Raspberry Pi OS. Il doit être reconnu en tant que périphérique USB avec la commande : La communication s’effectuera par un port série émulé. On peut vérifier la disponibilité du port avec la commande : Enfin, on lance l'installation de Zigbee2 MQTT Un message peu vous annoncer une mise à jour mineure de Exécuter les commandes suivantes : Configuration\nLe fichier de configuration se trouve dans Pour une configuration de base, les paramètres par défaut sont suffisant.\n- Pour les clés SONOFF Zigbee 3.0 USB Dongle Plus V2, ZBDongle-E ajouter l'options suivante :\n- Vous pouvez ajouter une clé réseau. Elle sera générée au prochain démarrage du service.\n- Vous pouvez activer le frontend : D'autres options sont disponibles :\nDémarrer Zigbee2MQTT\nPour démarrer Zigbee2MQTT, il suffit de se rendre dans le dossier du programme et effectuer le . Le programme s'executera jusqu'à vous effectuiez une interruption de programme en appuyant simultanément sur <key>Ctrl</key> + <key>c</key> Démarrer automatiquement Zigbee2MQTT\nPour démarrer automatiquement Zigbee2MQTT, il faut inscrire le programme en tant que service. 1. Éditer une nouveau fichier sudo nano /etc/systemd/system/zigbee2mqtt.service\n \n2. Écrivez les paramètres et instructions suivants Inscrire le service en démarrage automatique : \n sudo systemctl enable zigbee2mqtt.service Démarrer le service :\n sudo systemctl start zigbee2mqtt Vérifier l'état du service :\n systemctl status zigbee2mqtt.service\n \nConsulter le journal :\n sudo journalctl -u zigbee2mqtt.service -f Mise à jour du programme"},{"uuid":"830b49eb-077e-4bb0-bbb2-f71aae938714","slug":"zigbee2mqtt-et-slzb-06m-soupcons-de-dysfonctionnements-redemarrages-frequents-et-effets-de-bord","title":"Zigbee2MQTT et SLZB-06M : soupçons de dysfonctionnements, redémarrages fréquents et effets de bord","category":"domotique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-04-11 08:43:42","created_at":"2025-04-11 08:43:42","updated_at":"2025-04-11 08:43:42","tags":{"logiciels":["Home Assistant"]},"plain":"🧩 Contexte\r\n\r\nDepuis plusieurs semaines, j’observe des comportements instables sur mon réseau Zigbee, géré via Zigbee2MQTT avec un coordinateur SLZB-06M (Ethernet/PoE).\r\n\r\nMalgré une configuration correcte côté , certains symptômes reviennent de façon répétée et dégradent la fiabilité du réseau :\r\n--\r\n\r\n❗ Symptômes observés\r\n\r\n1. Redémarrages en boucle du service :\r\n\r\n\r\n\r\nCes erreurs sont liées à l’adaptateur Ember (protocole utilisé par le SLZB-06M) et semblent survenir de manière aléatoire, même avec une config propre et un réseau Zigbee établi.\r\n--\r\n\r\n2. Commandes Zigbee qui échouent :\r\n\r\n\r\n\r\nCes erreurs apparaissent surtout sur des équipements pourtant bien intégrés au mesh Zigbee. Cela semble corrélé à une perte de communication temporaire causée par un reset de l’adaptateur.\r\n--\r\n\r\n🔍 Hypothèses\r\nInstabilité du firmware Ember utilisé sur le SLZB-06M (testé avec SDK 8.0.2)\r\nBugs dans le embarqué\r\nPerte temporaire d'alimentation PoE (à investiguer)\r\nBuffer overflow ou congestion sur le port TCP (port 6638)\r\n--\r\n\r\n🧪 Tests et vérifications effectués\r\n✅ Port TCP joignable via \r\n✅ Utilisation de + \r\n✅ Rebond après ou OK\r\n✅ Reflasher le firmware du SLZB-06M avec une version stabilisée Ember (celui recommandé par Z2M)\r\n❌ Mais toujours des après quelques minutes/heures d’activité\r\n--\r\n\r\n💡 Pistes à explorer\r\n🚫 Désactiver les broadcasts initiaux dans (test avec )\r\n⚠️ Remplacer temporairement le SLZB-06M par un dongle USB (ex. Sonoff ZBDongle-E) pour comparaison ou un SLZB-06 ou un SLZB-06P07\r\n--\r\n\r\n🔔 Effets de bord\r\nAppareils inaccessibles pendant les plantages/reboots\r\nAutomatisations Home Assistant qui échouent\r\nScènes ou actions déclenchées partiellement\r\nComportement \"fantôme\" d’équipements (ex. radiateurs restés allumés)\r\n--\r\n\r\n✅ Conclusion (temporaire)\r\n\r\nLe SLZB-06M est très prometteur (Ethernet, PoE, performances), mais semble souffrir d’instabilités réseau dans certaines conditions avec Ember.\r\n\r\nJe poursuis mes tests et envisagerai soit :\r\nde reflasher un firmware plus robuste,\r\nsoit de revenir temporairement à un coordinateur USB classique pour comparer."}] |