Voici comment mettre en place une remontée d’information de weewx par MQTT.
MQTT C’est quoi :
MQTT est un protocole de messagerie basé sur des normes, ou un ensemble de règles, utilisé pour la communication de machine à machine. Les capteurs intelligents, les objets portés sur soi (wearables) et les autres appareils de l’Internet des objets (IoT) doivent généralement transmettre et recevoir des données sur un réseau aux ressources limitées et à la bande passante restreinte. Ces appareils IoT utilisent MQTT pour la transmission des données, car il est facile à implémenter et peut communiquer efficacement les données IoT. MQTT prend en charge la messagerie des appareils vers le cloud et du cloud vers l’appareil.
Pourquoi le protocole MQTT est-il important ?
Le protocole MQTT est devenu une norme pour la transmission de données IoT, car il offre les avantages suivants :
Léger et efficace
L’implémentation de MQTT sur l’appareil IoT nécessite des ressources minimales, de sorte qu’il peut même être utilisé sur de petits microcontrôleurs. Par exemple, un message de contrôle MQTT minimal peut ne contenir que deux octets de données. Les en-têtes des messages MQTT sont également de petite taille afin que vous puissiez optimiser la bande passante du réseau.
Évolutif
L’implémentation de MQTT nécessite une quantité minimale de code qui consomme très peu d’énergie en fonctionnement. Le protocole possède également des fonctionnalités intégrées pour prendre en charge la communication avec un grand nombre d’appareils IoT. Vous pouvez donc implémenter le protocole MQTT pour vous connecter à des millions de ces appareils.
Fiable
De nombreux appareils IoT se connectent sur des réseaux cellulaires peu fiables, avec une faible bande passante et une forte latence. MQTT possède des fonctionnalités intégrées qui réduisent le temps que le dispositif IoT prend pour se reconnecter au cloud. Il définit également trois niveaux de qualité de service différents pour garantir la fiabilité des cas d’utilisation IoT : au plus une fois (0), au moins une fois (1) et exactement une fois (2).
Sécurisé
MQTT permet aux développeurs de chiffrer facilement les messages et d’authentifier les appareils et les utilisateurs à l’aide de protocoles d’authentification modernes, tels que OAuth, TLS1.3, Customer Managed Certificates, etc.
Bonne prise en charge
Plusieurs langages comme Python disposent d’un support étendu pour implémenter le protocole MQTT. Les développeurs peuvent donc l’implémenter rapidement avec un codage minimal dans tout type d’application.
Comment installer MQTT sur weewx 5.0
Download
wget -O weewx-mqtt.zip https://github.com/matthewwall/weewx-mqtt/archive/master.zip
Je vous invite a visiter cette page : https://github.com/matthewwall/weewx-mqtt
-->En premier lieu il vous faut Installer "Paho-mqtt"
Pour Python 3
sudo pip3 install paho-mqtt
For python2:
sudo pip install paho-mqtt
–> Comment installer !
Sur un système avec python2 et python3, et en utilisant weewx sur python3
sudo pip3 install paho-mqtt==1.6.1
Installer l’extension !
sudo weectl extension install weewx-mqtt.zip
Modifier le fichier de configuration de Weewx: (weewx.conf)
En rajoutant cela :
[StdRESTful] [[MQTT]] server_url = mqtt://user:pass@localhost:1883 topic = weather unit_system = METRIC binding = archive,loop aggregation = aggregate log_failure = true log_success = true
Puis modifier le skin que vous utiliser : skin.conf
En rajoutant cela :
# MQTT Websockets defaults mqtt_websockets_enabled = 1 mqtt_websockets_host = localhost mqtt_websockets_port = 1883 mqtt_websockets_ssl = 0 mqtt_websockets_topic = weather/loop disconnect_live_website_visitor = 1800000
Je précise que vous devez être en possession des informations de votre server MQTT , comme le user name, le mot de passe et son adresse .
En l’occurence : user c’est le nom de la session
pass : c’est le mot de passe
Localhost : c’est l’adresse ip ou web de votre server MQTT.
Une fois cela fait vous devez arréter weewx et le redemarrer.
sudo systemctl stop weewx sudo systemctl start weewx