Intégration domotique Shelly, gratuite et open source

Connectez vos Shelly (relais, prises, compteurs, volets, lumières) à Gladys, en local.
Cette intégration connecte vos appareils Shelly à Gladys Assistant : relais, prises connectées, compteurs d'énergie, volets roulants, variateurs et lumières couleur, entrées et boutons.
Elle parle directement à vos appareils sur votre réseau local (protocole RPC Gen2+) et les laisse pousser leurs changements en temps réel : un relais basculé au mur apparaît dans Gladys en une seconde environ. Elle peut basculer sur MQTT puis sur le Shelly Cloud quand un appareil n'est pas joignable localement. Rien n'est obligatoire : une installation 100 % locale fonctionne avec un formulaire entièrement vide.
Générations supportées : Gen2 et suivantes — Shelly Plus, Pro, Mini, Gen3, Gen4 — ainsi que les Gen1 (Shelly 1, 1PM, 2.5, Plug S « SHPLG-S », EM, 3EM…).
Les Gen1 parlent une API totalement différente (REST au lieu de JSON-RPC, authentification Basic au lieu de Digest), mais l'intégration les ramène au même modèle : un Shelly 3EM Gen1 expose exactement les mêmes fonctionnalités qu'un Pro 3EM Gen2, avec les mêmes noms. Vos tableaux de bord et vos scènes ne font pas la différence.
Une limite à connaître : en local, les Gen1 n'ont pas de temps réel. Leur canal de push (CoIoT) est du multicast, qui n'atteint jamais un conteneur Docker, donc leurs valeurs suivent l'intervalle de rafraîchissement. En MQTT, si, comme les Gen2+.
Prérequis
- Gladys Assistant 5.1.0 ou plus récent (widgets de tableau de bord, déclencheurs et actions de scène).
- Vos Shelly sont alimentés et connectés à votre Wi-Fi (configuration faite depuis l'application Shelly ou l'interface web de l'appareil).
- Gladys et vos Shelly sont sur le même réseau local — ou vous connaissez les adresses IP des appareils situés sur un autre VLAN.
Étape 1 — Installez l'intégration
Dans Gladys : Intégrations → Installer une intégration → Shelly, puis Installer. Gladys télécharge l'image Docker et démarre le conteneur.
Vous n'avez rien à configurer pour une installation locale simple : passez directement à l'étape 3.
Étape 2 — Configurez (uniquement si nécessaire)
Ouvrez la page Configuration de l'intégration. Tous les champs sont optionnels.
Connexion locale
| Champ | Quand le remplir |
|---|---|
| Adresses d'appareils supplémentaires | Vos Shelly ne sont pas trouvés automatiquement (autre VLAN, mDNS désactivé sur l'appareil ou filtré par le routeur). Saisissez les IP séparées par des virgules. |
| Nom d'utilisateur des appareils | Laissez admin : c'est le seul nom d'utilisateur accepté par les Gen2+. |
| Mot de passe des appareils | Vous avez activé l'authentification sur vos Shelly. Le mot de passe commun à vos appareils (les autres vont dans le champ suivant). |
| Mots de passe par appareil | Certains appareils ont un mot de passe différent : entrées appareil=motdepasse séparées par ; (identifiant Shelly, MAC ou IP). |
🔑 Des mots de passe différents ? Gardez le plus courant dans Mot de passe des appareils, et listez les autres dans Mots de passe par appareil, sous la forme
appareil=motdepasseséparés par;: l'appareil est son identifiant Shelly (shellyplus1-a8032ab12345), son adresse MAC ou son adresse IP. Un appareil qui refuse son mot de passe affiche un point orange sur son badge, et l'écran Configuration le nomme.
Shelly Cloud (secours)
À remplir uniquement si vous voulez que Gladys puisse piloter un appareil injoignable localement (Gladys hébergé ailleurs, appareil sur un autre réseau, coupure Wi-Fi temporaire).
- Ouvrez l'application Shelly (ou https://control.shelly.cloud/).
- Réglages → Réglages utilisateur → Clé d'autorisation cloud.
- Cliquez sur Obtenir la clé : l'application affiche la clé
d'autorisation et l'adresse du serveur (du type
shelly-53-eu.shelly.cloud). - Recopiez les deux valeurs dans Gladys et activez Activer le secours par le Shelly Cloud.
🔐 Cette clé donne le contrôle total sur tous les appareils de votre compte Shelly. Traitez-la comme un mot de passe. Elle est stockée chiffrée par Gladys et n'est jamais affichée en clair.
L'intégration lit tout le compte en une seule requête par cycle de rafraîchissement et espace ses appels d'une seconde, la limite de l'API Shelly Cloud : un parc entier sur le cloud ne la dépasse jamais.
Quand plusieurs canaux sont configurés, Gladys affiche un interrupteur standard « Préférer la connexion locale » (activé par défaut). C'est une préférence : l'intégration l'applique quand elle le peut, et affiche la réalité appareil par appareil grâce aux badges de transport (voir plus bas).
MQTT (recommandé au-delà de quelques appareils)
À remplir si des appareils ne sont pas découverts, ou si vous voulez du temps réel sur des Gen1.
Sur chaque Shelly : interface web de l'appareil → Settings → MQTT →
| Réglage | Valeur |
|---|---|
| Enable | coché |
| Server | l'adresse de votre broker, ex. 10.5.0.50:1883 |
| Username / Password | ceux de votre broker, si protégé |
| Enable 'MQTT Control' | coché — c'est ce qui autorise Gladys à piloter l'appareil par MQTT |
| RPC status notifications over MQTT | coché — c'est ce qui envoie les valeurs en temps réel |
| MQTT prefix | laissez la valeur par défaut (l'identifiant de l'appareil) |
Dans Gladys : cochez Activer MQTT et saisissez la même adresse de broker, plus les identifiants si nécessaire.
Le préfixe est libre, y compris avec des / : l'intégration ne s'y fie pas.
Elle identifie chaque appareil par le champ src de ses messages, qui est
l'identifiant matériel — renommer un préfixe ne casse donc rien.
💡 Les Gen1 aussi. Ils publient dans un dialecte totalement différent (
shellies/<id>/emeter/0/power, une valeur par topic, sans JSON), que l'intégration comprend également. Un 3EM Gen1 sur MQTT remonte donc en temps réel, contrairement au même appareil en local.
Avancé
Noms des fonctionnalités : la langue des noms de fonctionnalités donnés aux appareils que vous créez à partir de maintenant (anglais, français, allemand ou espagnol). Un appareil déjà créé garde ses noms — renommez ses fonctionnalités dans Gladys si vous le souhaitez ; leurs identifiants, leur historique et vos scènes ne dépendent jamais du nom.
Intervalle de rafraîchissement : à quelle fréquence Gladys lit l'état de chaque appareil. 30 secondes par défaut.
Un intervalle plus court donne des valeurs plus fraîches, mais génère plus de requêtes. Gladys limite les états à 300 par minute pour une intégration : l'intégration ne publie que les valeurs qui ont réellement changé (avec un rafraîchissement forcé toutes les 30 minutes pour qu'une valeur figée ne paraisse pas morte), donc l'intervalle court n'est pénalisant que si beaucoup de valeurs bougent en permanence. Un Shelly Pro 3EM porte à lui seul ~25 mesures : au-delà de 3 ou 4 compteurs d'énergie, restez à 30 secondes ou plus.
Étape 3 — Découvrez vos appareils
Allez dans l'onglet Découverte de l'intégration et cliquez sur Rechercher.
Gladys interroge quatre sources et les fusionne :
- mDNS — vos Shelly s'annoncent sur le réseau (services
_shelly._tcppour les Gen2+,_http._tcppour les Gen1). Le cœur de Gladys écoute pour le compte de l'intégration : les conteneurs sont sur un réseau bridge et ne reçoivent jamais le trafic multicast. - Votre broker MQTT, si vous l'avez configuré — voir ci-dessous.
- Les adresses que vous avez saisies à l'étape 2.
- Les adresses déjà vues, qu'il s'agisse d'appareils créés dans Gladys ou simplement aperçus lors d'un scan précédent. Une adresse ayant répondu une fois est re-interrogée à chaque scan : un appareil trouvé une fois n'est jamais reperdu.
Chaque adresse est ensuite interrogée en unicast (qui, lui, traverse le réseau bridge). Cliquez sur Créer pour ajouter un appareil à Gladys.
⚠️ Un appareil manque à l'appel ? Passez par MQTT
C'est le point le plus important de cette page si vous avez plus de quelques appareils.
Le mDNS fonctionne par courtes rafales multicast. Sur une installation d'une quinzaine de Shelly, un même scan remonte 19 annonces, le suivant 27, et certains appareils ne sont jamais annoncés — alors qu'ils fonctionnent parfaitement et répondent en HTTP dès qu'on connaît leur adresse. Ce n'est ni une question de signal, ni de réglage sur l'appareil.
Trois recours, du plus efficace au plus manuel :
- Configurez MQTT (section suivante). Un appareil qui publie sur votre broker s'annonce en permanence : il n'y a plus de fenêtre à manquer. Il est découvert, il remonte en temps réel, et il reste pilotable même injoignable sur le réseau local. C'est le seul inventaire fiable au-delà de quelques appareils.
- Activez le Shelly Cloud. Il ne découvre pas les appareils, mais il permet de piloter et de lire ceux que Gladys connaît déjà quand le local tombe.
- Saisissez les adresses IP à la main dans « Adresses d'appareils supplémentaires ». Efficace et immédiat, mais à refaire si un bail DHCP change — réservez une IP fixe sur votre routeur dans ce cas.
Un Shelly = un appareil Gladys
Un Shelly Pro 4PM devient un seul appareil Gladys portant quatre fonctionnalités On/Off, plus leurs mesures. C'est la convention Gladys, et elle garde les identifiants stables si vous renommez un canal.
Si vous avez nommé vos canaux dans l'application Shelly (« Salle de bain », « WC »…), ces noms sont repris : vous obtenez « Salle de bain — On/Off » plutôt que quatre « On/Off » identiques. Nommez vos canaux dans l'application Shelly avant de lancer la découverte : c'est la façon la plus rapide d'obtenir un résultat lisible.
Appareils et mesures supportés
Les fonctionnalités sont déduites de ce que l'appareil déclare réellement, jamais d'une liste de modèles codée en dur : un Shelly Pro 1 (sans mesure) n'expose qu'un On/Off, un Pro 1PM expose aussi puissance, tension, courant et énergie — et un Shelly sorti après cette version fonctionne s'il parle le même vocabulaire.
| Composant Shelly | Ce que vous obtenez dans Gladys |
|---|---|
switch:N | On/Off (pilotable), puissance (W), tension (V), courant (A), énergie totale (kWh), température interne (°C) |
cover:N | Volet ouvrir / stop / fermer (pilotable), position (%) une fois calibré, puissance, tension, courant, énergie, température |
light:N | Lumière marche/arrêt et luminosité (pilotables), puissance et énergie |
rgb:N / rgbw:N | Comme light:N, plus la couleur (pilotable) |
cct:N | Comme light:N, plus la température de couleur (pilotable) |
input:N | Mode interrupteur : une entrée (marche/arrêt). Mode bouton : un bouton et le déclencheur de scène « Bouton appuyé ». Mode comptage : un compteur |
em:N (triphasé) | Par phase L1/L2/L3 : puissance active (W), puissance apparente (VA), tension (V), courant (A) — plus les totaux et le courant de neutre |
emdata:N | Énergie totale et énergie réinjectée, par phase et au total (kWh) |
em1:N / em1data:N | Équivalents monophasés (Shelly Pro EM, 1PM Mini Gen3) |
pm1:N | Puissance, tension, courant, énergie d'un compteur seul (PM Mini) |
temperature:N, humidity:N | Température (°C), humidité (%) |
devicepower:N | Niveau de batterie (%) |
flood:N, smoke:N | Fuite d'eau, fumée (Flood et Smoke Gen1, équivalents Gen2+) |
contact:N, illuminance:N | Ouverture porte/fenêtre (fermé / ouvert) et luminosité (lux) d'un Door/Window Gen1 |
number:N / boolean:N | Composants virtuels des appareils « Powered by Shelly » (LinkedGo ST1820…) : consigne du thermostat (pilotable, bornée à la plage et au pas de l'appareil), température (°C) et humidité (%) de la pièce, options marche/arrêt comme « Enable thermostat » ou « Child lock » (pilotables si l'appareil l'autorise), état du relais |
Matériel validé sur des payloads réels : Shelly Pro 3EM, Shelly Pro 4PM, Shelly Pro 3, Shelly Plus 2PM, Shelly Plus Plug S et le 3EM Gen1. Les volets, lumières et entrées suivent l'API Shelly documentée et attendent vos retours sur du vrai matériel : si vous en avez, dites-moi comment ils se comportent (voir Diagnostic).
Les composants virtuels sont nommés et typés d'après la description que
l'appareil donne de lui-même (Shelly.GetComponents, relue à chaque scan) :
le rôle qu'il déclare quand il y en a un (target_temperature → consigne de
thermostat), sinon le nom, l'unité et les droits d'accès. Les composants
enum:N ne sont pas encore pris en charge. Piloter un composant virtuel
nécessite le réseau local ou MQTT — le Shelly Cloud ne sait pas le relayer.
En Gen1, le même modèle s'applique : un Shelly 2.5 en mode volet devient un volet, un Dimmer, une Bulb ou un Duo une lumière, un RGBW2 en mode couleur une lumière couleur, les entrées d'un i3 des entrées et des boutons (appuis simple, double, triple et long, depuis le compteur d'appuis de chaque lecture, ou instantanément par MQTT), un Flood un détecteur de fuite, un Smoke un détecteur de fumée, un Door/Window un capteur d'ouverture avec sa luminosité.
Les appareils sur batterie dorment (H&T, Flood, Door/Window, Smoke, Button, H&T Plus/Gen3…) : endormis, ils ne répondent pas, c'est leur état normal. L'intégration les garde donc en local tant qu'ils se sont manifestés dans les 26 dernières heures, ne les met jamais en pause et ne déclenche jamais « Joignabilité d'un Shelly » pendant leur sommeil. Leurs valeurs arrivent à leur réveil : configurez MQTT sur eux pour recevoir chaque relevé au moment où il est envoyé, un appareil endormi n'est presque jamais réveillé au moment d'une lecture.
Volets roulants
Un volet expose la commande volet standard de Gladys : Ouvrir, Stop, Fermer, et un curseur de position. La position (100 % = complètement ouvert, la même convention chez Shelly et dans Gladys) n'existe qu'une fois le volet calibré dans l'application Shelly : un volet non calibré n'a pas de fonctionnalité position plutôt qu'une position qui ne bouge jamais. Calibrez-le, relancez une découverte et cliquez sur Mettre à jour sur l'appareil.
Pendant le mouvement, Gladys affiche le sens (ouverture / fermeture) ; une fois arrêté, l'état indique « stop » et la position est la vraie.
Lumières
Les variateurs et sorties couleur deviennent des lumières Gladys :
marche/arrêt, luminosité (0 à 100 %), couleur pour rgb / rgbw, température
de couleur pour cct (2700 K chaud à 6500 K froid). Changer la luminosité
n'allume ni n'éteint la lumière. Une sortie RGBW expose aussi ses LED blanches (0 à 100 %). Les entrées
analogiques ne sont pas encore exposées.
Entrées et boutons
Ce que devient une entrée dépend de son mode dans l'application Shelly :
- Interrupteur (interrupteur mural, contact sec) : une fonctionnalité entrée, marche ou arrêt, publiée en temps réel ;
- Bouton (bouton poussoir) : une fonctionnalité bouton, plus le déclencheur de scène Bouton appuyé sur un Shelly, déclenché à chaque appui simple, double, triple ou long — en temps réel, par la WebSocket ou MQTT. Un Shelly i4 donne ainsi quatre boutons prêts pour vos scènes ;
- Comptage : un compteur.
Vous avez changé le mode d'une entrée dans l'application Shelly ? Relancez une découverte et cliquez sur Mettre à jour sur l'appareil.
Le courant de neutre
Sur un Pro 3EM, n_current n'est mesuré que si vous avez câblé la pince de
neutre. Sans elle, l'appareil renvoie null : la fonctionnalité n'est alors
pas créée du tout, plutôt que d'afficher un graphique définitivement vide.
Si vous ajoutez la pince plus tard, relancez une découverte pour faire
apparaître la mesure.
Les badges de transport
Chaque appareil affiche dans Gladys un badge indiquant par quel canal il est réellement joint :
| Badge | Signification |
|---|---|
| Local | Nominal. Gladys parle directement à l'appareil sur votre réseau. |
| Cloud | Gladys passe par le Shelly Cloud (vous avez décoché « Préférer la connexion locale »). |
| Cloud + point orange | Dégradé : l'appareil n'était pas joignable localement, Gladys est passée par le cloud. Survolez le badge pour connaître la raison. |
| Injoignable | Ni le réseau local ni le cloud n'ont répondu. |
Un badge Cloud avec point orange est le signal à surveiller : votre installation fonctionne, mais pas dans son mode nominal. La bulle d'aide indique la cause — appareil éteint, IP changée, ou mot de passe refusé.
Scènes
Dans l'éditeur de scènes, catégorie Intégrations :
Déclencheurs
- Bouton appuyé sur un Shelly — choisissez l'appareil, éventuellement
l'entrée (0 à 3) et les appuis (simple, double, triple, long). Les variables
device_name,inputeteventsont disponibles pour les actions suivantes. - Joignabilité d'un Shelly — un appareil est devenu injoignable sur tous les transports (local, MQTT et cloud), ou répond à nouveau. Pratique pour être prévenu quand le compteur du tableau principal ne remonte plus.
Actions
- Allumer pendant une durée — allume un relais ou une lumière, et c'est le Shelly lui-même qui l'éteint après la durée (1 seconde à 1 jour). La minuterie vit dans l'appareil : un redémarrage de Gladys entre-temps ne laisse jamais tourner la pompe, le chauffage ou l'arrosage. La sortie 0 est le premier relais ou la première lumière de l'appareil, 1 le deuxième, etc.
- Redémarrer un Shelly — le remède habituel à un appareil qui ne remonte plus rien après un changement de Wi-Fi.
Les actions habituelles (allumer, éteindre, régler une position, une luminosité…) restent les actions d'appareil standard de Gladys.
Widgets de tableau de bord
Ajoutez-les depuis l'édition du tableau de bord, colonne Intégrations :
- Compteur d'énergie Shelly — pour un Shelly avec mesure (Pro 3EM, Pro EM, PM Mini, une prise ou un relais avec mesure) : une jauge de puissance en direct (sous zéro quand vous réinjectez), une tuile par phase ou par voie, l'énergie totale, la courbe de puissance sur la période de votre choix, puis les tensions, intensités, puissance apparente, facteur de puissance et fréquence de la dernière lecture, et la source. Réglez le maximum de la jauge sur votre puissance souscrite.
- Interrupteurs Shelly — les relais et lumières d'une pièce ou de toute la maison (laissez la sélection vide pour tout) : état et puissance de chaque sortie, le nombre allumé, la puissance totale, et des boutons Tout allumer / Tout éteindre (avec confirmation).
- Volets Shelly — un groupe de volets : état et position de chacun, la position moyenne, et des boutons Ouvrir, Stop, Fermer et Position pour tout le groupe (le formulaire de position est pré-rempli avec la moyenne actuelle).
- Santé du réseau Shelly — combien d'appareils remontent en temps réel, passent par le secours ou sont injoignables, puis la liste de ce qui mérite votre attention (injoignable, dégradé, signal Wi-Fi faible, mise à jour firmware disponible), et la part utilisée du budget Gladys de 300 états par minute.
Diagnostic
L'écran Configuration de l'intégration propose deux boutons en lecture seule, faits pour une issue GitHub ou un message sur le forum :
- Diagnostic des appareils — un rapport texte de toute l'installation : configuration (jamais de mot de passe ni la clé cloud), canaux WebSocket et MQTT, états publiés dans la dernière minute et cadence de la voie temps réel, puis pour chaque appareil son transport et s'il est dégradé, l'âge de sa dernière donnée, le disjoncteur local, ses composants, le signal Wi-Fi, la durée de fonctionnement, la mise à jour firmware disponible et l'état de ses sorties. Choisissez un appareil pour le diagnostiquer seul.
- Tester un appareil — lit un appareil tout de suite, à l'adresse
utilisée par l'intégration : identité
/shellyet temps de réponse, puis la lecture complète de l'état (avec le mot de passe), les composants et les fonctionnalités que l'intégration en tire, le signal Wi-Fi, et s'il remonte en temps réel. En cas d'échec, l'erreur exacte et quoi essayer. Fonctionne aussi pour un appareil non créé dans Gladys : saisissez son adresse IP — le moyen le plus rapide de comprendre pourquoi un scan ne le trouve pas. N'écrit jamais rien dans l'appareil.
Par défaut, la partie MAC des identifiants est raccourcie et les adresses locales masquées : le rapport peut être collé tel quel publiquement. Cochez Afficher les identifiants et adresses locales pour un échange privé. Les rapports sont aussi écrits dans les journaux de l'intégration, toujours en version masquée.
Mettre à jour l'intégration
Gladys signale les mises à jour disponibles dans Intégrations. Cliquez sur Mettre à jour : le conteneur est recréé avec la nouvelle image, votre configuration et vos appareils sont conservés. Les notes de chaque version sont sur la page des releases GitHub.
Un Shelly qui change de profil (un Plus 2PM qui passe de relais à volet, un variateur de lumière à interrupteur) garde ses anciennes fonctionnalités dans Gladys, vides. Le scan les nomme dans les journaux et le Diagnostic des appareils les liste : cliquez sur Mettre à jour pour les nouvelles, puis supprimez les anciennes dans Gladys.
Les nouvelles fonctionnalités d'un appareil existant (un volet calibré depuis, un composant nouvellement supporté) apparaissent après une découverte : cliquez sur Mettre à jour sur l'appareil marqué « Déjà ajouté ». Ses fonctionnalités existantes, son historique, vos scènes et tableaux de bord sont conservés.
Dépannage
Aucun appareil trouvé lors du scan
- Vérifiez que l'appareil répond. Depuis un navigateur sur le même réseau,
ouvrez
http://<ip-du-shelly>/shelly. Vous devez voir un JSON contenant"gen": 2(ou 3, ou 4). Si vous ne voyez pas de champgenmais un champ"type", c'est un appareil Gen1 : il est supporté aussi, en polling. - Le mDNS ne traverse pas les VLAN ni certains points d'accès Wi-Fi. Saisissez les adresses IP à la main dans Adresses d'appareils supplémentaires, puis sauvegardez : la découverte se relance automatiquement.
- Utilisez « Tester un appareil » dans l'écran Configuration avec l'IP de l'appareil : il dit si l'appareil répond, refuse le mot de passe, ou n'est pas un Shelly.
- Regardez les logs du conteneur (
docker logs <conteneur>). L'intégration journalise le nombre d'adresses candidates, leur origine, et la raison exacte pour laquelle une adresse a été écartée.
« L'appareil a refusé le mot de passe »
Vous avez activé l'authentification sur ce Shelly, et le mot de passe saisi dans
Gladys ne correspond pas. Sur les Gen2+ le nom d'utilisateur est toujours
admin : seul le mot de passe compte. Corrigez-le et sauvegardez — la
correction est prise en compte immédiatement, sans redémarrer le conteneur.
Si seul cet appareil a un autre mot de passe, ajoutez-le dans Mots de passe
par appareil (son-identifiant-shelly=son-mot-de-passe) plutôt que de changer
le mot de passe commun. L'écran Configuration nomme les appareils qui refusent
leur mot de passe, et Tester un appareil indique le mot de passe essayé.
Un appareil bascule tout le temps en Cloud (badge orange)
Son adresse IP a probablement changé (bail DHCP). Relancez une découverte : l'adresse est ré-apprise et mémorisée. Pour éviter la récidive, réservez une IP fixe pour vos Shelly dans votre box/routeur.
Le Shelly Cloud a refusé la clé d'autorisation
Recopiez la clé et l'adresse du serveur depuis l'application Shelly : les deux vont ensemble, et l'adresse du serveur dépend de la région de votre compte. Une clé valide sur le mauvais serveur est rejetée.
Les valeurs ne se mettent pas à jour aussi vite que prévu
Les états On/Off sont quasi instantanés (une seconde environ) : vos appareils les poussent vers Gladys par WebSocket, sans attendre le prochain rafraîchissement.
Toutes les puissances instantanées — puissance totale d'un compteur, puissance de chaque phase d'un triphasé, puissance de chaque relais — sont sur une voie temps réel dédiée, publiées toutes les 5 secondes par défaut (réglable de 1 s à 30 s, ou désactivable). C'est ce qu'il faut pour qu'une scène réagisse : piloter une batterie, délester une charge.
Le reste des mesures (tensions, courants, puissances apparentes, compteurs d'énergie, températures) suit l'intervalle de rafraîchissement que vous avez configuré. C'est volontaire, et c'est une contrainte dure plutôt qu'un choix : Gladys limite une intégration à 300 états par minute, alors qu'un seul Pro 3EM pousse environ une mise à jour par seconde sur ~25 mesures. Tout transmettre tel quel ferait ~900 états par minute — trois fois le plafond. Les mesures sont donc regroupées : Gladys reçoit la valeur la plus fraîche à votre cadence, sans aller-retour HTTP.
L'intégration ne publie par ailleurs que les valeurs qui ont changé ; une valeur stable est republiée toutes les 30 minutes pour ne pas paraître morte.
Ce qui se passe si votre parc est trop gros pour votre cadence. Le coût de la voie temps réel dépend du parc, pas du réglage : une valeur qui ne bouge jamais ne coûte rien, une valeur qui bouge sans arrêt coûte une place à chaque fenêtre. L'intégration mesure donc ce qu'elle publie réellement et allonge son propre intervalle quand elle dépasse 240 états par minute — et elle le dit :
Real-time lane slowed to 10s (you asked for 5s): the fleet is publishing
612 states/min, and the limit is 300/min. It speeds back up on its own; create
fewer devices, or raise the refresh interval, to stay at 5s.
Votre réglage est un plancher : la voie y revient d'elle-même dès que le budget le permet. Ralentir se voit, un état refusé par Gladys ne se verrait pas.
Le régulateur est volontairement lent à changer d'avis : il ralentit proportionnellement (une grosse installation atteint sa cadence en un ou deux pas), mais il ne réaccélère qu'une seconde à la fois, seulement une fois le débit redescendu nettement sous le seuil, et jamais plus d'une fois par minute. La mesure porte sur une minute glissante : décider plus vite reviendrait à décider sur un chiffre qui décrit encore la cadence précédente — et à osciller.
Si Gladys refuse malgré tout des états, vous le verrez nommément, et la voie ralentit immédiatement sans attendre :
Gladys refused 38 state(s): over the 300/min limit. They are retried on the
next cycle, and the real-time lane slows down.
Chaque minute, une ligne récapitule où vous en êtes :
Real-time lane: 54 state(s) published in the last minute (every 5s, from
4 WebSocket and 15 MQTT device(s)); 61/300 states/min of the Gladys budget used
Comment vérifier que le temps réel fonctionne vraiment. Dans les logs du conteneur, deux lignes différentes par appareil :
shellypro4pm-ece334ea4d10: real-time WebSocket connected
shellypro4pm-ece334ea4d10: real-time updates flowing
La première dit que la connexion est établie et que l'appareil nous a répondu ; la seconde apparaît à la première notification reçue. Si la première ligne n'apparaît pas, l'appareil refuse la connexion (mot de passe ? firmware Gen2 trop ancien ?) : les valeurs suivent alors simplement l'intervalle de rafraîchissement, rien n'est perdu.
Migration depuis une intégration MQTT / Node-RED existante
Cette intégration crée ses propres appareils avec ses propres identifiants
(ext:shelly:device:...). Elle ne reprend pas l'historique d'appareils créés
via MQTT : les deux peuvent cohabiter le temps de la transition, puis vous
supprimez les anciens.
Aller plus loin
- README du projet — architecture et développement
- Roadmap — ce qui est fait, ce qui arrive
- Documentation de l'API Shelly Gen2+
- Notes de version et le changelog
- Signaler un problème — joignez le rapport du Diagnostic des appareils
Paramètres de configuration
Voici les paramètres demandés par Shelly dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Connexion locale (recommandée) | section | Non | Gladys communique directement avec vos Shelly sur votre réseau, sans passer par le cloud : plus rapide, et ça continue de fonctionner quand Internet est coupé. Les appareils s'annoncent en mDNS et sont trouvés automatiquement lors d'un scan — rien à remplir ici, sauf si vos appareils sont protégés par mot de passe ou invisibles en mDNS. Toutes les générations sont prises en charge : Gen1, Gen2, Plus, Pro, Mini, Gen3 et Gen4. |
| Adresses d'appareils supplémentaires | string | Non | Optionnel. Adresses IP ou noms d'hôte, séparés par des virgules, des Shelly que le mDNS ne trouve pas (autre VLAN, mDNS désactivé sur l'appareil, configuration statique). Exemple : 10.5.0.171, 10.5.0.172, shellypro4pm-ece334ea4d10.local |
| Nom d'utilisateur des appareils | string | Non | Uniquement si vous avez activé l'authentification sur vos Shelly. Sur les Gen2+, le nom d'utilisateur est toujours « admin » — laissez-le tel quel. |
| Mot de passe des appareils | secret | Non | Uniquement si vous avez activé l'authentification sur vos Shelly. Utilisé pour tous les appareils, sauf ceux listés dans Mots de passe par appareil ci-dessous. |
| Mots de passe par appareil | secret | Non | Optionnel, pour les appareils dont le mot de passe diffère de celui ci-dessus : des entrées appareil=motdepasse séparées par des points-virgules. L'appareil est son identifiant Shelly, son adresse MAC ou son adresse IP. Exemple : shellyplus1-a8032ab12345=premier; 10.5.0.42=second |
| Shelly Cloud (secours) | section | Non | Optionnel. Quand un appareil n'est pas joignable localement (hors du domicile, autre VLAN, coupure Wi-Fi), Gladys peut basculer sur le Shelly Cloud. Récupérez la clé d'autorisation et l'adresse du serveur dans l'application Shelly : Réglages, puis Réglages utilisateur, puis Clé d'autorisation cloud. Laissez cette section vide pour une installation 100 % locale. |
| Activer le secours par le Shelly Cloud | boolean | Non | Utiliser le Shelly Cloud quand un appareil est injoignable sur le réseau local. Nécessite l'adresse du serveur et la clé d'autorisation ci-dessous. |
| Serveur Shelly Cloud | string | Non | Le serveur qui héberge votre compte, affiché à côté de la clé d'autorisation dans l'application Shelly. Exemple : shelly-53-eu.shelly.cloud |
| Clé d'autorisation Shelly Cloud | secret | Non | La clé d'autorisation cloud de votre compte Shelly. Elle donne le contrôle total sur tous les appareils du compte — traitez-la comme un mot de passe. |
| MQTT (recommandé pour les grandes installations) | section | Non | Optionnel, et le moyen le plus fiable de joindre une grande installation. Les Shelly s'annoncent en mDNS par courtes rafales multicast faciles à manquer : au-delà de quelques appareils, certains ne sont jamais découverts. Un appareil configuré pour publier sur votre broker MQTT s'annonce en permanence : il est découvert, il remonte en temps réel, et il reste pilotable même injoignable sur le réseau local. Configurez le broker dans chaque Shelly : Réglages, puis MQTT, puis cochez Enable, Enable MQTT Control et RPC status notifications over MQTT. |
| Activer MQTT | boolean | Non | Écouter votre broker MQTT pour découvrir, lire et piloter les Shelly qui y publient. |
| Adresse du broker MQTT | string | Non | Hôte et port de votre broker, tels que saisis dans le champ Server de vos Shelly. Le port vaut 1883 par défaut. |
| Nom d'utilisateur MQTT | string | Non | Uniquement si votre broker exige une authentification. Utilisez les mêmes identifiants que dans vos Shelly. |
| Mot de passe MQTT | secret | Non | Uniquement si votre broker exige une authentification. |
| Avancé | section | Non | Les valeurs par défaut conviennent à la plupart des installations — ne les changez qu'en connaissance de cause. Un intervalle plus court donne des valeurs plus fraîches mais génère plus de requêtes sur votre réseau et vis-à-vis de la limite de débit des états Gladys. |
| Noms des fonctionnalités | select | Non | Langue des noms de fonctionnalités donnés aux appareils nouvellement découverts. Un appareil déjà créé garde ses noms : renommez ses fonctionnalités dans Gladys si besoin. |
| Intervalle de rafraîchissement | select | Non | Fréquence à laquelle Gladys lit l'état de chaque appareil. |
| Intervalle temps réel (puissance et marche/arrêt) | select | Non | Vitesse de publication des valeurs auxquelles une scène réagit : toutes les puissances instantanées (totale, par phase, par relais), tous les états marche/arrêt, l'état des volets et des lumières. Tout le reste (tensions, intensités, compteurs d'énergie, températures) suit l'intervalle de rafraîchissement ci-dessus. C'est un plancher, pas une promesse : Gladys accepte 300 états par minute au total, donc sur un grand parc l'intégration ralentit cette voie d'elle-même en l'indiquant dans les logs, puis y revient dès que le budget le permet. |
Comment installer Shelly dans Gladys
- Dans Gladys, ouvrez Intégrations : Shelly apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/terdious/gladys-shelly:1.4.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/Terdious/gladys-shelly.
Shelly nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
Guides associés
- Shelly sans le cloud: le contrôle local des relais, prises et compteurs Shelly.
À propos des intégrations externes
Shelly est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par Terdious, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation