Elark KB

Intégrations

Connecter un Shelly gen2 / gen3 / gen4 en MQTT

Les Shelly modernes (gen2, gen3 et gen4) supportent MQTT nativement. On va les pointer vers le broker Elark — leurs entités apparaissent ensuite dans l’app comme s’il s’agissait d’un ESPHome, en lecture seule.

Lecture 7 min

Modèles concernés

  • Gen 2 : Shelly Plus 1, Plus 1PM, Plus 2PM, Plus i4, Plus Plug S, Plus H&T, Plus Smoke…
  • Gen 3 : Shelly 1 Gen3, 1PM Gen3, 2PM Gen3, 1 Mini Gen3, 1PM Mini Gen3, H&T Gen3…
  • Gen 4 : Shelly 1 Gen4, 2PM Gen4, Dimmer Gen4, EM Gen4, Pro 4PM Gen4…
  • Pro (rail DIN) : Shelly Pro 1, Pro 2, Pro 3, Pro 4PM, Pro EM, Pro Dimmer…
Les anciens Shelly « gen 1 » (Shelly 1, 1PM, 2.5, Dimmer 2, RGBW2…) supportent aussi MQTT, mais la procédure est différente — voir la section Shelly gen 1 en bas de page.

Étape 1 — Créer une passerelle Shelly dans Elark

  1. Dans l’app, ouvrez Passerelles MQTT+ Nouvelle passerelle.
  2. Choisissez Shelly dans la liste, donnez-lui un nom (« Mon installation Shelly » par exemple).
  3. Notez le topic racine — par défaut shellies. Vous pouvez le personnaliser si vous avez plusieurs installations.
  4. Validez.

Elark s’abonne maintenant aux topics shellies/# et créera un appareil pour chaque Shelly qui s’y présentera.

Étape 2 — Récupérer vos identifiants MQTT Elark

Depuis Paramètres › Identifiants par défaut, notez :

  • Serveur : mqtt.elark.cloud
  • Port : 8883 (TLS obligatoire)
  • Username : votre claim_code de passerelle (visible sur la fiche passerelle créée à l’étape 1)
  • Password : votre mot de passe MQTT (saisi dans Paramètres › Identifiants par défaut)

Étape 3 — Configurer le Shelly (interface web)

  1. Sur le LAN, ouvrez http://<ip-shelly> dans un navigateur (ou utilisez l’app Shelly Smart Control puis « Settings › Device IP »).
  2. Allez dans Settings › Connectivity › MQTT (gen2/3/4) ou Internet & Security › ADVANCED — DEVELOPER SETTINGS (Pro).
  3. Cochez Enable MQTT.
  4. Renseignez :
    • MQTT Server : mqtt.elark.cloud:8883
    • Username : votre claim_code de passerelle
    • Password : votre mot de passe MQTT Elark
    • Custom MQTT prefix : shellies/<nom-court> (ex. shellies/salon-tv) — c’est ce qui apparaîtra dans l’app.
    • Use Client TLS : Off
    • Enable SSL / TLS : On (avec validation du CA)
    • RPC status notifications over MQTT : On
    • Generic status update over MQTT : On
    • Enable “MQTT Control” : On indispensable pour que le module publie ses données de status détaillées (RPC) et affiche la qualité du signal WiFi. Sans cette case, le Shelly publie un état minimal mais pas les statuts RPC complets.
  5. Cliquez sur Save settings. Le Shelly redémarre et se connecte au broker Elark.
Le signal WiFi ne remonte pas ?

Dans 99 % des cas, c’est que « Enable MQTT Control » n’est pas coché sur le module. Cette option débloque la remontée du signal WiFi / uptime en temps réel (Elark interroge le module via Shelly.GetStatus). Elark reste en lecture seule : cette case ne sert pas à envoyer des commandes depuis l’app.

Étape 4 — Vérifier dans l’app Elark

Dans les 30 secondes, le Shelly apparaît dans Passerelles MQTT › Mon installation Shelly (cliquez sur « Voir devices »). Une fiche est aussi créée dans Mes appareils, avec :

  • les switches (relais),
  • les sensors (puissance, énergie, température…),
  • les covers (volets, sur les modèles 2PM),
  • les inputs (boutons connectés, Plus i4).

