Commit Graph

9 Commits

Author SHA1 Message Date
bisbastuner 142b33fc90
Add support for 1.8V-powered devices (#6234) 2024-02-19 07:44:24 +13:00
bisbastuner 356efdb92c
Add support for multiple devices in bme680_bsec (#3550)
* Add initial support for multiple devices

Re-introduce support for multiple I2C devices (it was suppressed in df37a7635f). Devices are identified by their I2C address, and the BME680 can only have the 0x76 or 0x77 address, so this adds support for a maximum of two devices.

* Reintegrate commit ebf13a0b

Reintegrate commit ebf13a0ba0 which was lost in my changes (I were working on old files)

* wrong commit

* wrong commit

* Reintegrate commit ebf13a0b

Reintegrate commit ebf13a0ba0 which was lost due to me working on old files

* Reintroduce newlines at end of files

* Reintroduce newlines at end of files

* Adhere to codebase standards

Obey the "All uses of class members and member functions should be prefixed with this-> to distinguish them from global functions in code review" rule of the Codebase Standards

* Fix formatting according to clang-format

* Perform the BSEC library reinitialization+snapshot only when more than one device is present

* Fix formatting according to clang-format

* Degrade abort message in restore_state_() from warning to verbose

This always happen at initial setup, so it's not a really useful message; when some real problems arise, we'll have a more useful warning from snapshot_state_()

Co-authored-by: Trevor North <trevor@freedisc.co.uk>

* Reduce peak stack usage to avoid bootloops on ESP8266

Achieved mainly by moving the work_buffer needed by the BSEC library to the heap, as a single global work buffer shared by all instances.
::set_config_ has been reverted to a code path similar to the original, as that reduces peak stack usage enough to be OK on ESP8266 even without moving the work_buffer to the heap.

* Fix formatting according to clang-format

* Add support for devices with the same i2c address

Devices are now identified using their index in the BME680BSECComponent::instances member, which became a vector. This allows adding two devices with the same i2c address (which should be placed on different i2c buses). Since a BME680 can only have an address of 0x76 or 0x77, a maximum of 2 devices could be added before this commit. Now there is no theoretical limit on the number of devices which could be added.

* Fix formatting according to clang-format

* Fix formatting according to clang-format

---------

Co-authored-by: Trevor North <trevor@freedisc.co.uk>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2023-03-07 07:15:40 +00:00
Jesse Hills 0ac4c055de
Initialize all child sensors to nullptr (#3808) 2022-09-15 11:53:22 +12:00
Trevor North ebf13a0ba0
Queue sensor publishes so we don't block for too long (#3422) 2022-04-27 07:51:22 +12:00
Maurice Makaay 8c86a18dc6
Add missing include for defines.h. (#2403)
Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
2021-09-27 21:53:47 +02:00
Oxan van Leeuwen 5ec9bb0fb5
Clean-up constant definitions (#2148) 2021-08-23 19:21:30 +12:00
Trevor North cccb1a2c9e
BME680 BSEC: Allow sample rate overrides for T/P/H sensors (#1710) 2021-05-24 08:27:19 +12:00
SenexCrenshaw a39bb7b92f
Support custom build_flags for bme680_bsec (#1678) 2021-04-08 17:06:54 +02:00
Trevor North 2d618768d5
Add BME680 via BSEC integration (#1313) 2021-04-06 12:19:56 +02:00