Allumer une led en fonction d'une valeur

Bonjour à tous!

J’ai un ESP8266 dans ESPHome avec un DHT11 et un MQ135 (capteur CO2).
Je cherche à allumer une LED en fonction de la valeur du MQ mais a priori cela ne fonctionne pas.
J’ai testé plusieurs trucs.
Pouvez vous me dire si vous voyez une erreur dans mon code?

Merci

  - platform: template
    # Get the ppm of CO2 sensed (assuming only CO2 in the air), corrected  for temp. The ppm of CO2 in the air
    #getCorrectedPPM
    name: "Corrected PPM CO2"
    lambda: |-
      if (id(regression_method)==1) {
        return (id(PARA) * pow((id(corrected_resistance).state / id(RZERO)), id(PARB)));
      } else {
        return (pow(10, (log10(id(corrected_resistance).state / id(RZERO)) - id(PARB)) / id(PARA)));
      }
    update_interval: 15s
    unit_of_measurement: ppm
    id: corrected_ppm_co2
    on_value_range:
        - above: 0.0
          below: 800.0
          then:
            - output.turn_on: led1
        - above: 800.0
          below: 1500.0
          then:
            - output.turn_on: led2
        - above: 1500.0
          below: 3000.0
          then:
            - output.turn_on: led3

avec pour les LEDs

output:
  - platform: gpio
    pin: GPIO14  # Pin pour la LED Verte
    id: led1
  - platform: gpio
    pin: GPIO12  # Pin pour la LED Jaune
    id: led2
  - platform: gpio # Pin pour la LED Rouge
    pin: GPIO15
    id: led3

Et là, avec une valeur à 400 il n’y a aucune led qui s’allume… :frowning:
Merci d’avance !

Ma configuration


System Information

version core-2023.7.3
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.4
os_name Linux
os_version 5.10.0-23-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4828
Installed Version 1.32.1
Stage running
Available Repositories 1273
Downloaded Repositories 96
Home Assistant Cloud
logged_in true
subscription_expiration 1 janvier 2018 à 01:00
relayer_connected false
relayer_region null
remote_enabled true
remote_connected false
alexa_enabled false
google_enabled false
remote_server null
certificate_status null
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Debian GNU/Linux 11 (bullseye)
update_channel stable
supervisor_version supervisor-2023.07.1
agent_version 1.5.1
docker_version 24.0.4
disk_total 96.4 GB
disk_used 22.9 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.7.1), Home Assistant Google Drive Backup (0.111.1), Studio Code Server (5.9.0), Mosquitto broker (6.2.1), Duck DNS (1.15.0), NGINX Home Assistant SSL proxy (3.5.0), Zigbee2MQTT (1.32.1-1), RPC Shutdown (2.4), Node-RED (14.4.2), File editor (5.6.0), ESPHome (2023.7.0), motionEye (0.19.1)
Dashboards
dashboards 3
resources 85
views 32
mode storage
Recorder
oldest_recorder_run 19 juillet 2023 à 20:19
current_recorder_run 26 juillet 2023 à 20:26
estimated_db_size 353.34 MiB
database_engine sqlite
database_version 3.41.2
Spotify
api_endpoint_reachable ok
___

Salut,

je n’ai pas de réponse précise pour toi car ça peut venir de différentes choses.

Les branchements sont bons?
As-tu essayé de contrôler les leds en tant que « light » pour confirmer que ça marche ?

Sinon petite remarque sur ton code. Tu as de la logique pour allumer les leds… mais quand les éteins tu?

Petite question, si je mets à la place des output des light? Cela pourrait fonctionner mieux ?

Je vais penser à ajouter un turn_off quand on change de range

Pas vraiment.
Le output sera toujours nécessaire pour contrôler le GPIO de la led.
La surcouche light permet de rendre ça visible & contrôlable depuis HA… comme tu peux le voir dans l’exemple donné. Light dans ce cas, se base sur un output comme tu l’as fait.

Je proposais ça pour pouvoir confirmer que tu arrives à allumer les leds quand tu veux depuis HA, juste pour tester qu’elles marchent et sont bien branchées…

# Example configuration entry
light:
  - platform: binary
    name: "Desk Lamp"
    output: light_output

output:
  - id: light_output
    platform: gpio
    pin: GPIO16

Ok j’ai compris.
Je viens de mettre la config light et ça fonctionne…
Ajout des output Turn off aussi.
Je suis un peu perdu du coup.
J’ai triché du coup et fait une automatisation dans HA

Ok donc déjà ton branchement est bon :slight_smile:

Si tu veux tout de même le rendre autonome directement avec esphome, sans passer par l’automatisation de HA, je pense que ton souci vient du fonctionnement de on_value_range.
Quand tu regardes la doc, ça dit bien que c’est exécuté que quand la nouvelle valeur passe dans une nouveau range!
Donc ce qu’il te manque c’est une initialisation qui allume la première lumière au démarrage suivant la première valeur. Sinon, je me demande si en enlevant le « above: 0.0 » et le « below: 3000 » ça ne changerait pas la logique pour la première valeur directement.

Je vais faire les tests.
Pour contrôler la valeur au démarrage tu envisagerais ça comment ? Je débute dans esphome j’avais oublié de préciser