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…
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)
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…
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
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.