Broker MQTT

Forum dédié au protocole MQTT : fonctionnement, intégration ...
Pour les questions concernant le plugin de FlyingDomotic, merci d'utiliser le sous-forum dédié.
miralant
Messages : 157
Inscription : 02 mars 2018, 14:33

Broker MQTT

Message par miralant »

Bonjour à tous,

J'ai "quelques ESP" à la maison qui discutent avec mon domoticz en direct via ESPEasy. Je constate que certains d'entre vous utilisent des broker MQTT. Quel est l'avantage de passer par une telle solution ? ok, ça centralise mais ça rajoute un service au milieu et un risque de panne?

Merci d'avance,
Antori91

Re: Broker MQTT

Message par Antori91 »

Bonjour,

MQTT est ce que l'on appelle un middleware. Tu pourras trouver sur internet plein d'articles sur les avantages d'un middleware. En très rapide, si ton besoin est de faire communiquer une application A avec une application B, A étant par exemple un capteur et B étant Domoticz, le gain d'un middleware n'est pas flagrant par rapport à un autre système/API de communication comme HTTP ou RPC. Par contre, si ton besoin est de faire communiquer N applications entre-elles, là c'est génial. Car en l'absence de middleware, chaque application doit connaitre ses partenaires d'échange, et si on supprime ou rajoute un partenaire, il y a un impact sur l'application source, c'est de la programmation spaghetti avec n liens point à point imbitables entre chaque application et les autres. En synthèse, un middleware (parmi beaucoup d'autres choses dont la garantie de délivrance des messages) amène une abstraction et une indépendance entre les applications.

En ce qui me concerne, j'ai choisi MQTT comme système central d'échange car:
- de toute les façons il faut faire communiquer les éléments domotiques entre eux, à défaut c'était du HTTP ou autre API,
- ensuite pour tous les avantages que j'ai rapidement décrit ci-dessus. Cela m'a déjà été utile concrètement. Un exemple parmi d'autres: je viens de rajouter un portier Dahua que j'utilise aussi en Security Panel comme le Security Panel de Domoticz. En utilisant MQTT, lorsque j'ai mis en service ce portier Dahua, immédiatement mon alarme filaire s'est interfacée avec ce portier comme l'était déjà Domoticz avec son Security Panel, ceci sans rien changer au programme de l'alarme filaire. De même, sans rien changer au Security Panel de Domoticz, il se synchronise aussi avec le portier Dahua. Sans middleware, il aurait fallu probablement modifier mon programme d'alarme et le Security Panel de Domoticz (enfin mon interface avec lui) pour prendre en compte ce nouveau partenaire.

Pour finir, MQTT c'est un service de base sur Linux et c'est très très très très fiable. En plusieurs années, je n'ai jamais connu un arrêt ou même un message non délivré.
Antori91

Re: Broker MQTT

Message par Antori91 »

[EDIT] Pour vraiment finir, quand je vois tous les soucis rapportés ici et ailleurs avec les technologies radio (Zwave, RFLink, ...), je me dis...VIVE LE WIFI ET MQTT... :D

[EDIT 2] Un autre exemple d'utilisation de MQTT dans mon environnement est la mise en place d'un serveur Domoticz de secours. J'avais au départ un seul serveur Domoticz alimenté via MQTT de messages venant des capteurs/actionneurs. Lorsque j'ai mis en place ce serveur de secours, sans rien à changer à quoi que ce soit, il a suffit (en simplifiant un peu tout de même) de connecter ce nouveau Domoticz à MQTT pour que lui aussi reçoive les message et alimente sa propre base de données.
miralant
Messages : 157
Inscription : 02 mars 2018, 14:33

Re: Broker MQTT

Message par miralant »

Antori91 a écrit : 16 avr. 2020, 12:42 [EDIT] Pour vraiment finir, quand je vois tous les soucis rapportés ici et ailleurs avec les technologies radio (Zwave, RFLink, ...), je me dis...VIVE LE WIFI ET MQTT... :D

[EDIT 2] Un autre exemple d'utilisation de MQTT dans mon environnement est la mise en place d'un serveur Domoticz de secours. J'avais au départ un seul serveur Domoticz alimenté via MQTT de messages venant des capteurs/actionneurs. Lorsque j'ai mis en place ce serveur de secours, sans rien à changer à quoi que ce soit, il a suffit (en simplifiant un peu tout de même) de connecter ce nouveau Domoticz à MQTT pour que lui aussi reçoive les message et alimente sa propre base de données.
Je comprends. J'ai regardé ton Git, très complet !

Mon archi est "mixte" : RFLINK / WIFI
RFLINK : 433.920MHz (90% , sonde température/hygro, relais chacons, PIR, detecteur de portes, interrupteurs) en majorité des modules ALI
WIFI : 10% (ESP01 : relais, ESP8266 : relais, Sonoff customs).

Pas certains que le jeu en vaille la chandelle chez moi mais au moins pour ma culture personnelle, je vais m'en monter un sur un PI :D

J'ai 2 questions à te poser :
Les ESP sont énergivores, tu as systématiquement du jus sur place ou des actions chez Varta :D ?
Comment gères tu les backup de Domoticz ? ça n'a rien avoir avec le sujet mais je suis en slip la dessus (à part la sauvegarde de la BDD de temps en temps).
Antori91

Re: Broker MQTT

Message par Antori91 »

J'ai 2 questions à te poser :
Les ESP sont énergivores, tu as systématiquement du jus sur place ou des actions chez Varta :D ?
[OUI toujours alimenté par secteur. J'utilise principalement une carte ESP8266 intégrant alimentation 220V, ESP8266 et relais]

Comment gères tu les backup de Domoticz ? ça n'a rien avoir avec le sujet mais je suis en slip la dessus (à part la sauvegarde de la BDD de temps en temps).
[Je fais une sauvegarde journalière de la base de données via un script. Cf. https://github.com/Antori91/Home_Automa ... gRotate.sh
A noter que je me limite volontairement à UNE SEULE sauvegarde par jour. De mon expérience et dans mon environnement, les quelques très très rares plantages de Domoticz survenaient majoritairement lors d'une sauvegarde de la base de données. Depuis la mise en place d'une sauvegarde uniquement journalière, en plusieurs années, je n'ai jamais connu un arrêt/plantage de Domoticz sur Synology.
Pas de sauvegarde de l'application Domoticz sauf avant une mise à jour. Je copie alors l'ensemble du répertoire d'installation. Et je garde toujours une copie des sources et exécutables installés type package pour le Synology.]
Répondre