Node-RED et ESP32

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:

    • delayed_on: 10ms
  • platform: gpio
    pin:
    number: 2
    mode:
    input: true
    pullup: true
    name: « Pin 2 »
    device_class: window
    filters:

    • delayed_on: 10ms
  • platform: gpio
    pin:
    number: 4
    mode:
    input: true
    pullup: true
    name: « Pin 4 »
    device_class: window
    filters:

    • delayed_on: 10ms

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:

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.

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.