Catégorie : Domotique
Affichages : 18925

I- Choix du module domotique Shelly 1 :

II- Choix du firmware Tasmota :

III- Branchements :

Shelly1 Garage

REMARQUE : Il est possible de brancher le détecteur d'ouverture sur la borne SW à condition d'alimenter le Shelly 1 avec du 12 Volts. NE PAS LE FAIRE si le Shelly 1 est alimenter en 220 Volts comme dans mon projet car c'est dangereux ! Cette vidéo l'explique très bien https://invidious.fdn.fr/watch?v=WEZUxXNiERQ.

 

 

 

 

IV- Réglages dans Tasmota :

Pour info, la version du firmware installé au moment au j'écris est la 8.4.0.
Pour avoir les détails des commandes à taper dans la console pour paramétrer le module : https://tasmota.github.io/docs/Commands/
Après le flashage du module, il est impératif de procéder à son paramétrage.

A- Réglages WIFI et adresse IP fixe

Au premier démarrage, il faut se connecter au nouveau point d'accès Wifi qui se nomme "Tasmota-xxxx" et saisir via un navigateur Internet l'adresse IP : http://192.168.4.1. On arrive alors sur l'interface Web (Web UI) d'administration du module.
On a 3 minutes pour renseigner la borne wifi (SSID + mot de passe) à laquelle se connectera le module. On peut même indiquer un deuxième point d'accès de secours. On ne change rien d'autre et on valide. Le module va redémarrer et se connecter au réseau local wifi avec une nouvelle adresse IP sur le même segment réseau (192.168.1.x pour chez moi). Il faut maintenant scanner le réseau pour retrouver la nouvelle adresse IP du module. Sous Ubuntu, dans une console d'émulateur de terminal, je tape la commande qui me liste tous les appareils connectés au réseau :
nmap -sP 192.168.1.0/24

Une fois que l'on connaît cette nouvelle adresse, on la saisit dans son navigateur pour arriver à nouveau sur l'interface d'administration. On clique sur le menu "Console" et on tape les lignes de commande suivantes qui vont fixer les réglages réseau pour ce Shelly1 (il s'agit de mes réglages à moi, à vous de les adapter) :

IPAddress1 192.168.1.83
IPAddress2 192.168.1.1
IPAddress3 255.255.255.0
IPAddress4 192.168.1.1

On n'oublie pas de redémarrer en tapant (on peut aussi le faire via l'interface d'administration) :

Restart 1

Il ne reste plus qu'à se reconnecter avec son navigateur à la nouvelle adresse IP que l'on vient de fixer et de continuer le paramétrage.

Shelly1 Garage Config Modèle

B- Menu "Configuration" -> "Configuration du modèle" :

 

 

C- Menu "Configuration" -> "Configuration du module" :

Shelly1 Garage Config Module

 

 

 

 

 

 

 

D- Menu "Configuration" -> "AUTRES paramètres" :

Shelly1 Garage Config Autres

 

 

 

 

 

 

 

 

 

 

 

 Shelly1 Garage Config MQTT

 

E- Menu "Configuration" -> "Configuration MQTT" :


F- Commandes à taper dans la console de Tasmota

Maintenant tout le reste se fera via la console de Tasmota accesible via le menu principal.

  • Comme on passe par une broche serie (GPIO3), il faut désactiver les "serial logs" avec la commande :
SerialLog 0 
  • Pour éviter un déclenchement au redémarrage du module :
