projets:home-assistant:esphome:noeud-basique-mesures-environnementales:bme680
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
projets:home-assistant:esphome:noeud-basique-mesures-environnementales:bme680 [25/10/2023 14:19 ] – Oliver Watté | projets:home-assistant:esphome:noeud-basique-mesures-environnementales:bme680 [04/04/2024 15:35 ] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== ESPhome / BME 280 ====== | + | ====== ESPhome / BME 680 ====== |
===== Montage ===== | ===== Montage ===== | ||
Ligne 24: | Ligne 24: | ||
==== Code basique ==== | ==== Code basique ==== | ||
+ | <file yaml bme680simple.yaml > | ||
+ | esphome: | ||
+ | name: " | ||
+ | | ||
+ | esp8266: | ||
+ | board: nodemcuv2 | ||
+ | |||
+ | logger: | ||
+ | |||
+ | # Enable Home Assistant API | ||
+ | api: | ||
+ | encryption: | ||
+ | key: " | ||
+ | # voir https:// | ||
+ | # il y a sur la page un générateur de clé aléatoire | ||
+ | # changez et mettez une autre valeur pour votre noeud | ||
+ | |||
+ | ota: | ||
+ | password: " | ||
+ | |||
+ | wifi: | ||
+ | ssid: " | ||
+ | password: " | ||
+ | |||
+ | ## on définit les GPIO du bus I2C | ||
+ | i2c: | ||
+ | sda: D1 # à changer si carte différente (GPIO21 pour esp32) | ||
+ | scl: D2 # à changer si carte différente (GPIO22 pour esp32) | ||
+ | scan: True | ||
+ | id: bus_a | ||
+ | |||
+ | bme680_bsec: | ||
+ | # documentation esphome : https:// | ||
+ | address: 0x77 | ||
+ | iaq_mode: static | ||
+ | sample_rate: | ||
+ | |||
+ | sensor: | ||
+ | - platform: bme680_bsec # multi capteurs atmosphériques (qualité de l'air) | ||
+ | # documentation esphome : https:// | ||
+ | temperature: | ||
+ | name: " | ||
+ | id: station2_bme680_temperature | ||
+ | sample_rate: | ||
+ | filters: | ||
+ | - offset: -2.0 | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | pressure: # pression atmosphérique | ||
+ | name: " | ||
+ | id: station2_bme680_pressure | ||
+ | sample_rate: | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | humidity: # humidité dans l'air | ||
+ | name: " | ||
+ | id: station2_bme680_humidity | ||
+ | sample_rate: | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | iaq: # indice de qualité de l'air (calculé) | ||
+ | name: " | ||
+ | id: station2_bme680_iaq | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 10 | ||
+ | co2_equivalent: | ||
+ | name: "taux CO2 équivalent (station2)" | ||
+ | id: station2_bme680_eco2 | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 10 | ||
+ | breath_voc_equivalent: | ||
+ | name: "COV équivalents dans le souffle" | ||
+ | id: station2_bme680_bvoc | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | |||
+ | </ | ||
==== Code avancé ==== | ==== Code avancé ==== | ||
+ | |||
+ | |||
+ | <file yaml bme680adv.yaml > | ||
+ | substitutions: | ||
+ | devicename: station2 # nom de l' | ||
+ | |||
+ | esphome: | ||
+ | name: ${devicename} # la valeur définie plus haut sera placée ici | ||
+ | |||
+ | esp8266: | ||
+ | board: nodemcuv2 | ||
+ | |||
+ | logger: | ||
+ | |||
+ | # Enable Home Assistant API | ||
+ | api: | ||
+ | encryption: | ||
+ | key: " | ||
+ | # voir https:// | ||
+ | # il y a sur la page un générateur de clé aléatoire | ||
+ | # changez et mettez une autre valeur pour votre noeud | ||
+ | |||
+ | ota: | ||
+ | # le mot de passe OTA sera récupéré dans sectets.yaml | ||
+ | password: !secret ota_password | ||
+ | # décommenter la ligne ci après pour définir le mot de passe ici | ||
+ | # password: " | ||
+ | wifi: | ||
+ | # le ssid et le password wifi seront récupérés dans sectets.yaml | ||
+ | ssid: !secret wifi_ssid | ||
+ | password: !secret wifi_password | ||
+ | # | ||
+ | # ssid: " | ||
+ | # password: " | ||
+ | |||
+ | |||
+ | ## on définit les GPIO du bus I2C | ||
+ | i2c: | ||
+ | sda: D1 # à changer si carte différente (GPIO21 pour esp32) | ||
+ | scl: D2 # à changer si carte différente (GPIO22 pour esp32) | ||
+ | scan: True | ||
+ | id: bus_a | ||
+ | |||
+ | sensor: | ||
+ | - platform: bme680_bsec # multi capteurs atmosphériques (qualité de l'air) | ||
+ | # documentation esphome : https:// | ||
+ | temperature: | ||
+ | name: " | ||
+ | id: station2_bme680_temperature | ||
+ | sample_rate: | ||
+ | filters: | ||
+ | - offset: -2.0 | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | pressure: # pression atmosphérique | ||
+ | name: " | ||
+ | id: station2_bme680_pressure | ||
+ | sample_rate: | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | humidity: # humidité dans l'air | ||
+ | name: " | ||
+ | id: station2_bme680_humidity | ||
+ | sample_rate: | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | iaq: # indice de qualité de l'air (calculé) | ||
+ | name: " | ||
+ | id: station2_bme680_iaq | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 10 | ||
+ | co2_equivalent: | ||
+ | name: "taux CO2 équivalent (${devicename})" | ||
+ | id: station2_bme680_eco2 | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 10 | ||
+ | breath_voc_equivalent: | ||
+ | name: "COV équivalents dans le souffle (${devicename})" | ||
+ | id: station2_bme680_bvoc | ||
+ | filters: | ||
+ | - sliding_window_moving_average: | ||
+ | window_size: | ||
+ | send_every: 20 | ||
+ | |||
+ | # mesure la force du signal wifi reçu en dB | ||
+ | # documentation : https:// | ||
+ | - platform: wifi_signal | ||
+ | name: " | ||
+ | update_interval: | ||
+ | |||
+ | # donne l' | ||
+ | # documentation : https:// | ||
+ | # ici on ajoute des calculs pour avoir un format lisible (j:h:m:s) | ||
+ | - platform: uptime | ||
+ | name: " | ||
+ | id: ${devicename}_uptime_sensor | ||
+ | update_interval: | ||
+ | on_raw_value: | ||
+ | then: | ||
+ | - text_sensor.template.publish: | ||
+ | id: ${devicename}_uptime_human | ||
+ | state: !lambda |- | ||
+ | int seconds = round(id(${devicename}_uptime_sensor).raw_state); | ||
+ | int days = seconds / (24 * 3600); | ||
+ | seconds = seconds % (24 * 3600); | ||
+ | int hours = seconds / 3600; | ||
+ | seconds = seconds % 3600; | ||
+ | int minutes = seconds / 60; | ||
+ | seconds = seconds % 60; | ||
+ | return ( | ||
+ | (days ? String(days) + "j " : "" | ||
+ | (hours ? String(hours) + "h " : "" | ||
+ | (minutes ? String(minutes) + "m " : "" | ||
+ | (String(seconds) + " | ||
+ | ).c_str(); | ||
+ | |||
+ | text_sensor: | ||
+ | # on présente l' | ||
+ | # documentation https:// | ||
+ | - platform: wifi_info | ||
+ | ip_address: | ||
+ | name: " | ||
+ | id: ${devicename}_ip_address | ||
+ | |||
+ | - platform: template | ||
+ | # on présente l' | ||
+ | name: " | ||
+ | id: ${devicename}_uptime_human | ||
+ | icon: mdi: | ||
+ | |||
+ | # version de espHome utilisée | ||
+ | # https:// | ||
+ | - platform: version | ||
+ | name: " | ||
+ | id: ${devicename}_ESPHome_Version | ||
+ | |||
+ | </ | ||
projets/home-assistant/esphome/noeud-basique-mesures-environnementales/bme680.1698243578.txt.gz · Dernière modification : 04/04/2024 15:35 (modification externe)