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
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 !
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
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 ?
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 ?