PowerOnState 0
SwitchRetain 1
  • Pour donner des noms explicites aux boutons de la Web UI (qui correspondent respectivement à l'état des relais 1 et 2):
WebButton1 Actionner Portail
WebButton2 État
  • Le relais 1 ne doit être actionné que brièvement pour envoyer l'impulsion qui commandera le moteur. Il doit donc agir comme un bouton poussoir pendant un temps court (ici 1,5 secondes) :
PulseTime1 15
  • L'interrupteur1 est défini comme un bouton poussoir (dans ma configuration, je ne pense pas que ça ait une importance) :
SwitchMode1 3
  • Pour régler l'heure en tenant compte des heures d'hiver et d'été :
TimeZone 99
  • Pour indiquer la localisation :
Latitude 43.xxxxxxx
Longitude 2.xxxxxxx
  • Désactive la sauvegarde de l'état des relais et de s'en servir lors d'un restart (on peut aussi taper "so"  à la place de "setoption") :
SetOption0 0
  • Pour éviter un reset si on appuie longtemps sur le bouton :
SetOption1 1
  • Pour une détection automatique du module dans Home Assistant :
SetOption19 1
  • Pour afficher dans la Web UI, l'adresse IP et le nom d'hôte :
SetOption53 1
  • Pour envoyer la commande tele/%topic%/STATE en plus de stat/%topic%/RESULT pour les commandes State, Power et n'importe quelle autre commande allumant une lumière :
SetOption59 1

Shelly1 Garage WebUI

 

G- Aspect final de la Web UI

Voici donc comment se présente l'interface du module Shelly, une fois tous les réglages effectués, quand on s'y connecte via un navigateur Internet.

On voit son nom (hostname) et son adresse IP.

On a 2 boutons correspondant aux 2 relais. Le premier bouton, comme son nom l'indique, permet d'actionner le portail. Le 2e bouton  "État" correspond au relais virtuel permettant de connaître la position du détecteur d'ouverture.
Ici le détecteur est en position ON qui correspond à la position fermée : les 2 aimants se touchent, le circuit est fermé.

 

 

V- Réglages dans Home Assistant :

Maintenant on va s'attaquer à la partie dans Home Assistant. Je ne développerai pas l'utilisation de HA mais je fournis juste mes fichiers de configuration.
Voir cette page spécifique où je donne d'autres infos sur ma configuration de Home Assistant.

Pour avoir des infos sur Home Assistant voir :

A- Fichiers de configuration yaml

On crée un nouveau fichier /config/covers.yaml et on y colle ce code :

- platform: mqtt
  name: Garage
  command_topic: "portail/cmnd/POWER1"
  payload_open: "ON"
  payload_close: "ON"
  payload_stop: "ON"
  state_topic: "portail/stat/POWER2"
  state_open: "OFF"
  state_closed: "ON"
  optimistic: false
  retain: false

- platform: template
  covers:
    garagedoor:
      friendly_name: Portail Garage
      value_template: '{{ states.cover.Garage.state == "OFF" }}'
      icon_template: '{% if states.cover.Garage.state == "OFF" %}hass:garage-open{% else %}hass:garage{% endif %}'
      open_cover:
        - condition: state
          entity_id: cover.Garage
          state: 'FERMÉ'
        - service: cover.open_cover
          entity_id: cover.Garage
      close_cover:
        - condition: state
          entity_id: cover.Garage
          state: 'OUVERT'
        - service: cover.close_cover
          entity_id: cover.Garage

Pour que ce fichier soit pris en compte dans Home Assistant, il faut rajouter cette ligne dans le fichier "configuration.yaml" :

cover: !include covers.yaml

B- Résultat

Voici donc ce qu'on peut obtenir dans Home Assistant avec tous ces réglages :

Shelly1 Garage HA fermé        Shelly1 Garage HA ouvert

On remarque qu'en fonction de l'état d'ouverture, on ne peut agir que dans un sens (ce qui correspond à la motorisation de mon portail) : si le portail est fermé, on ne peut que l'arrêter ou l'ouvrir ; par contre si le portail est ouvert, on ne peut que l'arrêter ou le fermer.

L'icône associée varie elle aussi en fonction de l'état du portail, tout comme le badge en haut avec le cercle rouge.

C- Notifications

Il est intéressant d'être notifié en cas d'ouverture du portail. Comme on peut le voir sur cette page https://www.home-assistant.io/integrations/#notifications, HA propose d'envoyer des notifications sur une pléthore de plateformes : ça va de la simple notification, à l'envoi d'un courriel, d'un SMS (avec Free par exemple), d'un message via Mastodon ou Matrix (c'est un signe qui montre là la richesse de HA par rapport à Jeedom), sans oublier évidemment les habituels GAFAM ...

Du coup, j'ai testé la notification sur Tchap qui est une instance Matrix réservée aux personnels de l'Éducation Nationale (dont je fais partie). Je me suis donc créé un salon privé auquel il n'y a que moi qui ait accès mais malgré mes recherches (format username : "@prenom.nom-ac-montpellier:agent.education.tchap.gouv.fr", ...), IMPOSSIBLE de me connecter à Tchap. Il faudrait tester avec une autre instance Matrix...
Info pour paramétrer son composant Matrix dans son fichier configuration.yaml : https://www.home-assistant.io/integrations/matrix/

Du coup, j'ai testé la notification par courriel en m'appuyant sur cette page : https://www.home-assistant.io/integrations/smtp/. Il est impératif que le serveur SMTP soit correctement paramétré sinon il n'apparaîtra pas dans la liste des services "notify" ! Vérifiez bien l'encryption "tls" ou "starttls", le n° de port, les identifiants de connexion...
Voici les lignes insérées dans le fichier /config/automations.yaml :

- id: '1596201708722'
  alias: Notif Ouverture Portail Garage
  description: Permet d'envoyer un courriel lorsque le portail s'ouvre.
  trigger:
  - device_id: bfb2323697d343f78b1bbf56e2e69469
    domain: switch
    entity_id: switch.shelly1_2_garage_ip83_position
    platform: device
    type: turned_off
  condition: []
  action:
  - data:
      message: La porte du garage vient de s'ouvrir !!
      title: '[MonHA] Portail Garage OUVERT'
    service: notify.courriel
  mode: single 

VI- Conclusion :

Cette nouvelle installation m'a permis d'approfondir ma connaissance du firmware Tasmota qui est vraiment très abouti avec un nombre de fonctionnalités impressionant.

Ça a aussi été l'occasion de découvrir Home Assistant qui est vraiment un outil très intéressant mais qui demande de taper des lignes de code. Par contre, il y a beaucoup d'informations sur le net qui permettent de s'en dépatouiller. C'est désormais ma solution domotique à la place de Jeedom qui avec son système de plugins payants de niveau et suivi inégaux est de moins en moins intéressant.

Liens utiles :