Creation entity switch MQTT

CC les pro,

j’ai un log mqtt

 "name": "Garage Door Relay",
 "state_topic": "garageporte/switch/garage_door_relay/state",
 "command_topic": "garageporte/switch/garage_door_relay/command",
 "availability_topic": "garageporte/status",
 "unique_id": "ESPswitchgarage_door_relay",
 "device": {
   "identifiers": "807d3a3e1f1a",
   "name": "garageporte",
   "sw_version": "esphome v1.15.3 Nov 16 2020, 09:59:35",
   "model": "PLATFORMIO_NODEMCUV2",
   "manufacturer": "espressif"
 }
}```

et j'aimerai integrer le switch a HA. j'ai mis ca 

```switch:

##### GARAGE ######

 - platform: mqtt
   name: "porte Garage"
   state_topic: "garageporte/switch/garage_door_relay/state"
   command_topic: "garageporte/switch/garage_door_relay/command"  ```
j'ai bien l'entity mais il ne reagi pas sur mon relay

Hye, tu peux faire voir ton fichier conf de Esphome.
J’ai fait ça pour mon portail et le switch et dans le conf.

voila mon fichier.


ota:
mqtt:
  broker: 192.168.1.20
  port: 1883
  username: !secret mqtt_user
  password: !secret mqtt_password

switch:
  - platform: gpio
    pin: GPIO5 # D1
    id: relay
  - platform: template
    name: "Garage Door Relay"
    icon: "mdi:gate"
    turn_on_action:
    - switch.turn_on: relay
    - delay: 500ms
    - switch.turn_off: relay
    internal: false
    
  - platform: restart
    name: "Porte Garage Restart"
    
#binary_sensor:
 # - platform: gpio
#    pin: GPIO13 # D7
 #   #pin: GPIO5
 #   name: "Garage Contact Sensor"
 #   id: contact_sensor
 #   internal: true
  #  filters:
   #  - invert:

cover:
  - platform: template
    device_class: garage
    name: "Garage Door"
    id: template_cov
    lambda: |-
      if (id(contact_sensor_open).state) {
        return COVER_OPEN;
      } else {
      if (id(contact_sensor_close).state)
        return COVER_CLOSED;
      }
      
    open_action:
      - switch.turn_on: relay
      - delay: 0.5s
      - switch.turn_off: relay
    close_action:
      - switch.turn_on: relay
      - delay: 0.5s
      - switch.turn_off: relay
      

binary_sensor:
  - platform: gpio
    pin:
      number: D7
      mode: INPUT_PULLUP
      
      inverted: true
    id: "contact_sensor_close"
    name: "Portail fermé"
    

  - platform: gpio
    pin:
      number: D6
      mode: INPUT_PULLUP
      
      inverted: true
    id: "contact_sensor_open"
    name: "Portail ouvert"
    


      
# Send IP Address to HA
text_sensor:
  - platform: wifi_info
    ip_address:
      name: $friendly_name IP Address
      

  - platform: version
    name: "porte garage Version"
    hide_timestamp: True

# Send WiFi signal strength & uptime to HA
sensor:
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    update_interval: 60s

J’ai 2 capteur marches a sec

Si je comprends, tu as un actionneur (Contact sec) pour déclencher ton automatisme de porte sur le D5
Tu as un capteur de porte ouverte sur D6
un autre capteur de porte fermée sur D7
Tout ça sur un NodMcu ?
Tu confirmes ?

Oui c’est exacte. avoir 2 contact c’est plus sur pour la position de la porte

Tu utilises une impulsion via un relais pour faire le contact sec sur ton automatisme.
Le problème est que ton cover ne peux avoir que 2 états (open ,closed)
impossible de savoir si il est en ouverture ou en fermeture étant donné que tu peux le stopper pendant un mouvement et l’impulsion suivante va inversé le mouvement.
Un seul contact est suffisant (celui pour valider la bonne fermeture) mais tu peux garder le second qui n’aura pas d’utilité directe. Tu pourras l’utiliser comme sensor validant l’ouverture du portail.
Je te mets ma config qui fonctionne avec seulement le contact validant la fermeture du portail:

substitutions:
  devicename: portail

esphome:
  name: $devicename
  platform: ESP8266
  board: nodemcuv2
  
wifi:
  networks:
  - ssid:  !secret ssid
    password: !secret Wifi_password
  - ssid: openwrt
    password: !secret Wifi_password

  ap:
    ssid: "Portail Fallback Hotspot"
    password: !secret Wifi_password

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

mqtt:
  broker: 192.168.10.125
  username: !secret usermqtt
  password: !secret pswmqtt

binary_sensor:
  - platform: gpio
    pin:
      number: D7
      mode: INPUT_PULLUP
      inverted: True
    id: "portail_ferme"
    name: "Portail fermé"
    filters:
      - delayed_on_off: 1000ms
      

switch:
  - platform: gpio
    pin: D5
    inverted: false
    name: "Portail"
    id: relais_portail
    internal: True


cover:
  - platform: template
    name: "Portail"
    lambda: |-
      if (id(portail_ferme).state) {
        return COVER_CLOSED;
      } else {
        return COVER_OPEN;
      }
    open_action:
      then:
       - if:
            condition:
              # Le portail est fermé
              binary_sensor.is_on: portail_ferme
            then:
              # j'ouvre le portail
              - switch.turn_on: relais_portail
              - delay: 500ms
              - switch.turn_off: relais_portail
              
    close_action:
      then:
        - if:
            condition:
              # Le portail n'est pas fermé
              binary_sensor.is_off: portail_ferme
            then:
              # je ferme le portail
              - switch.turn_on: relais_portail
              - delay: 500ms
              - switch.turn_off: relais_portail
    stop_action:
      - switch.turn_on: relais_portail
      - delay: 500ms
      - switch.turn_off: relais_portail
    optimistic: true
    
    


Il te suffira d’ajouter une carte Bouton sur ton lovelace HA de ton entité cover.portail.
image
Rien à faire comme config sur MQTT, tout est intégré directement.

Merci pour les info je vais testé ca