Je domotise mon portail

Mes objectifs 

  • Avoir un bouton sur le dashboard qui permette d’actionner le portail (Ordre=On + pause + Off)
  • Avoir le retour de l’√©tat r√©el du portail (ouvert / ferm√©)
  • Lier HA et Alexa pour pouvoir dire “Alexa ouvre le portail” par exemple

Contexte

J’ai un portail Came battant, Carte ZL180.

Présentation de la carte de commande

Tout va se passer au niveau des borniers de la carte de commande en bas √† droite, voici l’identification des bornes

Comment ouvrir/fermer le portail ?

C’est un contact sec qui peut √™tre symbolis√© par cette s√©quence qui va ouvrir (ou fermer) le portail :

  • ON sur Borne 2 – Borne 7
  • pause 500ms
  • OFF sur Borne 2 – Borne 7

Ces éléments sont documentés page 8 de la notice :

Comment savoir si le portail est ouvert ou fermé ?

Je n’ai pas trouv√© de contact sec accessible qui donne cette information, j’ai utilis√© un dispositif de signalisation “portail ouvert” qui sous potentiel 24v entre les bornes 5 et 10 , cette information est document√© page 6 de la notice :

Pr√©f√©rant travailler avec des contacts sec on/off sans potentiel, c’est √† dire des circuits ouverts ou ferm√©s, j’ai transform√© cette information 0/24v en on/off.

 

Pour r√©aliser ce montage, rien de plus simple, 4 c√Ębles et un relais 24V. J’avais d√©ja un relais, j’ai donc utilis√© celui-l√†, c’est un IEC255 qui ressemble √† cela :

J’ai assez de place dans le boitier platine du Came pour y placer ce relais en haut √† droite.

Voici le c√Ęblage avec le support :

Quel équipement domotique ?

A ce stade, il faut choisir quel √©quipement domotique va envoyer √† Home Assistant l’information de portail ouvert / portail ferm√© et quel √©quipement est capable de commander un contact sec qui va d√©clencher l’ouverture. Id√©alement, le m√™me √©quipement pour faire les deux.

J’ai fait plusieurs essais, dans un premier temps avec un d√©tecteur porte/fen√™tre pour envoyer le portail ouvert/ferm√©, en Zigbee mais je pense que la proximit√© du transfo posait souci, je ne sais pas, ce n’√©tait pas convainquant. Puis cet √©quipement ne permettait pas de commander un relais.

J’aurais v√©ritablement pr√©f√©r√© utiliser le Zigbee car pour moi le Wifi n’est pas un protocole domotique.

Finalement, voici mon choix, très simple : Un Sonoff Basic 

Cet √©quipement qui valait moins de 4‚ā¨ il n’y a pas longtemps coute entre 5 et 6‚ā¨ au moment o√Ļ j’√©cris ceci sur AliExpress et dans les 14 ‚ā¨ sur Amazon.

Attention, j’ai d√Ľ un peu bricoler, souder mais pour ce prix, cela vaut le coup (et le co√Ľt).

Préparation du Sonoff Basic

Modifier le Sonoff Basic pour que la sortie soit un contact sec

Le Sonoff Basic, R2 dans mon cas est un équipement qui bascule un relais quand on lui envoie une commande On ou Off sur GPIO12.

esp1

Le souci dans cette configuration c’est que j’envoie le potentiel d’entr√©e donc 220V sur la sortie, entre les bornes de sortie, on a donc soit 0v soit 220v. Ce n’est pas ce dont j’ai besoin, j’ai juste besoin de fermer un circuit (court-circuit) entre les bornes de sortie. J’ai donc besoin de ce type de sch√©ma :

esp2

Pour r√©aliser cette modification, j’ai r√©alis√© ce retex :

Relier les équipements

(cela peut √™tre fait apr√®s la configuration logiciel, c’est au choix)

Voici le schéma complet 

Je n’ai pas oubli√© d’alimenter en 220v le Sonoff sur le bornier du bas et j’ai bien mis le relais sur son support noir.

Flasher le Sonoff Basic et lui installer ESP Home

Intégrer le Sonoff Basic dans Home Assistant

Une fois flashé dans ESP Home, le nouvel équipement est reconnu dans Home Assistant dans les intégrations

Je peux me lancer dans la configuration des entités.

Récupérer les informations sur esphome.io

Il est toujours mieux de récupérer à la source les informations, à défaut, beaucoup de sites, tutos ou forums peuvent donner les éléments de configuration nécessaires.

Pour mon Sonoff Basic, je vais sur 

Evidemment, je ne suis pas la doc, je change la led pour pouvoir la commander et je configure Rx et Tx pour avoir deux input de plus :

esphome:
  name: esphome-web-a8d117
  friendly_name: Portail

esp8266:
  board: esp8285

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xx"

ota:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Bouton"
  - platform: gpio
    pin:
      number: GPIO1
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Tx"
  - platform: gpio
    pin:
      number: GPIO3
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Rx"