Actionnez le relais depuis l’app Shelly ou son interface web : l’état affiché dans Elark doit se mettre à jour en moins d’une seconde.

Elark est une plateforme de supervision : elle affiche l’état de vos Shelly en temps réel (WebSocket) mais n’envoie aucune commande à l’installation cliente. Pour piloter un relais, utilisez l’app Shelly, son API HTTP/RPC, ou exportez le workspace vers Home Assistant.

Affichage : cartes par phase + temps réel

Sur la fiche appareil, onglet Entités, les mesures sont désormais regroupées en cartes logiques. Pour un compteur d’énergie multi-phases (Shelly Pro 3EM, Pro EM 50…), chaque phase a sa carte — « Phase 1 », « Phase 2 », « Phase 3 » — avec tension, courant, puissance active/apparente et énergie regroupés. Les relais ont leur carte « Relais 0 », « Relais 1 », etc.

  • État des relais : chaque relais affiche son état courant (on/off) sous forme de pastille — c’est un affichage, pas un contrôle : aucun clic dans Elark n’envoie de commande au Shelly.
  • Temps réel : les valeurs (puissance, tension…) et les états de relais se mettent à jour sans recharger la page, via WebSocket, dès que le Shelly publie un nouveau status.

Configuration en masse (Shelly Pro / API)

Pour configurer plusieurs Shelly d’un coup, utilisez la HTTP RPC API. Exemple pour un Shelly Plus 1 :

curl -X POST http://<ip-shelly>/rpc/MQTT.SetConfig \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "enable": true,
      "server": "mqtt.elark.cloud:8883",
      "user": "<claim_code_passerelle>",
      "ssl_ca": "*",
      "topic_prefix": "shellies/<id-court>",
      "rpc_ntf": true,
      "status_ntf": true,
      "enable_control": true
    }
  }'

# Puis stocker le mot de passe (séparé pour éviter le log)
curl -X POST http://<ip-shelly>/rpc/MQTT.SetConfig \
  -d '{"config": {"pass": "<mqtt_password>"}}'

# Reboot
curl -X POST http://<ip-shelly>/rpc/Shelly.Reboot

Discovery automatique

Elark suit le format Shelly status standard (shellies/<id>/status/...). Pas besoin d’activer le Home Assistant discovery — Elark le détecte tout seul.

Si vous renommez un Shelly via son interface web (champ « Device Name »), l’étiquette est mise à jour automatiquement dans l’app sans intervention.

Shelly gen 1 (Shelly 1, 1PM, 2.5, Dimmer 2, RGBW2…)

Le firmware gen 1 a une UI MQTT plus simple. Dans Internet & Security › ADVANCED — DEVELOPER SETTINGS :

  1. Cochez Enable action execution via MQTT.
  2. Username : votre claim_code de passerelle.
  3. Password : votre mot de passe MQTT Elark.
  4. Server : mqtt.elark.cloud:8883.
  5. Cochez Use Custom MQTT Server et Custom MQTT prefix = shellies/<nom>.
  6. Cochez SSL/TLS.
  7. Save → l’appareil redémarre.

Les topics utilisés sont shellies/<nom>/relay/0, shellies/<nom>/relay/0/command, etc. Elark les comprend nativement.

Dépannage

  • Le Shelly n’apparaît pas : vérifiez que le port 8883 n’est pas bloqué par votre pare-feu sortant. Testez avec mosquitto_pub -h mqtt.elark.cloud -p 8883 --cafile /etc/ssl/certs/ca-certificates.crt -u <claim> -P <pwd> -t test -m hi.
  • Le Shelly se déconnecte toutes les minutes : c’est souvent un mot de passe incorrect (le Shelly retente sans backoff). Re-saisissez le mot de passe dans Settings › Identifiants par défaut puis dans l’interface du Shelly.
  • Un seul switch alors que j’ai un Plus 2PM : assurez-vous que les deux canaux sont activés dans Inputs & outputs sur l’interface Shelly.