Problème de bus multiples i2c

Problème de bus multiples i2c

Bonjour à tous,

Je voudrais faire un projet à base d’ESP8266 NodeMCU avec 3 capteurs : 1 capteur de température DHT22, un capteur de luminosité BH1750, et un capteur de CO2 CCS811.

Les BH1750 et CCS811 utilisent tous les 2 un bis i2c. J’essaye donc d’utiliser des id.

J’arrive à faire fonctionner le BH1750 seul avec un id configuré comme suit :

i2c:
  id: bus_a
  sda: GPIO4
  scl: GPIO5

Mais ça ne foncktionne pas lorsque je veux configurer 2 busses comme indiqué dans la doc comme suit :

i2c:
  - id: bus_a
    sda: GPIO4
    scl: GPIO5
  - id: bus_b
    sda: GPIO14
    scl: GPIO12

Pourtant, dans les logs, il me voit bien le capteur :

[16:53:33][C][i2c.arduino:052]: I2C Bus:
[16:53:33][C][i2c.arduino:053]:   SDA Pin: GPIO4
[16:53:33][C][i2c.arduino:054]:   SCL Pin: GPIO5
[16:53:33][C][i2c.arduino:055]:   Frequency: 50000 Hz
[16:53:33][C][i2c.arduino:058]:   Recovery: bus successfully recovered
[16:53:33][I][i2c.arduino:068]: Results from i2c bus scan:
[16:53:33][I][i2c.arduino:074]: Found i2c device at address 0x23

Mais un peu plus bas, il n’arrive pas à commuiniquer avec :
[16:53:33][E][bh1750.sensor:121]: Communication with BH1750 failed!

Voici mon fichier de configuration complet :

esphome:
  name: capteur-salle-a-manger

esp8266:
  board: nodemcu

# WiFi connection
wifi:
  networks:
    - ssid: !secret wifi_ssid
      bssid: 44:D4:53:95:97:38
      password: !secret wifi_password
      manual_ip:
        static_ip: 192.168.1.240
        gateway: 192.168.1.1
        subnet: 255.255.255.0
        dns1: 192.168.1.5
    - ssid: !secret wifi_ssid
      bssid: 2C:08:23:77:F7:E2
      password: !secret wifi_password
      manual_ip:
        static_ip: 192.168.1.240
        gateway: 192.168.1.1
        subnet: 255.255.255.0
        dns1: 192.168.1.5

  # Enable fallback hotspot
  ap:
    ssid: !secret ap_ssid
    password: !secret ap_password

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_key

# Enable over-the-air updates
ota:
  password: !secret ota_password

# Enable Web server
web_server:
  port: 80
# Sync time with Home Assistant
time:
  - platform: homeassistant
    id: homeassistant_time

captive_portal:

# Text sensors with general information
text_sensor:
  # ESPHome version
  - platform: version
    name: "capteur-salle-a-manger ESPHome Version"
  # WiFi information
  - platform: wifi_info
    ip_address:
      name: "capteur-salle-a-manger IP"
    ssid:
      name: "capteur-salle-a-manger SSID"
    bssid:
      name: "capteur-salle-a-manger BSSID"

i2c:
  - id: bus_a
    sda: GPIO4
    scl: GPIO5
  - id: bus_b
    sda: GPIO14
    scl: GPIO12

sensor:
  # Uptime sensor
  - platform: uptime
    name: "capteur-salle-a-manger Uptime"

  # WiFi signal sensor
  - platform: wifi_signal
    name: "capteur-salle-a-manger WiFi Signal"
    update_interval: 60s

  # Illuminance Sensor
  - platform: bh1750
    i2c_id: bus_a
    name: "Luminosité"
    address: 0x23
    update_interval: 30s

  # CO2 Sensor
  - platform: ccs811
    i2c_id: bus_b
    eco2:
      name: "CO2"
    tvoc:
      name: "Composé organique volatil total"
    address: 0x5A
    update_interval: 30s

  # DHT Sensor
  - platform: dht
    pin: GPIO0
    temperature:
      name: "Température"
    humidity:
      name: "Humidité"
    update_interval: 30s

switch:
  # Switch Restart
  - platform: restart
    name: "capteur-salle-a-manger Restart"

Merci d’avance pour votre aide !
Rémi