[TUTO] Utiliser un module Shelly sans Le Flasher

Bonjour à tous,

Je republie une version actualisée de ce tuto sur le nouveau Site.

Nous allons apprendre à configurer correctement un module shelly 1 dans Jeedom sans aucune manipulation, sans flash et donc sans EspEasy.

Il existe également un excellent plugin de @lunarok qui fait le boulot sans manipulation. Je dirais que ce tuto est complémentaire pour expliquer des notions de MQTT

Je donne un exemple pour le Shellly 1 mais toute la gamme Shelly peut-être piloté en MQTT. Donc tous les produits sont intégrables à jeedom sans avoir besoin de les flasher. Ici je détaille les étapes, mais pour le MQTT ça fonctionnera car la liste des tropics est disponible à la fin du post

1/ C’est quoi un module Shelly ?

  • C’est un module européen (bulgare) norme CE à moins de 10 euros de toute petite taille (un peu plus grand qu’une pièce de deux euros), facilement intégrable dans une boite d’encastrement.
  • Il possède un relais d’une puissance de 16 Ampères (donc puissance maxi d’environ 3500 W mais bornier en 1.5 mm2 donc ne pas dépasser 2500 watts - je fais des tests).
  • Il fonctionne dans la plage de température +40 °c / - 40° C - idéal pour l’extérieur !
  • Il peut être commandé également par un interrupteur ou bouton poussoir, donc faire télérupteur.
  • Il peut délivrer un contact sec pour les portails
  • Il peut s’alimenter en 110-265V, 50/60Hz AC, 12V DC, 24 – 48V DC. Le bornier est bien dimensionné et permet le passage de fil.
  • Il fonctionnera partout ou vous avez du WIFI chez vous.

Pour résumer, il peut servir à commander des lampes ou des appareils électriques (attention de ne pas dépasser la puissance admissible !).

Il peut également permettre d’ouvrir fermer un portail par contact sec ou une gâche électrique basse tension puisque compatible 12 ou 24 V. Enfin il peut servir de télérupteur. Bref un couteau suisse à moins de 10 euros, pas très éloigné d’une module fibaro à plus de 50 euros…

Petit rappel de sécurité :

Je rappelle que le 220 volts est mortel pour l’humain

On ne joue pas avec sa vie et on coupe le courant. Me concernant j’utilise un prise récupérée sur un poste radio pour mes tests:



2/ Etape 1 - configuration du module.

Voici donc le bornier :

Vérifier le positionnement du cavalier sur la bonne tension. En principe réglage usine à droite soit 220

PUIS raccorder le module en utilisant le bornier (N pour neutre et L pour phase ou bonne polarité si courant continu)

1/Brancher le bornier et attendre quelques instants.

2/ Avec votre téléphone ou votre ordinateur, recherché les réseaux wifi disponibles, vous devez trouver un réseau nommé « shelly1- XXXXXX ». Si vous ne le trouvez pas, débrancher rebrancher le module.

Si cela ne fonctionne toujours pas (ce serait pas de bol !) il faudra faire un hard reset du module (brancher un interrupteur sur le Switch, alimenter et dans les 60 secondes faire 5 allumages extinctions). Egalement valable si votre configuration wifi change…

A partir de la, en étant connecté sur votre réseau wifi maison habituel :

  • installer l’application du fabriquant (en anglais), le QR code est sur la notice.
  • Configurer un compte shelly (pour le cloud)
  • ajouter votre module (add device / choisir votre réseau Wifi et sa clé ==> success…).
  • Éventuellement mettez à jour le firmware du module et rebootez en débranchant.
  • Dans la configuration (settings) recherchez « device information » : notez le device IP : chez moi 192.168.2.5 : Mais pas chez vous !!! ( à ce propos adresse IP a fixer soit dans votre routeur soit dans l’interface shelly)
  • Dans un navigateur rentrez cette adresse ip : 192.168.2.5. Bienvenue dans l’interface de votre module ! .

On peut bien sur rester sur l’interface mobile, ce n’est pas un problème , mais je trouve cela moins pratique…

L’interface téléphone est très capricieuse chez moi… Je ne trouve pas toujours la rubrique développeur pour activer MQTT…

Etape 3 - Configuration de Jeedom :

Installation du plugin JMQTT jeedom.

Pour info, il existe deux plugins capables de faire tourner un broker (MQTT de @Lunarok et JMQTT de @Domotruc). Je ne veux pas d’histoires avec les développeurs !

Le principe est le même sur chaque plugin. Naturellement se documenter un peu sur le sujet est recommandé.

En gros (très gros), un broker c’est un serveur qui transmet et écoute des publications type message sur ou vers un tropic.

Par exemple le tropic : /Shellies/Température va recevoir des données de température successives d’une sonde : 18, 19 17,20 etc…

Votre broker peut également émettre un trame pour commander un objet : Shellies/command/relay/0/ on mettra le relais sur ON.

