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.

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
  5. Cliquez sur Save settings. Le Shelly redémarre et se connecte au broker Elark.

É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).

Toggle le relais depuis l’app : la lampe doit s’allumer en moins d’une seconde.

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
    }
  }'

# 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.