* Add IRK support to allow tracking of devices with random MAC addresses
* make CONF_IRK a local definition
* Add tests
---------
Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com>
* Introduce calibration settings for all touchscreen drivers.
this will override the common values.
The x,y coordinates only calculated when the right calibrations are set.
* resolve issues reported by CI
* remove unneeded spaces and newlines
* Forgot to remove some obsolete code
* remove get_setup_priority from xpt2046
* remove media_player changes.
* media_player: removed to much,
* Update suggestions
* referd back the `get_setup_priority` removal so it can be moved into a othe PR.
* tt21100: restore init read
* fix spacing
* load native display dimensions instead of using internal dimensons.
and load it only onse on setup
* moved `update_touches()` to protexted section
* adding Clydes PR#6049
* add multitouch test script
* Update all Touchscreen replacing `get_*_internal` to `get_native_*`
* fixed some CI recomendations
* couple of fixes
* make sure the display is running before touchscreen is setup
* fix clang
* revert back last changes
* xpt2046: change log level for testing
* logging information
* add test file
* fix polling issue with the for example the xpt2046
* fixed some CI issues
* fixed some CI issues
* restore mirror parameter discriptions
* same for the swap_xy
* same for the transform
* remove the above const from const.py
* and put the above const bacl const.py
* Merge branch 'nvds-touchscreen-fix1' of https://github.com/nielsnl68/esphome into nvds-touchscreen-fix1
* and put the above const bacl const.py
* [tt21100] making interupt pin optional
* [tt21100] making interupt pin optional (now complete)
* update the display part based on @clyde'
s changes.
* fix issue with ft6x36 touvhscreen
* reverd back touch check. add comment
* add some extra checks to the ft6x36
* add an other log and a typo fixed
* okay an other fix.
* add an extra check like others do
and fix data type
* [ft6336] fix update race when ts is touched.
* [touchscreen] update some log's with a verbose level.
* fix clang issues
* fix the clang issues
* fix the clang issues
* fix virtual issue.
* fix the clang issues
* an other clang issues
* remove anti-aliased fonts support. It does not belong here.
* remove anti-aliased fonts support. It does not belong here.
* rename test script
* Moving the test files to there right location.
* rename the test files
* clean up the code
* add a new line
* clang fixings
* clang fixings
* remove comment
* remove comment
* Update esphome/components/touchscreen/__init__.py
Co-authored-by: guillempages <guillempages@users.noreply.github.com>
* Update esphome/components/touchscreen/__init__.py
Co-authored-by: guillempages <guillempages@users.noreply.github.com>
* Update esphome/components/touchscreen/__init__.py
Co-authored-by: guillempages <guillempages@users.noreply.github.com>
* Update esphome/components/touchscreen/touchscreen.cpp
* Update esphome/components/touchscreen/touchscreen.cpp
* [ft63x6] add threshold
---------
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com>
Co-authored-by: guillempages <guillempages@users.noreply.github.com>
* Ensure filename is shown when YAML raises an error
fixes#5423fixes#5377
* Ensure filename is shown when YAML raises an error
fixes#5423fixes#5377
* Ensure filename is shown when YAML raises an error
fixes#5423fixes#5377
* Ensure filename is shown when YAML raises an error
fixes#5423fixes#5377
* Ensure filename is shown when YAML raises an error
fixes#5423fixes#5377
* Test for each component.
* When possible use commandline substitution.
* Add wildcard support.
* end file with new line.
* Move component tests into subfolder.
* Add component test to pipeline.
* Remove trailing whitespace.
* add restore python step.
* Add `. venv/bin/activate` to pipeline.
* step `changed-components` needs `common` step.
* start `list-components-changed.py` different.
* iterate on pipeline stage `list-components`.
* Update `checkout` action.
* Rename test folder from `tests` to `_test`.
* validate file exists.
* Move component test folder.
* extend list-components to include child components.
* File does not end with a newline
* Handle empty list-components matrix.
* list-components also check for changes in tests folder.
* Improve `list-components.py`.
* `*` is a forbidden character for filenames on windows.
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
* Add config to disable auto-connect of BLE client.
Correct initialise MAC address of BLE client.
* Checkpont
* Fixes for automation progress.
* Fixes for automation progress.
* Checkpoint;
fix notify for ble_client
* Fix BLE client binary_output
* Various fixes
* Consider notifications on when receiving REG_FOR event.
* Add testing branch to workflow
* Add workflow
* CI changes
* CI changes
* CI clang
* CI changes
* CI changes
* Add comment about logging macros
* Add test, sanitise comment
* Revert testing change to ci config
* Update codeowners
* Revert ci config change
* Fix some state changes
* Add default case.
* Minor fixes
* Add auto-connect to logconfig
* Add testing branch to workflow
* Add workflow
* Checkpoint
* Align SPI data rates in c++ code with Python code.
* Checkpoint
* CI fixes
* Update codeowners
* Workflow cleanup
* Rename to spi_rgb_led
* Rename header file
* Clang tidy
* Disable spi after transfer.
* Move enable() to where it belongs
* Call spi_setup before enable
* Clang tidy
* Add test
* Rename to spi_led_strip
* Include 'defines.h'
* Fix CODEOWNERS
* Migrate data rate to new style setting.
* Remove defines.h
* Fix class name
* Fix name in .py
* And more more name tidy up.
---------
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
* Add BMI160 support
* BMI160: use set_timeout for delay
* Add support for old compilers
Fix "warning: missing terminating ' character"
* Increase power-on delay to be more conservative
* Add helper for reading little-endian data over i2c
* Replace configuration names with globals
Note: for testing with external components, you will need to comment out the import & define your own CONF_GYROSCOPE_X, etc, in this file
* Improve icons
* Fix tests & lint
* [ADC] Support measuring VCC on Raspberry Pico (W)
Added support for measuring VCC on Raspberry Pico (W) with ADC.
GPIO pin is provided as `VCC`, same as with ESP8266. VSYS is the voltage
being actually processed, and might have an offset from actual power
supply voltage (e.g. USB on VBUS) due to voltage drop on
Schottky diode between VSYS and VBUS on Rasberry Pico. The offset has
experimentally been found to be ~0.25V on Pico W and ~0.1 on Pico,
presumably due to different power consumption.
Example usage:
sensor:
- platform: adc
pin: VCC
name: "VSYS"
* + Added tests for VCC measuring on `rpipicow` board
* Checkpoint
* Checkpoint
* Checkpoint
* Revert hal change
* Checkpoint
* Checkpoint
* Checkpoint
* Checkpoint
* ESP-IDF working
* clang-format
* use bus_list
* Add spi_device; fix 16 bit transfer.
* Enable multi_conf;
Fix LSB 16 bit transactions
* Formatting fixes
* Clang-format, codeowners
* Add test
* Formatting
* clang tidy
* clang-format
* clang-tidy
* clang-format
* Checkpoint
* Checkpoint
* Checkpoint
* Revert hal change
* Checkpoint
* Checkpoint
* Checkpoint
* Checkpoint
* ESP-IDF working
* clang-format
* use bus_list
* Add spi_device; fix 16 bit transfer.
* Enable multi_conf;
Fix LSB 16 bit transactions
* Formatting fixes
* Clang-format, codeowners
* Add test
* Formatting
* clang tidy
* clang-format
* clang-tidy
* clang-format
* Clang-tidy
* Clang-format
* clang-tidy
* clang-tidy
* Fix ESP8266
* RP2040
* RP2040
* Avoid use of spi1 as id
* Refactor SPI code.
Add support for ESP-IDF hardware SPI
* Force SW only for RP2040
* Break up large transfers
* Add interface: option for spi.
validate pins in python.
* Can't use match/case with Python 3.9.
Check for inverted pins.
* Work around target_platform issue with
* Remove debug code
* Optimize write_array16
* Show errors in hex
* Only one spi on ESP32Cx variants
* Ensure bus is claimed before asserting /CS.
* Check on init/deinit
* Allow maximum rate write only SPI on GPIO MUXed pins.
* Clang-format
* Clang-tidy
* Fix issue with reads.
* Finger trouble...
* Make comment about missing SPI on Cx variants
* Pacify CI clang-format. Did not complain locally??
* Restore 8266 to its former SPI glory
* Fix per clang-format
* Move validation and choice of SPI into Python code.
* Add test for interface: config
* Fix issues found on self-review.
---------
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
* Add Lilygo T-Embed to st7789v display config.
* Move all configuration into the Python code.
Add presets for TTGO.
All preset configuration can be overridden.
* Add Adafruit S2 pin presets
* Add test
* Add funhouse pins.
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
* Keep ordering of options consistent
* Remove unused declarations
---------
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
Co-authored-by: Sam Neirinck <git@samneirinck.com>
Co-authored-by: David Buezas <dbuezas@users.noreply.github.com>
Co-authored-by: Stroe Andrei Catalin <catalin2402@gmail.com>
Co-authored-by: Sam Neirinck <github@samneirinck.be>
Co-authored-by: Péter Sárközi <xmisterhu@gmail.com>
Co-authored-by: Hajo Noerenberg <hn@users.noreply.github.com>
* Split display_buffer sub-components into own files
Move the Image, Animation and Font classes to their own h/cpp pairs,
instead of having everything into the display_buffer h/cpp files.
* Fixed COLOR_ON duplicate definition
* Add support for TMP1075 temperature sensor
TMP1075 is a temperature sensor with I2C interface in industry standard
LM75 form factor and pinout.
https://www.ti.com/product/TMP1075
Example YAML:
```yaml
sensor:
- platform: tmp1075
name: TMP1075 Temperature
id: radiator_temp
update_interval: 10s
i2c_id: i2c_bus_1
conversion_rate: 27.5ms
alert:
limit_low: 50
limit_high: 75
fault_count: 1
polarity: active_high
```
* Add myself as codeowner of the TMP1075 component
* Include '°C' unit when logging low/high limit setting
* Reformat
No functional changes.
* Fix logging: use %.4f for temperatures, not %d
* Fix config initialisation
* Use relative include for `tmp1075.h`
* Apply formatting changes suggested by script/clang-tidy for ESP32
* Add YAML to test1.yaml
* Fix test1.yaml by giving TMP1075 a name
* Less verbose logging (debug -> verbose level)
* Schema: reduce accuracy_decimals to 2
* I2C address as hexadecimal
* Proper name for enum in Python
The enum on the C++ side was renamed (clang-tidy) but I forgot to take that
into account in the Python code.
* Expose 'alert function' to the code generator/YAML params and remove 'shutdown'
Shutdown mode doesn't work the way I expect it, so remove it until someone
actually asks for it.
Also 'alert mode' was renamed to 'alert function' for clarity.
* Move simple setters to header file
* Remove `load_config_();` function
* initial support for Bayesian type
* Cast bool state of binary_sensor to uint64_t
* Rename channels to observations with Bayesian
* Improve/standardize comments for all types
* Use black to correct sensor.py formatting
* Add SUM and BAYESIAN binary sensor map tests
* Remove unused variable
* Update esphome/components/binary_sensor_map/binary_sensor_map.cpp
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
---------
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Add push to talk voice assistant
* Refactor most code into voice_assistant
* Make voice_assistant the component and remove push_to_talk (can be done in yaml)
* Fix component setup
* Always AF_INET to match serverside
* Fix microphone and media player co-existence
* Format
* Update codeowners
* Update test file
* Fix endifs
* nullptr not NULL
* clang-tidy
* Format
* fixup: Add VA event data
* Generate proto
* Parse and log events
* Add default to switch
* Fix
* Add mic/va to test5
* Move EntityBase Object Id from memory to flash.
* Sprinkler use common `setup_entity` method.
* Remove `EntityBase` from Sprinkler.
* Support for entity names set to None
* change so gh PR picks up commit.
---------
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Added missing PM_1_0 and PM_10_0 for PMS5003T
Added missing PM_1_0 and PM_10_0 for PMS5003T
* Revert "Added missing PM_1_0 and PM_10_0 for PMS5003T"
This reverts commit 86084f7c61.
* Added tests for PMS5003T
* Added missing PM_1_0 and PM_10_0 for PMS5003T PMS5003ST
* Added missing PM_1_0 and PM_10_0 for PMS5003T
* lint: Trailing whitespace fixed
* tab character removed
* Clang format suggested edit
* Feat: add support for hex color in color component
* Chore: move hex color validator to color component
* Chore: add test
* Chore: fix formatting
* Chore: make linter happy
* Chore: make linter happy
* Fix: parse correct offsets
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
* Chore: use cv.Invalid
* Fix: remove # because it indicates a comment in yaml
* Fix: only allow hex if no other color value is set
* Fix: tests
* Fix: mutual exclusion of raw and hex colors
* Chore: format file
* Update __init__.py
---------
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* - Removed cleaning the screen twice.
\Should be handled by `DisplayBuffer::init_internal_();`
- Made ili9341::initalize() protected and renamed
\ it to ili9341::initalize().
- ili9341::initalize() should only init the display
\ and set the width and heigth.
* removed to much
* clang format fixes
* removing trailing underscors for
protected virtual methods
* removed the "override" on display()
* clang fixes
* restored old changes
* Renamed the ili9341 platform to ili9xxx and added
multiple drivers as well. including PR #3848
* fixed most of the clang reported issues
* fixed reported issues
* last fixes
* Setting the right codeowners
* missing changes
* fixed naming Display() method.
* clang again
* clang fix
* fixes reported by @jesserockz & @gpambrozio
* a change to display.py removing an unneeded var
* re-introduce **backlight** option.
* update the ili9488 initialization
* update the ili9488 initialization and fix typo
* fixed typo
* add missing constants
* swap height and width back for the ili9488
* init fixes ili9488
* fixed lint issue
testing the init code
* oeps
* init fixes ili9488
* fixed wrong define
* fixed wrong define again
* removed some spaces
* revert to ili9341
* Remove parts that where used for
the switchplate
* lint fixes and removing unused function
* fix error and introducing 16bit color option
* fix error and introducing 16bit color option
* fix clang issue
* clang fix
* clang issue again
* is this what clang exprect
* clang fix
* clang fix
* try again
* let try again
* and again
* and the last clang fix
* remove the need of wifi
* update dimentions
* update ili8488 init code.
* update dimentions
* allow to change height and width
* dump color mode config
* fix
* fix
* modify logging
* referd back unrelated change
* code formatting commit and moving functions around
* add missing ;
* update code
* update code
* use the correct write_array for sending uint16_t
* fix panic loop
* fix panic loop
* - update the test file
- fixed sending display data
* clang fixes
* clang fixes
* clang fixes again
* remove .gitignore items
* remove .gitignore items
* make sure Update() can can not be called while
called
* clang correction
* adding a test yaml for the ili9341
* Update ili9341 example
* Make test ili9xxx/tests only local
* restore back old ili9341 driver code
* Add a new config for the M5Core
* fix clang request
* reverd to restore of the old ili9341
there is no proper way to say it is depricated.
* Remove the backlight/led pin from the config.
You need to use a proper light platform component
* Ili9488init changes (#88)
Fixed ILI9488 init settings, and adjusted pixel handling code to push pixels in 18 bit format.
This does not change the internal 16-bit representation.
* fixed some leftover clang issues from the merge.
* fixed the slang-tidy request.
* remove `backlight_pin` warning.
---------
Co-authored-by: JD Steffen <jdsteffen81@gmail.com>
* remove unused sensors on pzemdc
* add reset energy action for pzemdc
* fix lint errors
* remove trailing space on pzemdc.h
* make method reset_energy of pzemdc public
* Apply suggestions from code review
---------
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Add support for AS7341 spectral color sensor.
* Run clang-format and clang-tidy.
* Post-review changes.
* Apply suggestions from code review
---------
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
* Raise errors for all the now deprecated options
* Fix CONF_DEFAULT_PRESET detection
* Stop attempting to set the non-existent normal_config
* Add support for default presets
* Fix correct detection of Two Point temperature mode
* Fix lint issues
* Fix tests
* Generate correct yaml for equivalent configurations
* Remove debug code
* Only set default preset if the thermostat does not have state to restore
* Add restore_default_preset_on_boot option
If set to True then the default_preset will be applied on every boot. If False (Default) state will be restored from memory as per prior versions
* Apply lint suggestions
* Switch from restore_default_preset_on_boot to an enum for startup_behavior
This gives better self-documentation as well as the option for extending to other options down the track
* Lint fixes
* Rename startup_behavior to on_boot_restore_from
This removes any issues with different English locales
* Fix comparable_preset yaml output alignment
* Add dump of on_boot_restore_from setting
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>