On installe donc le plugin JMQTT et ses dépendances. On attend que tout soit OK et au Vert. On laisse toutes les valeurs par défaut, sinon on sait ce que l’on fait… Les dépendances vont automatiquement installer le broker « mosquitto », archi répandu.

image

Etape 4 : On active MQTT sur le module Shelly.

  • On va dans notre interface sur notre navigateur avec son adresse : 192.168.2.5 pour moi.
  • On choisit internet security / ADVANCED - DEVELOPER SETTINGS /
  • On coche Enable action execution via MQTT
  • On laisse username et password vide ( sauf si on sait ce que l’on fait)
  • On rentre l’adresse IP et le port du serveur MQTT de Jeedom : 192.168.2.33:1883 ( ou 192.168.2.33 est l’adresse ip de votre jeedom ou se trouve le broker et 1883 le port par défaut de mosquitto)
  • on met les valeurs désirées dans Min reconnect timeout (disons 2) Max reconnect timeout: (disons 60) et keep alive (disons 60)
  • on laisse vide les champs Will Topic et Will Message
  • On valide : c’est vert, c’est bon…

Etape 5 : on va désormais faire remonter tout cela dans jeedom.

  • Dans jeedom : plugin / JMQTT
  • Passer en mode inclusion.
  • Attendre que jeedom soit détecté, vous aurez un message relatif à cette inclusion automatique qui n’a rien à voir avec shelly. En fait votre broker mosquitto se met en écoute sur tous les tropics ===> Doc du plugin.
  • Sur votre interface (192.168.2.5), pressez le bouton actionneur pour faire claquer le relais plusieurs fois. (en haut bouton a coté de switch)
  • Dans jeedom un nouveau périphérique apparaît : Shellies

Avec cette façon de faire tous les modules shelly remonteront sur le même tropic, donc le même objet. On peut contourner en créant un virtuel mais @Domotruc, créateur du plugin JMQTT propose une solution beaucoup simple :

Il suffit de ne pas passer par l’inclusion automatique, mais de créer l’équipement manuellement, et de saisir le topic d’inscription comme suit:

shellies/shelly1-ID_Shelly/#

Dernière étape : Configurer les commandes dans Jeedom.

Dans le plugin JMQTT, cliquer sur shellies
Rendez le visible, choisissez une pièce, choisissez relais dans catégorie du Tropic

Cliquer sur Commandes.

En principe vous aurez déjà deux commandes infos.
On va maintenant ajouter deux commandes action une commande OFF et une commande ON .
Pour faire ça, il faut publier sur
shellies/shelly1-ID_Shelly/relay/0/command
le mot on ou le mot off (je l’invente pas c’est dans la doc développeur…). Attention MQTT est sensible au majuscule minuscule.

Il faut bien sur mettre la bonne Id de votre Shelly : ou shelly1- ID_Shelly vaut chez moi shelly1- 12C6AC . Vous trouvez ça dans la commande info ou alors vous saisissez 192.168.2.5/settings dans votre navigateur ( ou 192.168.2.5 est l’adresse de mon module shelly).

Il faut donc faire ça :

Vous cliquez sur tester au bout de vos deux commandes et votre relais claque… Fin de l’histoire

Vous voici avec un module qui reste pilotable sur votre téléphone sur votre réseau interne LANi . En effet l’activation de MQTT « en local » neutralise le cloud shelly qui utilise probablement son propre broker pour communiquer avec les serveurs alterco…

Quelques infos pour les branchements :


Toujours adapter le cavalier en fonction de la tension !!!

L = Phase ou - (gnd)
N = Neutre ou +
S = Switch, c’est l’interrupteur ou le poussoir, c’est une entrée qui réagit à la présence d’une tension et qui informe le 2ème relais ( je suis OFF ou On, donc je suis pressé ou pas)

I : IN, c’est l’entrée d’une tension qui ressortira sur O (Out) si le relais est fermé
O : OUT : c’est la sortie de la tension injectée en IN

Si je n’ai pas de tension injectée sur I, j’ai un contact sec entre I et O…

Le principe est toujours le même :
Dans tous les cas de figure :
L et N alimente le module seul.

Pour un portail contact sec:

Par defaut, si I n’est pas relié à une tension (qui peut être différente de celle qui alimente le module) : contact sec entre I et O. Donc je branche L et N pour alimenter mon module et I et O sur le contact sec de mon portail. Quand j’actionne le relais, je ferme le circuit entre I et O. Je peux régler ce temps de fermeture dans l’application mobile.

Pour un lampe ou autre équipement :
L et N alimente le module seul.

En IN une phase en 220 ( ou autre tension) en OUT une sortie vers la lampe ou l’appareil.
En S une phase qui vient de l’interrupteur ou du bouton poussoir.

Il est bien sur tout à fait possible de récupérer/ piloter n’importe quel module shelly.
Il suffit de de publier ou récupérer le bon tropic.
Vous trouverez une liste complètedes tropic MQTT dans la doc développeur sur le site Shelly ici :

