Report d'état d'une entité sur un ESP8266 .. !?

Bonjour,

Mon problème

Je cherche à allumer la led interne de mon esp8266 selon l’état d’un binary sensor (binary_sensor.retour) présent dans home assistant.
ci dessous une partie du code transféré dans mon esp8266 avec ESPHOME:

# Configuration de la LED
output:
  - platform: gpio
    pin: GPIO02
    id: internal_led
    inverted: True

light:
  - platform: binary
    name: "LED ESP8266"
    output: internal_led
    id: light_led

binary_sensor:
  - platform: homeassistant
    entity_id: binary_sensor.retour
    name: "Retour"
    on_press: 
      then:
        - if: 
            condition: 
              and:
                - light.is_on: light_led
            then: 
              - light.turn_off: light_led
            else: 
              - light.turn_on: light_led

Toutefois, la LED ne s’allume pas…

Ma configuration


System Information

version core-2025.1.1
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.13.1
os_name Linux
os_version 6.1.0-12-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 5000
Installed Version 2.0.2
Stage running
Available Repositories 1497
Downloaded Repositories 1
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 12 (bookworm)
update_channel stable
supervisor_version supervisor-2024.12.3
agent_version 1.4.1
docker_version 24.0.6
disk_total 77.2 GB
disk_used 18.2 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization vmware
supervisor_api ok
version_api ok
installed_addons ESPHome Device Builder (2024.12.2), Advanced SSH & Web Terminal (20.0.0), File editor (5.8.0), Grafana (10.2.2), InfluxDB (5.0.1), Mosquitto broker (6.4.1), Samba share (12.3.2), MQTT Explorer (browser-1.0.3), SQLite Web (4.3.0)
Dashboards
dashboards 2
resources 5
views 8
mode storage
Recorder
oldest_recorder_run 31 décembre 2024 à 06:25
current_recorder_run 9 janvier 2025 à 09:23
estimated_db_size 36.45 MiB
database_engine sqlite
database_version 3.47.1
___

Gemeni me dit:

binary_sensor:
  - platform: homeassistant
    entity_id: binary_sensor.retour
    name: "Retour"
    on_message:
      then:
        - if:
            condition:
              template: "{{ is_state('light.light_led', 'on') }}" 
            then:
              - light.turn_off: light_led
            else:
              - light.turn_on: light_led 

Je pense qu’il a inversé le tun_off et le turn_on et je suis pas sûr que ça fonctionne mais ça coute pas grand chose d’essayer :smiley:

J’ai mon ESPHome qui tourne sur autre chose, j’ai une entité pour switcher mon eink entre noir sur blanc et blanc sur noir, je pourrai regarder plus tard.

Bonsoir,
J’ai un cas fonctionnel un peu similaire si ça peut aider, sur un ESP 32 qui a un capteur de température AHT10:

switch:
  - platform: gpio
    name: "LedBleu2"
    id: ledbleu2
    pin: 2
  - platform: gpio
    name: "LEDIO5"
    pin: 5
    id: ledio5
interval:
  - interval: 10s
    then:
      if:
        condition:
          wifi.connected:
        then:
          - switch.turn_on: ledio5
        else:
          - switch.turn_off: ledio5
sensor:
  - platform: aht10
    temperature:
      name: "PSalon Temperature"
      accuracy_decimals: 1
      on_value_range:
      - above: 20
        then:
          - switch.turn_on: ledbleu2
      - below: 18 
        then:
          - switch.turn_off: ledbleu2

Bob

Merci, BOB
Dans ton cas l’information n’est pas récupérée de HA , non ?, elle est déjà présente dans ton esp32 , c’est bien cela ?
@+

En effet, sinon il faut l’importer.


Et tu utilises l’id.
Désolé, sur tablette je ne peux sélectionner le code.
Bob

je me réponds tout seul …

# Capteur Home Assistant pour surveiller l'état de l'entité
binary_sensor:
  - platform: homeassistant
    id: etat_scie
    entity_id: binary_sensor.esp_scieth_etat_scie_th
    name: "Etat de la Scie"

# Sortie PWM pour contrôler la LED
output:
  - platform: esp8266_pwm
    pin: GPIO02
    id: pwm_led_output

# Configuration de la lumière
light:
  - platform: monochromatic
    name: "LED ESP8266"
    output: pwm_led_output
    id: gpio_output

# Interrupteur basé sur l'état du capteur Home Assistant
switch:
  - platform: template
    name: "Contrôle par Scie"
    lambda: |-
      if (id(etat_scie).state) {  // 'true' pour on, 'false' pour off
        id(gpio_output).turn_on();
        return true;
      } else {
        id(gpio_output).turn_off();
        return false;
      }
    turn_on_action:
      - logger.log: "Activation manuelle via Home Assistant"
      - light.turn_on:
          id: gpio_output
          brightness: 5%  # Luminosité à 5%
    turn_off_action:
      - logger.log: "Désactivation manuelle via Home Assistant"
      - light.turn_off:
          id: gpio_output