switch:
  - platform: gpio
    name: "Relais"
    pin: GPIO12
    id: relay
    on_turn_on:
    - delay: 0.5s
    - switch.turn_off: relay
  - platform: gpio
    name: "Led"
    pin: GPIO13
    id: led

wifi:
  ssid: xxx
  password: xxx

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: xxx
    password: xxx

captive_portal:
    

Je garde le code ci-dessus comme r√©f√©rence pour d’autres √©quipements mais finalement pour ma domotisation de portail, je simplifie encore le code en supprimant tout ce qui n’est pas utile pour le projet :

esphome:
  name: esphome-web-a8d117
  friendly_name: Portail

esp8266:
  board: esp8285

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xx/xx="

ota:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO1
      mode:
        input: true
        pullup: true
      inverted: true
    name: "Tx"

switch:
  - platform: gpio
    name: "Relais"
    pin: GPIO12
    id: relay
    on_turn_on:
    - delay: 0.5s
    - switch.turn_off: relay

wifi:
  ssid: xx
  password: xx

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: esp_portail
    password: xx

Installation du code sur le Sonoff

Ensuite je sauvegarde puis j’installe.

Une fois l’installation faite, le module se relance, il faut √™tre un peu patient.

Nota : J’ai eu quelques soucis car les variables !secret n’√©taient pas configur√©es chez moi, j’ai mis en clair et cela a fonctionn√©. Les variables des secrets se configurent en haut √† droite de l’interface ESP Home.

  ssid: !secret wifi_ssid
  password: !secret wifi_password

R√©sultat de l’int√©gration

Comme tout s’est bien pass√©, je me retrouve avec plusieurs entit√©s sur son ESP nouvellement cr√©√©.

Configuration des Entités sur HA

Configuration du capteur Portail

J’utilise l’entr√©e Tx (GPIO01) pour d√©tecter le contact sec du portail.


Je renomme ce capteur en “Portail” et je lui affecte “Ouverture” pour avoir les √©tats¬† Ouvert / Ferm√©

Je change son id qui sera : binary_sensor.portail_ouvert_ferme

Je désactive les deux autres capteurs (Bouton et Rx) qui ne me sont pas utiles.

Configuration du contr√īle Commande du Portail

Il s’agit du switch relais que j’ai renomm√© Commande du Portail avec id: switch.portail_relais

Configuration du Cover Portail

Il est n√©cessaire d’avoir un cover pour permettre 2 choses :

  • D’avoir l’√©tat qui remonte du capteur Portail (binary_sensor.portail_ouvert_ferme) cela alors que les commandes sont √† passer au contr√īle Commande du Portail (switch.portail_relais)
  • De g√©rer le turn_off qui sera en r√©alit√© un turn_on

Le code du cover placé dans covers.yaml est le suivant :

- platform: template
  covers:
    portail:
      device_class: window
      friendly_name: "Portail"
      unique_id: cover.portail
      value_template: "{{ is_state('binary_sensor.portail_ouvert_ferme', 'on') }}"
      open_cover:
        service: switch.turn_on
        target:
            entity_id: switch.portail_relais
      close_cover:
        service: switch.turn_on
        target:
            entity_id: switch.portail_relais
      icon_template: >-
        {% if is_state('binary_sensor.portail_ouvert_ferme', 'on') %}
          mdi:gate-open
        {% else %}
          mdi:gate
        {% endif %}

A noter que dans ce code, je g√®re l’icone √† utiliser. La couleur sera g√©r√©e dans la carte bouton au moment de l’affichage du bouton.

J’ai utilis√© la device_class: window car c’est la plus proche d’un portail (ouvert ou ferm√©) mais les autres class rendent obligatoire un code √† 4 chiffres en commande vocale ce que je ne souhaite pas si je veux demander √† Alexa d’ouvrir le portail.

Cr√©ation d’une carte bouton

type: custom:button-card
show_name: false
tap_action:
  action: toggle
entity: cover.portail
state:
  - value: close
    color: gray
  - value: open
    color: red

Lier HA et Alexa pour commander à la voix

Dire “Alexa ouvre le portail” est quand m√™me le graal de tout cela.

Il me reste a établir le lien.

Pour cela je vais dans Paramètres/ Assistants vocaux

En bas à gauche, je clique sur x entité(s) exposée(s)

et je vis cherche mon cover.portail

C’est tout !

Bonus : Ping pour v√©rifier que l’√©quipement est en ligne

J’ai une confiance toute relative aux √©quipements en wifi (contrairement au Zigbee) et je me rassure en v√©rifiant de temps en temps leur connectivit√©.

Pour cela, rien de plus simple, un petit ping toutes les 5min via un binary_sensor qui me donner l’information sur mon Dashboard, je place cette config dans mon fichier binary_sensor.yaml

- platform: ping
  host: !secret ip_portail
  name: ping_portail

Evidemment, il faut bien configurer !secret ou remplacer par l’IP en brut.

La personnalisation de l’icone est abord√© sur un autre retex:

Une question ? une remarque ? un complément ?

Utilisez cette discussion pour évoquer ce retex :