Domotique

[Tasmota] Piloter une porte de garage avec un Shelly 1

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.

SerialLog 0 
PowerOnState 0
SwitchRetain 1
WebButton1 Actionner Portail
WebButton2 État
PulseTime1 15
SwitchMode1 3
TimeZone 99
Latitude 43.xxxxxxx
Longitude 2.xxxxxxx
SetOption0 0
SetOption1 1
SetOption19 1
SetOption53 1
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.

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 :


 



I