mqttorg-glow.png

Connaissez-vous le MQTT ? Il s'agit d'un standard OASIS permettant de simplifier la communication machine à machine (M2M), idéalement conçu pour l'Internet des objets.

MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. For example, it has been used in sensors communicating to a broker via satellite link, over occasional dial-up connections with healthcare providers, and in a range of home automation and small device scenarios. It is also ideal for mobile applications because of its small size, low power usage, minimised data packets, and efficient distribution of information to one or many receivers.

C'est sympa, mais cela signifie quoi dans la pratique ?

Et bien cela ressemble à un bus d’événement très simple à contacter sur lequel des producteurs et des consommateurs de message peuvent s'abonner.

broker

Il existe de nombreuses implémentations de broker MQTT sur Internet. L'un des plus simples à utiliser est très certainement Mosca, une implémentation NodeJS de MQTT ultra-configurable et adaptable à tout besoin. Quelques lignes de code Javascript permettent d'instancier son propre serveur MQTT.

Pour des besoins plus lourds, notamment l'exposition REST/COAP des objets, il est possible d'utiliser Eclipse Ponte une surcouche de Mosca actuellement en incubation à la fondation Eclipse.

architecture ponte

Ensuite si vous souhaitez ajouter de l’intelligence à votre broker MQTT, la solution la plus simple est de connecter une instance Node-Red à votre broker MQTT.

node red screenshot2

Vous pourrez créer les scénarios de votre choix, orchestrer des actions dès lors qu'un certain événement arrive sur le broker ...

C'est autour de ces deux produits que je suis en train de revoir l'architecture de mon logiciel de domotique pour les geeks : Domogeeek. Une branche de développement a été créée spécifiquement pour la migration. Le gros avantage du MQTT est que les producteurs de messages et les consommateurs peuvent être répartis sur différentes machines.

Je vous tiendrai au courant de mes avancements, une v1.0 devrait bientôt voir le jour dès que tous les modules auront été migrés.

1. Le , 12:10 par spawnrider
f7bf66fa0d9fc0532a323f47a5c3ba95

Hello,
Je suis fortement intéressé par ton architecture que tu proposes :)
Je ferais surement un fork pour mes modules.

2. Le , 16:32 par Thus0
42f70376607b64a835e233634ce65153

Intéressant... J'ai déjà joué avec le broker rabbitMQ et c'est très puissant pour distribuer ses messages. Je vais regarder MQTT :)

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.