Actionner un relai depuis le tableau de bord

Je bute devant une difficulté, je voudrais avoir un bouton sur une carte du tableau de bord qui actionne un relai en on pendant 1s et ensuite revient en off.
(Ceci actionne la mise en route ou l’extinction de mon alarme, ainsi que le general de mes volets)
Pour cela j’utilise un nodemcu que j’ai flash ainsi :


esphome:
  name: massanes_volets
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: !secret ssid_ext
  password: !secret password_ssid_ext


  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Massanes Volets Fallback Hotspot"
    password: "GqgULdftKCyhj"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

        
               
ota:

sensor:
  - platform: dht
    pin: GPIO14
    model: DHT22
    temperature:
      name: "Temp Massanes Volets"
    humidity:
      name: "Humid Massanes Volets"
    update_interval: 60s
    
  - platform: wifi_signal
    name: "WiFi Massanes Volets"
    update_interval: 60s
    
switch:                   # 0 2  12 13 15 10 9 3 1
  - platform: gpio     
    name: "Volets Up"
    pin: GPIO0     #  D0.    Volets UP
  - platform: gpio
    name: "Volets Down"
    pin: GPIO2  #  D1      Volets Down
  - platform: gpio
    name: "Volets Stop"
    pin: GPIO12    #  D2     Volets Stop
  - platform: gpio
    name: "Alarme On"
    pin: GPIO13    #  D3     Alarme ON
  - platform: gpio
    name: "Alarme OFF"
    pin: GPIO15     #  D4     Alarme OFF
  - platform: gpio
    name: "Relai 6 "
    pin: GPIO10    #  D6
  - platform: gpio
    name: "Relai 7"
    pin: GPIO9     #  D7
  - platform: gpio
    name: "Relai 8"
    pin: GPIO3    #  D8
 
    
    
    
output:                     # 0 2  12 13 15 10 9 3 1
  - platform: gpio
    pin: GPIO0
    id: GPIO0
  - platform: gpio
    pin: GPIO2
    id: GPIO2
  - platform: gpio
    pin: GPIO12
    id: GPIO12
  - platform: gpio
    pin: GPIO13
    id: GPIO13
  - platform: gpio
    pin: GPIO15
    id: GPIO15
  - platform: gpio
    pin: GPIO10
    id: GPIO10
  - platform: gpio
    pin: GPIO9
    id: GPIO9
  - platform: gpio
    pin: GPIO3
    id: GPIO3


J’ai crée également un service de ce type dans mon configuration.yaml :


api:
  services:
    - service: allumer_alarme
      then:
        - switch.turn_on: alarme_on
        - delay: 1s
        - switch.turn_off: alarme_on

    - service: eteindre_alarme
      then:
        - switch.turn_on: alarme_off
        - delay: 1s
        - switch.turn_off: alarme_off

Mais je ne sais pas comment procéder pour executer le service depuis le tableau de bord ?!?

Je vous avoue que je ne sais pas si je suis sur la bonne voie :sweat:
Pouvez vous m’aiguiller ?

Peux-tu détailler ton installation et expliquer ce que tu souhaites faire?

System Health

version 2021.1.5
installation_type Home Assistant OS
dev false
hassio true
docker true
virtualenv false
python_version 3.8.7
os_name Linux
os_version 5.4.79-v7
arch armv7l
timezone UTC
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4992
Installed Version 1.10.1
Stage running
Available Repositories 709
Installed Repositories 8
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Hass.io
host_os Home Assistant OS 5.10
update_channel stable
supervisor_version 2021.01.7
docker_version 19.03.13
disk_total 57.8 GB
disk_used 6.2 GB
healthy true
supported true
board rpi3
supervisor_api ok
version_api ok
installed_addons File editor (5.2.0), Duck DNS (1.12.4), Samba share (9.3.0), Terminal & SSH (9.0.0), ESPHome (1.16.0), motionEye (0.11.0), Node-RED (8.1.0)
Lovelace
dashboards 1
mode storage
views 10
resources 2
je veux commander mon alarme sur le tableau de bord celle-ci se met en route par une pression d'une seconde sur la télécommande , la pression est remplacé par un contact sec . Je veux simuler ce contact d'une seconde par en actionnant un relai a partir du tableau de bord. Ce dispositif fonctionne actuellement sur myDevice ce cayenne mais je veux le basculer sur HA

