Mqtt-explorer et Home assistant

Petit tuto pour expliquer comment installer/configuré mqtt-explorer en tant que container et le connecter au broker EMQX

Pour cette exemple vous disposer de:

  • Home assistant sous HaOS (mais devrait fonctionner sans problème pour les autres type d’installation.
  • le broker mqtt EMQX

je n’aborderais pas l’installation de emqx mais la configuration de celui ci pour autoriser les connections de mqtt-explorer et remonter tous les topic automatiquement « qui ne se fait pas par default »

pour installer le container mqtt-explorer ajouter le repo suivant dans home assistant:

Ajout du repository:
Add repository

Installation the l’Addon
Open your Home Assistant instance and show the MQTT Addon.

Si vous souhaitez le faire manuellement:

et dans la section add ajouter l’url suivante:
https://github.com/adamoutler/mqtt-explorer

Une fois effectuer, vous devriez retrouver mqtt-explorer dans la liste d’addons disponible:

Sélectionner puis lancer l’addon et activer le « show in sidebar »

Nous avons terminer pour le moment la partie mqtt-explorer.

Nous avons besoin de créer un compte qu’utilisera mqtt-explorer pour ce connecter au broker EMQX, pour cela, nous allons nous rendre dans la page d’administration de EMQX et créer un compte:

Sélectionner Access Control → Authentication:

Ajouter un compte:

indiquer le nom d’utilisateur et le mot de passe utiliser par mqtt-explorer pour ce connecter a EMQX

Nous allons maintenant autoriser les accès au topic Sys et / de EMQX par mqtt-explorer ce qui permettra de remonter tous les topics automatiquement sans devoir faire un « subscribe » à chaque topic indépendamment les uns des autres.

Pour cela, aller dans « Access Controle → Authorization → Settings »:

Vous devriez avoir par default (si aucune modification n’a été apporter par vos soins les informations suivante dans la partie ACL file:

%%--------------------------------------------------------------------
%% -type(ipaddr() :: {ipaddr, string()}).
%%
%% -type(ipaddrs() :: {ipaddrs, string()}).
%%
%% -type(username() :: {user | username, string()} | {user | username, {re, regex()}}).
%%
%% -type(clientid() :: {client | clientid, string()} | {client | clientid, {re, regex()}}).
%%
%% -type(who() :: ipaddr() | ipaddrs() |username() | clientid() |
%%                {'and', [ipaddr() | ipaddrs()| username() | clientid()]} |
%%                {'or',  [ipaddr() | ipaddrs()| username() | clientid()]} |
%%                all).
%%
%% -type(action() :: subscribe | publish | all).
%%
%% -type(topic_filters() :: string()).
%%
%% -type(topics() :: [topic_filters() | {eq, topic_filters()}]).
%%
%% -type(permission() :: allow | deny).
%%
%% -type(rule() :: {permission(), who(), access(), topics()} | {permission(), all}).
%%--------------------------------------------------------------------

{allow, {username, "^dashboard?"}, subscribe, ["$SYS/#"]}.

{allow, {ipaddr, "127.0.0.1"}, all, ["$SYS/#", "#"]}.

{deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.

{allow, all}.

Pour autoriser a remonter tous les topics dans mqtt-explorer, nous allons modifier ce fichier pour indiquer a EMQX que l’utilisateur que nous avons creer précédemment (dans mon exemple l’utilisateur mqtt-explorer) à les autorisations de ce connecter aux topic « *sys/# » et au « # »

Ajouter la ligne suivante au fichier ACL File en deuxieme position en dessous de la ligne ou il a la mention dashboard: (ce qui donne la chose suivante)

{allow, {username, "^dashboard?"}, subscribe, ["$SYS/#"]}.

{allow, {username, "mqtt-explorer"}, subscribe, ["$SYS/#", "#"]}.

{allow, {ipaddr, "127.0.0.1"}, all, ["$SYS/#", "#"]}.

{deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.

{allow, all}.

Une fois faite nous retournon sur l’addon mqtt-broker et configurons la connection a notre broker EMQX.

Ouvrer mqtt-explorer:

Une fenetre vous demande de configuré votre connections, configuré les informations demander en modifiant l’url du broker EMQX, ainsi que les login et mot de passe de l’utilisateur créer dans les précédente:

Nous avons maintenant un container qui nous permet de nous connecter a notre broker et de voir les informations sans être obliger d’utiliser un client/logiciel installer sur notre ordinateur:

N’hésitez pas à remonter les informations ou autre qui ne serais pas bonne.

Source: Sujet Officiel Forum Anglophone

2 « J'aime »