Amitiés
Phil

16 « J'aime »

Comme d’habitude, joli travail. N’oublie pas d’ajouter le tag « tutoriel » pour le retrouver plus facilement

Bravo, une référence, à lire et relire !!!

1 « J'aime »

Et hoppp copier coller dans un document word pour ma base de Tutos
un grand Merci pour le partage

@Alexandre, il serait pas intéressant de pouvoir intégrer ce genre de tuto dans la doc de jeedom de manière à ce que cela reste facilement accessible. Même si le tag tutoriel existe.

1 « J'aime »

super tuto, j’attend mes shelly plug S : Shelly Plug S | Shelly Shop Official

la remontée de conso se fait elle bien dans jeedom par ce procéder ou dois je passer par le plugin shelly ?

plug s reçues

déjà 1h de galère sous ios puis android : ça se connecte, se déconnecte, ça clignote mais rien de bon… j’arrête pour ce soir avant le lancer de prise !!

si certains ont essayé …

Bizarre ça, te réception wifi est correcte? Les antennes intégrées a ces objets ont forcément un gain beaucoup plus faible qu’un smartphone, si tu essaies plus près de ton routeur wifi ça donne quoi ?

Pour le plugin maintenant qu’un plugin Shelly existe tu as le choix, MQTT ou plugin Shelly en direct, le résultat sera similaire :wink:

En tout cas j’ai 8 Shelly 1 a la maison qui fonctionnent a merveille, mais j’ai plusieurs point d’accès WiFi sinon les plus éloignés avaient des déconnexions

Bonsoir,
C’est très étrange. +1 pour un wifi merdique…
Phil

L’interface web du shelly permet de connaitre la force du signal wifi.

Salut ,mis à part que j’en ai grillé un… Les deux Shelly 1 ont été stables.
Les déconnexions ont été constatées via l’application Shelly ou via Jeedom ?

je suis a peu près a 2 metres du répéteur qui va bien

toujours rien de détecté par jmqtt … saoulant

et pas envie de mettre encore 5€ dans un plugin, surtout si ca se passe pareil …

je n’arrive même plus a avoir l’interface par le navigateur et le tel ne dit rien non plus, la poubelle approche

je tente une restauration d’usine pour voir

elle est détectée par l’appli du tel
puis inclue dans mon wifi (d’après l’appli)
ensuite, introuvable dans l’appli …

elle est apparue a un moment, puis disparue
et ca s’allume bleu en s’éteignant brièvement de temps en temps …

je ne comprend rien

au bout de 5 remise d’usine, j’ai avancé mais la config jmqtt reste en rouge et maintenant interface inaccessible

EDIT : Ca marche !!! il a fallu débrancher les 2 répéteurs et brancher a coté de la box. J’ai inclus 2 shelly plug S

Merci pour le tuto, marche nickel !
Je viens de me prendre des plug shelly S
ils fonctionnent sans problème avec mqtt

par contre j’ai une question concernant « energy », c’est quel unité ? du Wh ? Watt minutes ? ou autres ?

Merci pour le Tuto
ça foncitonne chez moi ! :slight_smile:

1 « J'aime »

bonjour,

question bête : tout a fini par se mettre en place entre les shellies et le rpi controlant jeedom.

seulement voilà, j’ai ajouté un routeur a mon réseau pour « additionner » 2 boxes, mon rpi a donc changé d’adresse, ce que j’ai reporté sur chaque shelly.
est il possible de laisser les shellies sur un réseau 192.168.1.xxxx et le rpi en 192.168.3.xxx ? ou faut il absolument que tout soit sur le même réseau ?

Est-ce que les 2 réseaux se voient ? En gros, est-ce que tu peux pinger une machine d’un réseau à l’autre ?

je viens de tester, je peux pinguer depuis mon pc ou depuis le rpi un prise shelly

je précise que mon routeur a 2 WAN (1 ADSL et 1 4G), que mon pc et le rpi sont sur le lan du routeur. Par contre, pour le moment, les shellies sont sur le wifi de la box adsl

Si les 2 réseaux « se voient », ça devrait fonctionner sans soucis.
J’ai une configuration assez similaire à la tienne et j’ai un équipement que je ne peux déplacer de la box opérateur, ça ne pose aucun souci, jeedom discute avec sans pb.

au départ, tout était sur le même wifi (rpi et shellies) puis, j’ai passé l’ethernet du rpi sur le routeur

je pense qu’il y a un « réglage » sur le broker mais je ne vois pas comment. je me demande comment communique le broker car dans les commandes, c’est bien le bon ip qui est indiqué puisqu’il n’a pas changé, qui plus est, je ne peux pas modifier l’ip a cet endroit

j’ai toujours la solution de tout reprendre depuis le début mais comme je ne sais pas comment va finir mon réseau, je préférerais pouvoir modifier au coup par coup …

1 « J'aime »