* 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>
* Add support for FS3000 sensor.
* add fs3000 to test yaml
* Clean up code with clang.
* Clean up sensor.py file.
* Update CODEOWNERS file.
* Apply suggestions from code review regarding sensor.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Apply suggestions from code review for basic issues regarding C++ code
- removed unnecessary default for FS3000Model
- use "this->" before any sensor update
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Move model setup to overall setup function.
* Remove unneeded CONF_ID from sensor.py
* Run clang-format
* Move set_model code to header file now that it is simplified
* Update fs3000.h
---------
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This lets downstream components respond to climate configuration
changes, which take place through ClimateCall objects, without also
being notified every time the state changes, which happens every time
the input sensor announces a new value.
FIXES https://github.com/esphome/feature-requests/issues/2136
* Bump esp-idf to 3.4.3 via platformio/espressif32 @ 5.3.0
The new version appears to improve the stability of
BLE + WiFi
* bump recommended version as well
* Initial stab at importing idf components
* Handle repo with multiple components
Allow components directly from yaml
* Actually use the refresh config var
* Update esphome/components/esp32/__init__.py
* Add standby switch
* Add support for arbitrary run duration in start_single_valve action
* Add divider feature
* Allow zero multiplier
* Fixes for #3740, misc. cleanup and polishing
* Integrate number components for multiplier, repeat and run duration
* Add various methods to get time remaining
* Add next_prev_ignore_disabled flag
* Optimize next/previous valve selection methods
* Add numbers_use_minutes flag
* Initialize switch states as they are set up
* Ensure SprinklerControllerSwitch has state if it's not restored
* Add repeat validation
* Misc. clean-up and tweaking
* Fix bugprone-integer-division
* More clean-up
* Set entity_category for standby_switch
* Set default entity_category for numbers
* More housekeeping
* Add run request tracking
* Fix time remaining calculation
* Use native unit_of_measurement for run duration numbers
* Unstack some ifs
* Add mopeka standard tank sensor.
* Enhance mopeka ble to find standard sensors.
* Updated `CODEOWNERS` file
* Move default from cpp to py.
* Format documents with esphome settings.
* Linter wants changes.
* Update name of `get_lpg_speed_of_sound`.
* manually update `CODEOWNERS`.
* Manually update CODEOWNER, because `build_codeowners.py. is failing.
* Add comments.
* Use percentage for `propane_butane_mix`.
* add config to `dump_config()`
* Formatting
* Use struct for data parsing and find best data.
* Add `this`.
* Consistant naming of configuration.
* Fix format issues.
* Make clang-tidy happy.
* Adjust loop variable.
---------
Co-authored-by: Your Name <you@example.com>