I have an esp32-s3 board and four BME680 sensors that I want to use to monitor my ventilation system (air in before/after heat exchanger, air out before/after heat exchanger).
I was originally planning to use SPI, but apparently SPI is not supported for the bme680, just the BME280?
I’m now using I2C instead and can successfully operate a single sensor using the bme68x_bsec2_i2c component. However, I’m struggling to configure multiple sensors. On the I2C side it should be fine, using two buses, and putting two sensors on each bus, as the sensor can be configured to use one of two I2C addresses.
The bme68x_bsec2_id documentation mentions that one can set bme68x_bsec2_id
:
The ID of the
bme68x_bsec2_i2c
component sensors will refer to. Useful when multiple devices are present in your configuration.
However, trying to define bme68x_bsec2_i2c
as a list in the YAML fails compilation because a dict is expected (expected a dictionary
), e.g. like this:
bme68x_bsec2_i2c:
- address: 0x76
model: bme680
operating_age: 28d
sample_rate: LP
supply_voltage: 3.3V
id: freshair
It seems to support that the component would need to set MULTI_CONF
in its __init__.py
, which this component doesn’t. Am I missing something or are multiple BME680 sensors not supported in the bme68x_bsec2_i2c
integration, and the ID mechanism is pointless?
Finally, I noticed that the older bme680_bsec
component does set MULTI_CONF
and does seem to support multiple sensors, but apparently it is not supported on esp32-s3
.
Any ideas or recommendations? Do I need to switch to an ESP8266 and use bme680_bsec
?
For some background, I want to use ethernet instead of WIFI for this device, and there were very few boards that came with an ethernet controller, which is why I got the esp32-s3 board. Switching to an ESP8266 likely would mean to also add a separate ethernet controller…