Idem pour des volets roulants Somfy commandés par des CENTRALYS IB

Je te partage la config de commande de mon portail.
Il actionne un relais pour faire contact sec.
Ma config prend en compte un contact validant la bonne fermeture du portail.
Je te laisse adapter cette config pour ton utilisation

substitutions:
  devicename: portail

esphome:
  name: $devicename
  platform: ESP8266
  board: nodemcuv2
  
wifi:
  ssid: !secret Wifi_ssid
  password: !secret Wifi_password


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

captive_portal:

# Enable logging
logger:

ota:



sensor:
  - platform: wifi_signal
    id: wifi_portail
    name: "WiFi Portail"
    update_interval: 60s

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

switch:
  - platform: gpio
    pin: D8
    inverted: false
    name: "Portail"
    id: relais_portail

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: 2s
              - switch.turn_off: relais_portail
              
    close_action:
      then:
        - if:
            condition:
              # Le portail est ouvert
              binary_sensor.is_off: portail_ferme
            then:
              # je ferme le portail
              - switch.turn_on: relais_portail
              - delay: 2s
              - switch.turn_off: relais_portail
    stop_action:
      - switch.turn_on: relais_portail
      - delay: 500ms
      - switch.turn_off: relais_portail
    
# Example configuration entry
text_sensor:
  - platform: wifi_info
    ip_address:
      name: $devicename IP
    ssid:
      name: $devicename SSID
    bssid:
      name: $devicename BSSID

Merci pour votre aide, mais je patine ! :sweat:
Il n’y a que la flèche vers le haut du cover qui fonctionne
ci-joint mon essai de code …

esphome:
  name: test_alarm
  platform: ESP8266
  board: esp01_1m
  
wifi:
  ssid: !secret ssid
  password: !secret password_ssid

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Test Alarm Fallback Hotspot"
    password: "a5L3FghTooSW"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

sensor:
  - platform: wifi_signal
    id: wifi_portail
    name: "WiFi Portail"
    update_interval: 60s

binary_sensor:
  - platform: gpio
    pin: GPIO5
    id: "alarm_off"
    name: "Alarm Off"
    filters:
      - delayed_on_off: 2000ms
  - platform: gpio
    pin: GPIO2
    id: "alarm_on"
    name: "Alarm On"
    filters:
      - delayed_on_off: 2000ms
    

switch:
  - platform: gpio
    pin: GPIO4
    inverted: false
    name: "Alarm off"
    id: relais_alarm_off
    
  - platform: gpio
    pin: GPIO0
    inverted: false
    name: "Alarm on"
    id: relais_alarm_on

cover:
  - platform: template
    name: "Alarme"
    lambda: |-
      if (id(alarm_on).state) {
        return COVER_CLOSED;
      } else {
        return COVER_OPEN;
      }  
    open_action:
      then:
        - if:
            condition:
              # L'alarme est off
              binary_sensor.is_on: alarm_off
            then:
      # actionne le relais alarm on
              - switch.turn_on: relais_alarm_off
              - delay: 2s
              - switch.turn_off: relais_alarm_off
              
    close_action:
      then:
        - if:
            condition:
              # L'alarme est on
              binary_sensor.is_on: alarm_on
            then:
                 # actionne le relais alarm on
              - switch.turn_on: relais_alarm_on
              - delay: 2s
              - switch.turn_off: relais_alarm_on
 
    stop_action:
      then:
        - switch.turn_on: relais_alarm_on
        - delay: 500ms
        - switch.turn_off: relais_alarm_off
    

On va partir de zéro et commencer par dire qu’il te faut:

  • Un binary_sensor pour la commande de ton relay
  • un switch qui sera ton relay.

Pour chaque commande (alarme ON et alarme OFF)

