Zigbee2MQTT est un programme open source qui connecte les plates-formes compatibles MQTT avec les appareils Zigbee. Avec son aide, les utilisateurs peuvent facilement collecter, envoyer et stocker des données environnementales importantes sur un serveur cloud local ou distant.
Zigbee2MQTT est devenu un acteur clé dans la révolution du domaine de domotique intelligente utilisant l'IoT, car il offre des solutions flexibles et rentables pour gérer les appareils Zigbee.
Par exemple, vous pouvez vous connecter Capteur de température et d'humidité Zigbee à votre réseau Zigbee et utilisez le programme Zigbee2MQTT pour intégrer les données collectées dans votre serveur préféré pour une surveillance en temps réel.
Quels sont les appareils et outils requis ?
Afin de transférer capteur intelligent données utilisant Zigbee2MQTT, nous devons d'abord savoir quels appareils nous utiliserons ainsi que le principe de fonctionnement de Zigbee2MQTT. Pour nous assurer que nous comprenons comment ces composants fonctionnent ensemble pour faciliter une transmission efficace des données, veuillez vous assurer que les appareils suivants sont disponibles :
Un capteur de température et d'humidité Zigbee
Il capturera les données environnementales de température et d’humidité et les enverra à la passerelle Zigbee. Les données seront ensuite transmises au logiciel MQTT.
Un hub de passerelle Zigbee
Dans ce cas, nous utilisons DSGW-030-1 Passerelle Zigbee MQTT.
La passerelle Zigbee gère le réseau Zigbee, y compris le couplage, le routage et la configuration des appareils.
Dans l'écosystème Zigbee2MQTT, il sert également de traducteur pour traduire les messages entre le protocole Zigbee et le protocole MQTT, en les convertissant dans un format compréhensible par le serveur MQTT.
En attendant, le hub de passerelle Zigbee est également un éditeur pour envoyer des messages au serveur MQTT contenant les données collectées sur les appareils Zigbee.
Un ordinateur
Dans ce cas, nous utilisons un ordinateur pour fonctionner comme serveur local et héberger le logiciel MQTT. Il agit à la fois comme abonné et comme éditeur dans le paradigme de communication MQTT.
Lisez aussi: Comment envoyer les données du capteur vers le cloud?
En tant qu'abonné, il écoute les messages du client MQTT exécuté sur la passerelle, garantissant qu'il reçoit les mises à jour de données pertinentes en temps réel et les rendant disponibles pour qu'une application ou un service désigné consomme et utilise les données de capteur reçues.
En tant qu'éditeur, il envoie des messages à la passerelle Zigbee2MQTT contenant des commandes de contrôle conçues pour demander à la passerelle d'effectuer des actions ou des configurations spécifiques au sein du réseau Zigbee.
Ressources:
Comment communiquer avec un courtier MQTT à l'aide des clients Paho sur Dusun IoT Services d'envoi
Comment configurer MQTT sur Dusun IoT Services d'envoi
Comment se connecter à MQTT Broker avec SSL sur Dusun IoT Services d'envoi
Comment se connecter Dusun IoT Passerelle vers le serveur MQTT-Apache-Apollo
Processus de travail de la communication Zigbee2MQTT entre le capteur, la passerelle et le serveur MQTT
Le principe de fonctionnement de Zigbee2MQTT implique une série d'étapes, comme le montre le schéma ci-dessous :
- Sensor Couplage avec la passerelle: Mettez le capteur de température et d'humidité Zigbee en mode d'appairage afin d'établir une connexion avec la passerelle Zigbee MQTT.
- Connexioningurgiter Passerelle vers le port MQTT : Une fois le couplage lancé, la passerelle Zigbee MQTT établit un canal de communication en se connectant au port MQTT et au courtier spécifiés.
- Sensor Rapport de situationingurgiter: Le capteur Zigbee surveille en permanence les paramètres environnementaux, capturant sans fil les données et les transmettant périodiquement à la passerelle Zigbee MQTT.
- Réseau Publieringurgiter Message: La passerelle Zigbee2MQTT publie les données des capteurs sur le courtier MQTT sur des sujets MQTT désignés. Ces messages contiennent les relevés de température collectés par le capteur, l'horodatage de la mesure ou l'identifiant unique du capteur.
- Serveur MQTT Abonnez-vousingurgiter et Publieringurgiter Message: Le serveur MQTT exécuté sur le PC s'abonne aux sujets MQTT pertinents, le rendant disponible pour les clients intéressés, qu'il s'agisse d'applications de tableau de bord, d'applications mobiles propriétaires ou d'autres services. Cela permet des mises à jour en temps réel chaque fois que de nouvelles données de capteur sont publiées, leur permettant d'afficher, d'analyser ou de prendre des mesures appropriées en fonction des informations reçues. Le serveur peut alors publier les commandes de contrôle associées.
- Récupération et relais des commandes de contrôle : La passerelle Zigbee MQTT récupérera les commandes de contrôle du serveur, puis enverra les commandes de contrôle au capteur Zigbee. Ces commandes demandent au capteur d'effectuer certaines actions, telles que l'ajustement des paramètres et des configurations.
Étape par étape : comment configurer Zigbee2MQTT sur les appareils
Dans cette section, nous démontrerons un processus étape par étape pour configurer la communication Zigbee2MQTT sur les appareils répertoriés précédemment.
Étape 1 : Trouvez un programme MQTT et créez le service MQTT
Dans ce tutoriel, j'utiliserai Moustique éclipse pour créer le service MQTT. Mosquito est mon choix préféré pour un courtier de messages MQTT car il est open source, ce qui signifie que vous pouvez l'utiliser librement sans aucun frais de licence. En outre, il est léger et convient à une utilisation sur tous les appareils, des ordinateurs monocarte basse consommation aux serveurs complets. Les autres fonctionnalités que j'ai prises en compte lors du choix de Mosquito incluent sa facilité d'utilisation, sa compatibilité multiplateforme, sa légèreté, la prise en charge du cryptage TLS et la prise en charge active de la communauté.
Pour utiliser Mosquito, vous pouvez télécharger et installer le programme Mosquito depuis https://mosquitto.org/download/.
Après cela, vous pouvez créer un serveur MQTT à l'aide de la commande Mosquitto -p 1888 –v, comme indiqué ci-dessous :
Assurez-vous que la passerelle et le serveur MQTT sont sur le même réseau local et recherchez l'adresse IP du serveur. Dans mon cas, il s'agit de 192.168.1.2 (c'est une IP locale).
Étape 2 : configurer la passerelle Zigbee
Connectez la passerelle Zigbee et le PC au même réseau local via un routeur.
Recherchez l'adresse IP de la passerelle en vous connectant au routeur. Dans mon cas, j'utilise le programme Advanced IP Scanner pour m'aider à le trouver. L'adresse IP dans le rectangle rouge est l'adresse IP de ma passerelle.
Ouvrez un navigateur Web sur l'ordinateur > Saisissez l'adresse IP de la passerelle > Entrez le nom d'utilisateur et le mot de passe (nom d'utilisateur par défaut : root, mot de passe : root) > connectez-vous à l'interface utilisateur de la passerelle. Ce processus est illustré dans l'image suivante.
Étape 3 : Configurez le MQTT sur la passerelle Zigbee
Recherchez la page de configuration MQTT sur l'interface utilisateur de la passerelle, entrez l'adresse IP du serveur MQTT (192.168.1.2) et le numéro de port du serveur (1888). De cette façon, vous pouvez connecter le serveur MQTT au client MQTT exécuté sur la passerelle (assurez-vous que les paramètres MQTT correspondent à ceux de votre client MQTT).
Vous pouvez utiliser mqtt.Fx. pour vérifier la connexion MQTT. Cette étape vise à valider la configuration de votre courtier MQTT, à tester la communication MQTT entre la passerelle et le courtier, et à permettre le débogage et le dépannage si un problème survient pendant le processus de configuration.
Étape 4 : Configurer les sujets MQTT pour la publication de messages dans l'interface Web de la passerelle
Les sujets MQTT seront utilisés pour organiser et acheminer les données de la passerelle Zigbee vers le serveur MQTT.
Vous devez choisir un nom de sujet significatif qui reflète le type de données publiées sur la plateforme cloud. Dans mon cas, la passerelle publie les messages dans le sujet « température » et s'abonne à partir du sujet « température/mac ».
Par exemple, si le Mac de la passerelle est 30:ae:7b:64:00:28, alors elle s'abonne à partir du sujet « température/30:ae:7b:64:00:28 » et publie des données dans le sujet « température ». .
Si vous devez définir davantage de sujets MQTT, vous devez définir le même sujet sur la passerelle Web et sur le serveur MQTT.
REMARQUE : Le rythme cardiaque (intervalle de temps pour télécharger les données sur le serveur) peut être personnalisé en fonction de vos besoins.
Étape 5 : Associez le capteur de température et d'humidité Zigbee à la passerelle Zigbee
Ajoutez un capteur Zigbee en accédant à l'interface utilisateur de la passerelle
Dusun Passerelles Zigbee dispose d'une interface conviviale pour la configuration et la gestion des appareils. Voici un aperçu général de la façon dont vous pouvez ajouter un appareil à la passerelle :
Ouvrez l'interface utilisateur de la passerelle et recherchez la page Web Zigbee3.0 Manage. Cette étape est assez simple. Vous pouvez ensuite cliquer sur le bouton Autoriser et la passerelle passera en mode de couplage. Si le processus d'appairage réussit, vous verrez le capteur de température et d'humidité sur la page Web.
Astuces : comment configurer le capteur de température et d'humidité Zigbee
Vous pourriez avoir deux situations.
On utilise Dusun IoTest propre capteurs intelligents, cela garantira la compatibilité, car l'intégration entre la passerelle et le capteur a été rigoureusement testée à plusieurs reprises. Dans ce cas, il suffit d'appuyer longuement pendant cinq secondes sur le capteur au dos avant d'appuyer à nouveau dessus pour que la LED rouge continue de clignoter, signalant l'entrée en mode appairage.
La deuxième situation consiste à utiliser des capteurs Zigbee tiers, que vous pouvez utiliser conformément au manuel d'utilisation. Dans ce cas, vous devez confirmer les versions Zigbee de vos appareils. Comme s'il s'agit du protocole standard Zigbee 3.0, si sa partie logicielle a été modifiée, etc. Cela pourrait entraîner un échec de l'appairage.
Ajouter Capteur Zigbee via MQTT Bbascule
Vous pouvez également choisir d'ajouter un capteur Zigbee via le courtier MQTT. Vous trouverez ci-dessous un exemple simplifié de la façon dont vous pouvez ajouter un capteur de température et d'humidité Zigbee à une passerelle Zigbee via un courtier MQTT à l'aide du code :
{
"data": {
"arguments": {
"attribute": "mod.add_device",
"ep": 1,
"value": {
"mac": "00158d0001b61234"
},
"mac": "00158d0001b61234"
},
"id": "eb92016c-320d-4619-aca2-a401352e806f",
"command": "setAttribute"
},
"from": "CLOUD",
"mac": "30:ae:7b:2b:41:60",
"messageId": 25607,
"time": 1553909170,
"to": "NXP",
"type": "cmd"
}
L'ajout d'un appareil via un courtier MQTT implique l'envoi de messages MQTT à des sujets spécifiques qui déclenchent des actions sur l'appareil cible. Cela rationalise le processus de couplage des appareils au sein du réseau Zigbee. Par exemple, l'ajout d'un appareil via un courtier MQTT offre une approche centralisée, simplifiant la configuration et la gestion des appareils Zigbee au sein du réseau.
Étape 6 : Le processus de configuration est terminé !
Une fois le couplage réussi, vous pouvez recevoir l'état du capteur de température et d'humidité sur le serveur MQTT comme indiqué ci-dessous :
Ici, nous allons en montrer plus sur les données de température et d'humidité.
- Les données de température à proximité seraient téléchargées toutes les 15 minutes et les données contiennent des attributs, la valeur de température, le type d'appareil, le niveau de la batterie, l'horodatage, etc.
{
"data" : {
"attribute" : "device.temperature",
"mac" : "842e14fffe1e9bb2",
"value" : {
"value" : "29.58",
"ep" : 1,
"zone" : "RoomBank-TemperatureHumidity",
"unit" : "C",
"ModelStr" : "RoomBank-TemperatureHumidity",
"battery" : 100
},
"ep" : 1
},
"from" : "GREENPOWER",
"to" : "CLOUD",
"time" : 1599706766,
"deviceCode" : "010123f3-c750-43e7-ad41-6672126fa416",
"mac" : "30:ae:7b:64:00:c6",
"type" : "reportAttribute"
}
Information additionnelle:
Option | Sens |
Propositions | 0-100, 0 signifie que la température est de 0 ℃, 100 signifie que la température est de 100 ℃. |
Unité | C pour degré Celsius |
- Les données d'humidité à proximité seraient téléchargées toutes les 15 minutes et les données contiennent l'attribut, la valeur d'humidité, le type d'appareil, le niveau de la batterie, l'horodatage, etc.
{
"data" : {
"attribute" : "device.humidity",
"mac" : "842e14fffe1e9bb2",
"value" : {
"value" : "56.44",
"ep" : 1,
"zone" : "RoomBank-TemperatureHumidity",
"unit" : "%",
"ModelStr" : "RoomBank-TemperatureHumidity",
"battery" : 100
},
"ep" : 1
}, "from" : "GREENPOWER",
"to" : "CLOUD",
"time" : 1599706766,
"deviceCode" : "010123f3-c750-43e7-ad41-6672126fa416",
"mac" : "30:ae:7b:64:00:c6",
"type" : "reportAttribute"
}
Information additionnelle:
Option | Sens |
Propositions | 0-100, 0 signifie que l'humidité est de 0 %, 100 signifie que l'humidité est de 100 %. |
Unité | % pour pourcentage |
Comment gérer les appareils Zigbee2MQTT et le système
Mettre en œuvre les meilleures pratiques de sécurité
Les meilleures pratiques de sécurité que vous pouvez mettre en œuvre pour votre système de téléchargement de données de détection de température et d'humidité Zigbee2MQTT sont les suivantes :
- Cryptage: Vous devez connecter le courtier MQTT en utilisant le cryptage SSL pour garantir la confidentialité des données. Vous pouvez également utiliser diverses méthodes de cryptage, telles que Zigbee Trust Center Link Key (ZLL) ou Zigbee Network Key (ZNP), AES-128 ;
- Authentication: Utilisez une authentification forte via des clés pré-partagées ou des certificats numériques pour vérifier l'identité de l'appareil ;
- Mise à jour régulière du micrologiciel : Mettre régulièrement à jour le micrologiciel pour corriger les vulnérabilités ;
- Segmentation du réseau : Segmentez le réseau pour isoler les réseaux de capteurs et réduire les surfaces d’attaque. Vous pouvez utiliser des pare-feu ou des VLAN.
- Contrôle d'Accès : Utilisez des contrôles d'accès puissants, tels que le contrôle d'accès basé sur les rôles (RBAC), pour gérer efficacement les autorisations.
- Audit et test réguliers : Effectuez régulièrement des audits de sécurité et des tests d’intrusion pour identifier et corriger les vulnérabilités et améliorer la sécurité globale.
Mettre en œuvre des tâches de maintenance régulières
Les tâches de maintenance régulières que vous pouvez mettre en œuvre pour votre système de téléchargement de données de détection de température et d'humidité Zigbee2MQTT sont les suivantes :
- Mettez à jour le logiciel pour corriger les vulnérabilités, corriger les bugs et ajouter de nouvelles fonctionnalités. Ceci est essentiel pour garantir une fonctionnalité et une sécurité optimales ;
- Surveillez l'état du capteur, comme la force du signal, les niveaux de batterie et la réactivité du capteur. Si vous découvrez des anomalies dans les relevés de température ou des erreurs de communication, corrigez-les rapidement pour éviter les temps d'arrêt ou la perte de données ;
- Remplacez régulièrement les piles ou les sources d'alimentation si nécessaire pour garantir un fonctionnement ininterrompu ou continu ;
- Effectuez régulièrement une sauvegarde et une récupération des configurations et des données des capteurs pour éviter toute perte en cas de panne matérielle ou de corruption des données.
Mot de la fin
L'envoi de données de capteurs à des serveurs locaux ou distants est un besoin important dans les applications de maison intelligente. Que vous préfériez surveiller les données de température et d'humidité via un tableau de bord personnalisable ou une application mobile propriétaire, Dusun IoT's solution de maison intelligente fournit passerelles intelligentes avec une API MQTT standard pour une intégration fluide dans vos propres plateformes.
Si vous utilisez des services de cloud public tels qu'AWS ou Azure, nous proposons des plug-ins préinstallés pour une intégration facile avec ces plateformes. De plus, en tant que partenaire matériel de passerelle officiel de Thingsboard, nous proposons une large gamme de Passerelles IoT Thingsboard, garantissant une compatibilité et une intégration rationalisée.
Tous nos capteurs et passerelles intelligents sont déjà intégrés et prêts à être intégrés dans vos solutions spécifiques de maison intelligente. N'hésitez pas à vous renseigner sur les tarifs des commandes de masse.