Principes de configuration d'un module Shelly avec eedomus
Documentation eedomus
Cette page concerne les modules Shelly Wifi ou LAN (et non pas les modules Z-Wave).
Les modules Wifi sont intéressants car ils s'appuient sur un réseau qui est facile à étendre sur de grands bâtiments, plusieurs étages, en utilisant le même SSID (comme dans les hôtels). Le fabriquant Shelly a en outre l 'avantage de proposer une configuration qui peut être indépendante du cloud et de toute app (contrairement à Tuya). La configuration en Wifi est néanmoins un peu plus complexe que l'ajout d'un module Z-Wave ou Zigbee.
La configuration s'effectue en 3 étapes principales :
- raccorder le module Shelly à votre réseau Wifi
- créer les modules actionneurs ou capteurs dans eedomus qui vont interagir avec le module Shelly
- paramétrer le module Shelly pour envoyer les informations aux capteurs (cette phase n'est pas forcément nécessaire pour les actionneurs)
Afin que le module Shelly communique vers eedomus (capteur), il faut paramétrer une Actions dans le module Shelly. Dans cette action, vous saisissez une adresse web (URL), qui appelle au choix l'api cloud eedomus, l'api locale eedomus ou un script php du store eedomus sur la box eedomus.
Lorsque eedomus communique vers le module Shelly (actionneur), eedomus un utilise un actionneur HTTP qui appelle le module Shelly par son adresse ip.
Pour les modules qui le supportent, l'objet du store eedomus "Shelly" (merci KikiFUNstyle) s'occupe des étapes 2 et 3.
Principe pour un capteur (exemple avec l'api cloud eedomus)
1. Raccorder le module Shelly à votre réseau Wifi
- En vous connectant au réseau Wifi généré par le module puis en allant sur http://192.168.33.1 avec un navigateur (à partir d'un smartphone, tablette, pc portable)
- Une fois cette étape réalisée, il faut retrouver l'adresse IP du Shelly sur votre réseau local: utiliser le scanner eedomus au besoin
2. Créer un capteur HTTP (qui ne va pas faire de requête HTTP, fréquence de paramétrage à 0)
- Aller ensuite sur secure.eedomus.com / Config / Mon compte - API : pour récupérer l'API Cloud Set du capteur en question
3. Paramétrer une action sur le site web du module Shelly
- En copiant l'URL de l'API Cloud (et en lui ajoutant $température pour un capteur de température).
Exemple : Shelly Température et Humidité Wifi
Principe pour un actionneur (exemple avec un actionneur http eedomus)
1. Raccorder le module Shelly à votre réseau Wifi
- En vous connectant au réseau Wifi généré par le module puis en allant sur http://192.168.33.1 avec un navigateur (à partir d'un smartphone, tablette, pc portable)
- Donnez lui une adresse IP fixe, de préférence via le DHCP de votre rotueur
2. Créer un actionneur HTTP dans eedomus
- Ajouter lui une action ON et une action OFF pour une prise
- Voir la syntaxe ci-dessous suivant la version
- Ajouter lui une action ON et une action OFF pour une prise
Vous avez deux méthodes ensuite pour remonter le statut de l'actionneur, s'il était actionné par autre chose que eedomus (un interrupteur physique ou l'écran du Shelly Pro 4 PM) :
- la première est d'effectuer un "polling" dans l'actionneur eedomus, par exemple toutes les 10 minutes, c'est le plus simple.
- la seconde est d'ajouter une Action (un webhook) sur le Shelly pour appeler l'API locale ou cloud eedomus (voir ci-dessous pour le capteur)
Concernant l'Action, il faut ajouter &update_only=1 à la fin de l'API locale pour ne pas déclencher l'action. Voir l'exemple avec la prise shelly.
Il n'est pas interdit de paramétrer les 2 méthodes simultanément. D'abord la méthode simple, puis une fois que tout fonctionne, la méthode Action qui un peu est plus complexe mais "instantanée".
Exemples :
Liste de module Shelly
- Shelly 2 PM Pro Gen2
- Shelly Plus Plug S Gen2
- Shelly Motion 2 . Ce module présente la spécificité d'être toujours joignable malgré l'alimentation à pile (il n'a pas besoin de réveil). Gen1
- Shelly Humidity & Temperature Gen2
Complément : URL suivant la version du module Shelly
Il existe 2 versions de modules Shelly : Gen1 et Gen2. Les 2 versions ne répondent pas aux mêmes commandes. Et même dans la même génération, les fonctions supportées sont différentes (d'où la documentation par module.
Pour activer un relais Gen2, l'URL est (au choix, toutes fonctionnent !):
- v2 http://ADRESSE_IP_SHELLY/relay/0?turn=on (GET)
- v2 http://ADRESSE_IP_SHELLY/rpc/Switch.Set (POST) Data : {"id":0,"on":true}
- v2 http://ADRESSE_IP_SHELLY/rpc/Switch.Set?id=0&on=true (GET)
Vous pouvez remplacer ADRESSE_IP_SHELLY par son adresse sur votre réseau local, de type 192.168.1.xx ou son adresse mDNS ShellyXXXXXX.local. Si vous utilisez l'adresse IP, nous vous conseillons de fixer cette adresse IP (sur votre routeur internet de préférence, ou sur le module Shelly directement), sans quoi, elle changera certainement dans le futur.
Pour reconnaître la version, la liste des périphériques est https://shelly-api-docs.shelly.cloud/gen2/ pour la génération 2, et bien sûr https://shelly-api-docs.shelly.cloud/gen1/ pour la génération 1.
Complément : choisir la communication de Shelly vers eedomus
Trois méthodes sont possibles pour paramétrer l'Action sur le site web local du Shelly :
Afin que le module Shelly communique vers eedomus (capteur), il faut paramétrer une Actions dans le module Shelly. Dans cette action, vous saisissez une adresse web (URL), qui appelle au choix l'
api cloud eedomus
Pour trouver cette API, vous allez sur le constructeur de requête API de secure.eedomus.com API eedomus#Génération automatique des requêtes API
La requête ressemble à http://api.eedomus.com/.....
C'est la méthode la plus simple, car elle ne nécessite pas de fixer l'IP de la box eedomus. En revanche, elle ne fonctionne pas si votre accès internet est coupé. Elle est limité en service Free à 1000 requêtes par jour (mais non en service Premium).
api locale eedomus
Pour trouver cette API, vous allez sur le constructeur de requête API de secure.eedomus.com API eedomus#Génération automatique des requêtes API
La requête ressemble à http://192.168.1.xx/api.... Selon nos tests, vous ne pouvez pas aussi utiliser l'adresse mDNS de la box eedomus http://eedomus.local/api.. (qui n'est pas implémentée par Shelly dans les webhook ou actions, même si elle est implémentée pour les requêtes depuis l'extérieur).
Elle a l'avantage d'être locale, et de fonctionner même si votre accès internet est coupé. Elle n'est pas limité autrement que par les ressources techniques de la box eedomus.
script php du store eedomus sur la box eedomus
Ce mode de communication est utilisé par le module Shelly du store eedomus.
Complément : comment configurer le Shelly
Vous avez deux possibilités de configuration:
- soit manuellement par l'interface web intégrée du Shelly (la méthode la plus transparente, qui permet de comprendre le fonctionnement module, et qui est plus sûre pour les périphériques à pile qu'il faut parfois réveiller)
- soit en envoyant des requêtes HTTP pour paramétrer le Webhook du Shelly (ce que fait le pluging Shelly du store eedomus, ce qui est plus rapide, mais n'est pas forcément à jour en cas de changements de version logicielle ou de nouveaux modules Shelly)
http://ADRESSE_IP_SHELLY/rpc/Webhook.Create?cid=1&name="eedomus_ON"&enable=true&event="switch.on"&urls=["http://ADRESSE_IP_EEDOMUS/api/set?api_user=....%26api_secret=...%26action=periph.value%26periph_id=.....%26value=100"]
Complément : Trouver l'adresse IP du module Shelly sur le réseau local
Une fois que le module est ajouté au réseau Wifi domestique (après vous être connecté au Wifi Shelly, 192.168.33.1, puis la sélection de votre Wifi), il prend une adresse IP. Sur certains modules, cette adresse IP est affichée (Shelly Plug S) pendant la connexion Wifi local.
Pour piloter un actionneur, vous avez besoin de cette IP, que vous pouvez retrouver de 4 manières différentes :
- en utilisant le scanner intégré à la box eedomus : Netscan eedomus
- en regardant sur votre routeur internet qui a attribué cette IP en DHCP
- en ayant noté au préalable le nom du Wifi shelly lors de la première configuration, et en ajoutant ".local" du service mDNS http://shellyxxxx.local
- en utilisant un scanner IP sur votre PC
Le module Shelly n'est pas visible dans la page Réseau de votre PC Windows, contrairement à la box eedomus, des caméras, car il n'utilise pas UPnP.
Complément : Sécurité
Nous ne conseillons pas forcément d'ajouter un mot de passe sur le module Shelly. Cela apporte certes une sécurité, mais au prix d'un augmentation de la complexité. C'est un peu comme si vous fermiez toutes les portes intérieures de votre domicile. Cela va complexifier la vie d'un intrus, mais la votre aussi. Nous ne le conseillons que sur des modules qui commandent des ouvertures (volets, porte garage, ...).
De même, nous conseillons de rester en HTTP et non en HTTPS. Cela est important pour les modules à pile, car HTTPS entraîne deux fois plus d'échange et diminue la durée de la pile. Les communications sont déjà chiffrées par le réseau Wifi (qui lui doit être sécurisé).
Nous conseillons de désactiver le Bluetooth et le point d'accès wifi local (AP) une fois que la communication est établie.
Read in English https://doc.eedomus.com/en/index.php/Configuring_a_Shelly_module_with_eedomus