BME680 causing freaquent api disconnects

I have several adafruit sensors using stemma qt connectors. As soon as I connect the bme I start to get

INFO 192.168.0.131: Unexpected error while reading incoming messages: 0 bytes read on a total of 1 expected bytes
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 505, in run_forever
    await self._run_once()
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 480, in _run_once
    pkt = await self._frame_helper.read_packet()
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 219, in read_packet
    return await self._read_packet_plaintext()
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 197, in _read_packet_plaintext
    preamble = await self._reader.readexactly(1)
  File "/usr/lib/python3.9/asyncio/streams.py", line 721, in readexactly
    raise exceptions.IncompleteReadError(incomplete, n)
asyncio.exceptions.IncompleteReadError: 0 bytes read on a total of 1 expected bytes
INFO Disconnected from ESPHome API for 192.168.0.131
WARNING Disconnected from API
INFO Successfully connected to 192.168.0.131

I have a CCS811 and a TSL2591 that I can connect to the same line and they work fine, the BME whether alone or daisy chained with the rest causes disconnects.


i2c:
   scl: GPIO5
   sda: GPIO4
#   frequency: 100kHz
   
bme680_bsec:
    address: 0x77


binary_sensor:
  - platform: status
    name: "light-and-air-quality"


sensor:
#wifi

  - platform: wifi_signal
    name: "light-and-air-quality WiFi"
    update_interval: 30s
  
  - platform: bme680_bsec

    temperature:
      name: "Bosch Temperature"
      id: "temperature"
      sample_rate: ulp
    pressure:
      name: "Bosch Pressure"
      sample_rate: ulp
    humidity:
      name: "Bosch Humidity"
      sample_rate: lp
      id: "humidity"
      force_update: true
#    iaq:
#      name: "Bosch IAQ"
    co2_equivalent:
      name: "Bosch CO2 Equivalent"
    breath_voc_equivalent:
      name: "Bosch Breath VOC Equivalent"
    gas_resistance:
      name: "Bosch Gas Resistance"
    
  - platform: ccs811
    eco2:
      name: "CCS cO2"
    tvoc:
      name: "CCS voc"
    address: 0x5A
#    baseline: 0x66BE
    update_interval: 20s
    temperature: temperature
    humidity: humidity
  
  - platform: tsl2591
    name: "laq tls"
    address: 0x29
    id: "laq_tls"
    update_interval: 10s
    integration_time: 600ms
    gain: low
    visible:
      name: "laq visible light"
    infrared:
      name: "laq infrared light"
    full_spectrum:
      name: "laq full spectrum light"
    calculated_lux:
      id: i_lux
      name: "laq lux"

text_sensor:
  - platform: bme680_bsec
    iaq_accuracy:
      name: "BME680 IAQ Accuracy"
      
switch:
  - platform: restart
    name: laq restart

Error with before and after activity

[12:37:31][V][bme680_bsec.sensor:180]: Performing sensor run
[12:37:31][VV][i2c:056]: Beginning Transmission to 0x77:
[12:37:31][VV][i2c:093]:     Writing 0b01011010 (0x5A)
[12:37:31][VV][i2c:093]:     Writing 0b01100111 (0x67)
[12:37:31][VV][i2c:093]:     Writing 0b01100100 (0x64)
[12:37:33][VV][scheduler:151]: Running interval 'tsl2591_interval_for_update' with interval=100 last_execution=239736 (now=239836)
[12:37:33][VV][i2c:056]: Beginning Transmission to 0x29:
[12:37:33][VV][i2c:093]:     Writing 0b10110011 (0xB3)
[12:37:33][VV][i2c:061]:     Transmission ended. Status code: 0x00
INFO 192.168.0.131: Unexpected error while reading incoming messages: 0 bytes read on a total of 1 expected bytes
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 505, in run_forever
    await self._run_once()
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 480, in _run_once
    pkt = await self._frame_helper.read_packet()
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 219, in read_packet
    return await self._read_packet_plaintext()
  File "/usr/local/lib/python3.9/dist-packages/aioesphomeapi/connection.py", line 197, in _read_packet_plaintext
    preamble = await self._reader.readexactly(1)
  File "/usr/lib/python3.9/asyncio/streams.py", line 721, in readexactly
    raise exceptions.IncompleteReadError(incomplete, n)
asyncio.exceptions.IncompleteReadError: 0 bytes read on a total of 1 expected bytes
INFO Disconnected from ESPHome API for 192.168.0.131
WARNING Disconnected from API
INFO Successfully connected to 192.168.0.131
[12:37:34][V][bme680_bsec.sensor:180]: Performing sensor run
[12:37:34][VV][i2c:056]: Beginning Transmission to 0x77:
[12:37:34][VV][i2c:093]:     Writing 0b01011010 (0x5A)
[12:37:34][VV][i2c:093]:     Writing 0b01100111 (0x67)
[12:37:34][VV][i2c:093]:     Writing 0b01100100 (0x64)
[12:37:36][VV][scheduler:151]: Running timeout 'read' with interval=208 last_execution=242749 (now=242964)
[12:37:36][V][bme680_bsec.sensor:223]: Reading data
[12:37:36][VV][i2c:056]: Beginning Transmission to 0x77:
[12:37:36][VV][i2c:093]:     Writing 0b01110100 (0x74)
[12:37:36][VV][i2c:061]:     Transmission ended. Status code: 0x00
  • ESP8266 or ESP32?
  • Many ESP8266 clones use low-capacity 3.3VDC LDO regulators, supplying only 150 to 300 mA
  • Is it connected to 3.3VDC or to 5VDC?
  • Is your GND well-soldered/connected?

I switched to the esphome BME680 library vs BSEC library and it’s been connected since. It seems that this is just a problem with BSEC.