Tioche
Novembre 29, 2022, 9:18
1
Bonjour.
J’ai récemment acheté des ESP32 que j’ai configurés avec ESPHome. J’ai vu qu’il est possible d’utiliser le même esp pour faire des entrées et des sorties. Voici un extrait de mon fichier YAML :
binary_sensor:
platform: gpio
pin:
number: 0
mode:
input: true
pullup: true
name: « Pin 0 »
device_class: window
filters:
platform: gpio
pin:
number: 2
mode:
input: true
pullup: true
name: « Pin 2 »
device_class: window
filters:
platform: gpio
pin:
number: 4
mode:
input: true
pullup: true
name: « Pin 4 »
device_class: window
filters:
switch:
platform: gpio
pin: 5
name: « Pin 5 »
platform: gpio
pin: 16
name: « Pin 16 »
platform: gpio
pin: 17
name: « Pin 17 »
J’ai donc 3 entrées avec pull-up et anti-rebonds et 3 sorties.
Je vois ces entrées et ces sorties sur HA. Dans Node-RED, j’ai réussi à lancer des actions à partir des changements d’état des entrées, mais je ne trouve pas comment commander les sorties.
Pouvez-vous me venir en aide ?
Merci.
Salut,
Juste pour la lisibilité, quand tu copies du script, c’est mieux d’utiliser l’option texte préformaté:
Maintenant pour ta question, normalement, esphome aura ajouté des entités de type « switch » dans HA. Ceux-ci peuvent être commandés depuis un carte d’entité ou de bouton pour le dashboard de HA.
Depuis NodeRed tu peux en modifier l’état en utilisant des noeuds de type « Call Service ». Et dedans tu peux sélection les services existants pour le type d’entité « switch ». Tu peux faire un « turn_on », « turn_off » ou « toggle ».
Exemple:
Tioche
Novembre 30, 2022, 5:44
3
Bonjour.
Bien pris en compte la remarque pour la saisie de code.
J’ai testé ce que tu m’as indiqué, j’ai saisi tel quel dans Node-RED, mais bizarrement, les 3 sorties sont modifiées quand je joue sur ma broche d’entrée et non seulement la broche 16.
Salut, normal, il ne faut renseigner que l’Entity.
Si tu mets esp-test dans device, c’est tout les switch de l’esp qui vont changer.
Tioche
Novembre 30, 2022, 6:59
5
Ok, merci beaucoup, je testerai ça en rentrant du boulot.
Bonne journée à tous.
Bonsoir à tous,
Je rencontre un problème similaire il me semble sans pour autant trouver la solution.
J’utilise un ESP32 pour envoyer des commandes IR au système d’éclairage de mon aquarium; coté HA ca fonctionne j’ai bien mes boutons « On », « Off », « Cyan », « Green » etc…
esphome:
name: "aquarium"
platform: ESP8266
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "WFEPquKZyUNtpeQsd2fK8fOimBF32hhVmQyLkMPmt/g="
services:
- service: control_servo
variables:
level: float
then:
- servo.write:
id: food_srv
level: !lambda 'return level / 100.0;'
ota:
password: "33357c1fc3318812d9709b07a7668806"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Aquarium-Ir Fallback Hotspot"
password: "ECbN4q59TTPc"
captive_portal:
output:
- platform: esp8266_pwm
id: pwm_output
pin: 05
frequency: 50 Hz
remote_transmitter:
pin: 04
carrier_duty_percent: 50%
servo:
- id: food_srv
output: pwm_output
auto_detach_time: 3s
button:
- platform: template
name: "On"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8085
- platform: template
name: "Off"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8084
- platform: template
name: "Red"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8089
- platform: template
name: "Green"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8088
- platform: template
name: "Blue"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x808A
- platform: template
name: "White"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x808B
- platform: template
name: "Brown"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x808D
- platform: template
name: "Dark Green"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x738C
- platform: template
name: "Light Blue"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x718E
- platform: template
name: "Light Red"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8095
- platform: template
name: "Light Green"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8094
- platform: template
name: "Purple"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8096
- platform: template
name: "Orange"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8099
- platform: template
name: "Cyan"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8098
- platform: template
name: "Light Purple"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x809A
- platform: template
name: "Yellow"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8091
- platform: template
name: "Dark Cyan"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8090
- platform: template
name: "Pink"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8092
- platform: template
name: "Light 25%"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8093
- platform: template
name: "Light 50%"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x809B
- platform: template
name: "Light 75%"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8097
- platform: template
name: "Light 100%"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x808F
- platform: template
name: "Sinus"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8087
- platform: template
name: "Gears"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x8086
- platform: template
name: "8 hours"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x809D
- platform: template
name: "10 hours"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x809C
- platform: template
name: "12 hours"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x809E
- platform: template
name: "14 hours"
on_press:
- remote_transmitter.transmit_pioneer:
rc_code_1: 0x809F
Quand je presse un bouton sur mon interface HA, la commande correspondante est envoyée :
En revanche coté NodeRed quand je call une « Entity » comme par exemple « On » il me balance toute la série des commandes…
En lisant ce post, j’ai enlevé les infos de « Device » comme @fredarro le suggère mais ca continu de lancer l’ensemble des commandes.
Une idée ?
Merci par avance.
bonjour,
si tu ne veut allumer qu’un seul bouton, il me semble qu’il est logique de donner le bouton ou l’action doit etre faite.
si le cyan, c’est bouton.cyan, il faut dans nodered mettre l’entité bouton.cyan… sinon, il ne sait pas quoi allumer.
Merci pour ton aide.
C’est bien le cas, il le nom « On » est affiché mais c’est bien l’Entity « button.on » qui est configurée.