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
- Dans l’app, ouvrez Passerelles MQTT › + Nouvelle passerelle.
- Choisissez Shelly dans la liste, donnez-lui un nom (« Mon installation Shelly » par exemple).
- Notez le topic racine — par défaut
shellies. Vous pouvez le personnaliser si vous avez plusieurs installations. - 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_codede 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)
- Sur le LAN, ouvrez
http://<ip-shelly>dans un navigateur (ou utilisez l’app Shelly Smart Control puis « Settings › Device IP »). - Allez dans Settings › Connectivity › MQTT (gen2/3/4) ou Internet & Security › ADVANCED — DEVELOPER SETTINGS (Pro).
- Cochez Enable MQTT.
- Renseignez :
- MQTT Server :
mqtt.elark.cloud:8883 - Username : votre
claim_codede 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
- MQTT Server :
- 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.RebootDiscovery 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 :
- Cochez Enable action execution via MQTT.
- Username : votre
claim_codede passerelle. - Password : votre mot de passe MQTT Elark.
- Server :
mqtt.elark.cloud:8883. - Cochez Use Custom MQTT Server et Custom MQTT prefix =
shellies/<nom>. - Cochez SSL/TLS.
- 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.