switch:
  - platform: gpio 
    pin: GPIO3
    name: "SW Alarme ON"
    id: sw_alarme_on
  - platform: gpio
    pin: GPIO4
    name: "SW Alarme OFF"
    id: sw_alarme_off

binary_sensor:
  - platform: gpio
    pin: GPIO5
    name: "Alarme ON"
    on_press:
      then:
        - switch.turn_on: sw_alarme_on
        - delay: 1s
        - switch.turn_off: sw_alarme_on

  - platform: gpio
    pin: GPIO6
    name: "Alarme OFF"
    on_press:
      then:
        - switch.turn_on: sw_alarme_off
        - delay: 1s
        - switch.turn_off: sw_alarme_off


Essaye avec ca !

OK Merci, j’ai changé les GPIO car cela ne convenait pas

esphome:
  name: test_alarm
  platform: ESP8266
  board: esp01_1m
  
wifi:
  ssid: !secret ssid
  password: !secret password_ssid

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Test Alarm Fallback Hotspot"
    password: !secret password_ssid

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

sensor:
  - platform: wifi_signal
    id: wifi_portail
    name: "WiFi Portail"
    update_interval: 60s
switch:
  - platform: gpio 
    pin: GPIO5
    name: "SW Alarme ON"
    id: sw_alarme_on
  - platform: gpio
    pin: GPIO4
    name: "SW Alarme OFF"
    id: sw_alarme_off

binary_sensor:
  - platform: gpio
    pin: GPIO0
    name: "Alarme ON"
    on_press:
      then:
        - switch.turn_on: sw_alarme_on
        - delay: 1s
        - switch.turn_off: sw_alarme_on

  - platform: gpio
    pin: GPIO2
    name: "Alarme OFF"
    on_press:
      then:
        - switch.turn_on: sw_alarme_off
        - delay: 1s
        - switch.turn_off: sw_alarme_off



et j’ai ce cadre .
Je suppose qu’il faut rajouter le cover
:thinking:

Vas-y, à toi l’honneur, car je ne sais pas ce que tu veux faire comme action sur tes volets.

Je veux pouvoir actionner Alarme On et Alarme Off pour actionner le relai On pendant 1s ou le e relai off pendant 1s.
ce qui actionne la mise en route de l’alarme ou son extinction.

Donc pas besoin d’ajouter un cover sous EspHome.
Pourquoi avoir mentionné les volets dans le premier post ?

Les volets c’est le même principe avec 3 relais
Un pour déclencher la commande monter
Un pour déclencher la commande descendre
Un pour déclencher la commande stop
avec Appui prolongé 1s pour 1 secteur
et Appui court 2s pour la totalité des volets

Comment faire pour déclencher l’action

on_press:
      then:
        - switch.turn_on: sw_alarme_off
        - delay: 1s
        - switch.turn_off: sw_alarme_off

`avec un simple bouton sur le tableau de bord ?
:face_with_head_bandage:

Avec la carte Bouton !

OK mais cela ne fonctionne pas, je dois avoir une erreur quelque part :

Mon Tableau


sensor:
  - platform: wifi_signal
    id: wifi_Alarm1
    name: "WiFi Alarm1"
    update_interval: 60s
switch:
  - platform: gpio 
    pin: GPIO5
    name: "SW Alarme1 ON"
    id: sw_alarme1_on
  - platform: gpio
    pin: GPIO4
    name: "SW Alarme1 OFF"
    id: sw_alarme1_off

binary_sensor:
  - platform: gpio
    pin: GPIO0
    id: alarme1_on
    name: "Alarme1 ON"
    on_press:
      then:
        - switch.turn_on: sw_alarme1_on
        - delay: 1s
        - switch.turn_off: sw_alarme1_on

  - platform: gpio
    pin: GPIO2
    name: "Alarme1 OFF"
    id: alarme1_off
    on_press:
      then:
        - switch.turn_on: sw_alarme1_off
        - delay: 1s
        - switch.turn_off: sw_alarme1_off


Message d’échec et pas de reaction des relais ?