Shelly Température et Humidité Wifi

Documentation eedomus

Cette page décrit la connexion d'un module Shelly Plus H&T Wifi Sensor à eedomus. Shelly est une marque de la société d'origine bulgare Allterco.

Ce module dispose d'un écran e-ink, et affiche la température et l'humidité.

Cette page décrit toutes les étapes pour remonter la température dans eedomus, sans installer d'application sur Smartphone et sans utiliser le Cloud Shelly.

Il existe également un module de store eedomus "Shelly" (merci KikiFUNstyle) qui génère les étapes 2 et 3 pour tous les types de Shelly (il ne faut garder ensuite que ce qui est utile). https://doc.eedomus.com/view/Shelly .

Cette page décrit une configuration totalement manuelle, sans utiliser ce module du store eedomus.

Première étape - Connexion du Shelly au Wifi du domicile

Alimenter le Shelly H&T par 4 piles AA ou une connexion USB-C (rien n'est fourni).

Le module devient point d'accès Wifi, avec un nom de Wifi qui commence par Shelly***** .

Vous devez vous connecter à ce point d'accès avec un ordinateur portable ou un smartphone muni du Wifi. Sélectionner le Wifi ShellyPlusHT-B8ADRESSEMAC (réseau ouvert)

A l'aide d'un navigateur web, saisissez l'adresse http://192.168.33.1/

Paramétrez ensuite le Wifi du domicile (le nom SSID et le mot de passee). Vous pouvez même paramétrer 2 réseaux Wifi.

Une fois cette étape créé, il est possible que vous perdiez la connexion au module (que nous retrouverons à l'étape 3).

Seconde étape - Création d'un capteur pour accueillir l'information dans eedomus

Nous conseillons de créer un module d'Etat virtuel (ou un capteur HTTP qui ne fera aucune requête : http://localhost, XPath : //result, fréquence 0 min.).

Nous conseillons de le créer de type "température", avec des valeurs décimales (et non liste de valeur).

Ensuite, il faut récupérer l'URL de l'API eedomus qui va permettre d'envoyer l'information.

Dans Configuration -> Mon compte -> identifiants API, vous accédez au générateur de requête. C'est une requête Cloud de type SET, valeur.

Vous pouvez tester la requête dans un navigateur web en saisissant une température fictive, par exemple 10.

La requête est alors : http://api.eedomus.com/set?api_user=****&api_secret=*****&action=periph.value&periph_id=****&value=10

Le résultat remonte dans l'interface eedomus !

Nous conseillons d'utiliser l'API en mode HTTP et non HTTPS, sinon, les piles du Shelly vont être consommées deux fois plus rapidement d'après la doc Shelly. N'oubliez pas d'autoriser l'API en HTTP sur Configuration / Mon compte "Autoriser l'API via HTTP"

Troisième étape - Paramétrage du Shelly pour envoyer l'information

Cette URL est va être saisie dans l'interface eedomus, avec une petite modification. Il faut remplacer à la fin de l'URL le température de test par $température.

Au final, l'URL à saisir dans le ShellyHT ressemble à

http://api.eedomus.com/set?api_user=****&api_secret=*****&action=periph.value&periph_id=****&value=$temperature 

Il faut réveiller le module en appuyant sur le bouton intérieur.

Il faut ensuite trouver son adresse IP. Vous pouvez trouver son adresse sur votre routeur internet, ou avec la fonctionner de Scanner de eedomus.

Lorsque vous vous connectez à cette nouvelle adressee IP, dans webhook, vous ajouter l'URL eedomus. Il est possible d'ajouter plusieurs URL dans un webhook, mais cela n'est pas utile ici.

Lorsque la température change de 0.5°C (écart par défaut), le Shelly va brièvement se connecter au réseau local en Wifi pour envoyer l'information.

Nota

Pour gagner du temps, vous pouvez procéder d'abord à l'étape 2, puis l'étape 1 et 3 en même temps. Cela évite de recherche l'adresse IP et de sortir le Shelly de son mode sommeil, mais cette page se veut plus didactique.

En compléments de paramétrage, vous pouvez supprimer le Bluetooth si vous ne l'utilisez pas.

Le Shelly semble envoyer 2 fois la même information en HTTP. Nous ne savons pas pourquoi.

Nous conseillons de passer le seuil de variation à 1°C au lieu de 0.5°C pour économiser la batterie.

Il est possible d'appeler l'API locale de la box eedomus plutôt que l'api Cloud eedomus (http://ip_locale/api/set?...), en fixant au préalable l'IP de la box eedomus localement.

L'adresse MAC de notre Shelly commence par b8:d6:1a:8b:5c:** (Espressif).

Les modèles Shelly H&T Gen 1 (sans écran) ne peuvent pas utiliser directement cette technique.

Il existe d'autres manières de récupérer les informations de ces capteurs. Sur détection DHCP de la connexion du Shelly, appeler un script qui va appeler les url http://ip_shelly/status (puis //bat/value pour la batterie d'un Gen1) ou http://192.168.33.1/rpc/DevicePower.GetStatus?id=0 (avec le xpath //battery/percent pour récupérer la batterie d'un gen2 https://shelly-api-docs.shelly.cloud/gen2/0.14/ComponentsAndServices/DevicePower#devicepowergetstatus-example). Il est aussi possible d'utiliser le sensor report et le traiter par un script eedomus (par exemple pour traiter la variable &temp=25 d'un Gen1 https://shelly-api-docs.shelly.cloud/gen1/#shelly-h-amp-t-settings).

Pour récupérer la batterie du module, voir Shelly - Gestion batterie

Avec cette configuration, le Shelly interroge le site time.google.com en plus de l'API eedomus. Lors de l'appui sur le bouton, il interroge également https://updates.shelly.cloud (chez Google Cloud en 2023).


D'autres périphériques Shelly sont listés ici, Périphériques Shelly, dont :

En utilisant le module du store Shelly, et la phase 1 de ce tuto, beaucoup d'autres modules sont simples à intégrer.

Plus d'information : Principes de configuration d'un module Shelly avec eedomus