* 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>
* 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
* Prep-work for datetime entities
* Fix some includes and remove some restrictions on printing time on displays
* format
* format
* More formatting
* Move function contents
* Ignore clang-tidy
* fixing rectangle's `shrink` and `extend`
* fixed the rect::shrink and rect::inside methods
and added rect:equal() method
* fixed internal clang issue again. When would is
this going to be fixed :(
* fixed internal clang issue again. When would is
this going to be fixed :(
* remove trailing space
* adding Clipping support to the displaybuffer
- add rect structure
* removed unused define
* add missing property for storing the clipped areas
* include log header
* Move Rect method's code to cpp file
- removed obsolete remarks
* fixed reported issues
* make Rect class methods public
* clang fix
* Remove commented code
* Renaming clipping methods
* Multiple changes:
- replaced 32766 with VALUE_NO_SET
- fixed the way *_clipping(left, top, right, bottom) is stored
- add `is_clipping();`
- make sure that all clipped region are closed after `do_update_()`
- rename de parameters for `Rect::expand();`
* remove unneeded space
* replace define with static const uint8_t
* correcting my copy paste mistake
---------
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Currently, in each loop during DisplayBuffer::update_() the display is
cleared by calling DisplayBuffer::clear().
This prevents more efficient display usages that do not render the
screen in each loop, but only if necessary. This can be helpful, for
example, if images are rendered. This would cause the loop time to be
exceeded frequently.
This change adds a new optional flag "auto_clear" that can be used to
control the clearing behavior. If unset, the DisplayBuffer defaults to
enabled auto clearing, the current behavior and thus backward compatible.
This flag applies to displays that use DisplayBuffer.
Example excerpt:
globals:
- id: state
type: bool
restore_value: no
initial_value: "false"
- id: state_processed
type: bool
restore_value: no
initial_value: "false"
switch:
- platform: template
name: "State"
id: state_switch
lambda: |-
return id(state);
turn_on_action:
- globals.set:
id: state
value: "true"
- globals.set:
id: state_processed
value: "false"
turn_off_action:
- globals.set:
id: state
value: "false"
- globals.set:
id: state_processed
value: "false"
display:
- platform: ili9341
# ...
auto_clear_enabled: false
lambda: |-
if (!id(state_processed)) {
it.fill(COLOR_WHITE);
if (id(state)) {
it.image(80, 20, id(image1));
} else {
it.image(80, 20, id(image2));
}
id(state_processed) = true;
}
Co-authored-by: Tim Niemueller <timdn@google.com>
* Migrate ESPColor to Color
* color.h constructor fix
* Updated componets to use Color
Added a using for ESPColor
* Lint fixes
* Fixed value error
* Update display components to use colorutil
* Updated to latest PR comments
* Fixed COLOR_WHITE
* Moved esp_scale to color_utils
* Rename color_utils to display_color_utils
* SSD1325 grayscale support implemented
* Linted
* Fix garbage on display at power-up
* Rebase
* Linted
* Add brightness control, CS fixes
* Fix up SSD1327 init
* Add turn_on() and turn_off() methods
* Set brightness later in setup(), logging tweak
* Added is_on() method
* Added grayscale image support
* Updated to use Color, 1327 GS fix
* Move stop/is_running implementation to Action base class
Try to fix issue #1105. Until now if an UpdateComponentAction, a
LambdaAction, or any action that can contain those inside their
"else" or "then" action lists, resulted in a call to script.stop on
the script that contains them, the script would continue running,
because they didn't implement a stop() method. Basically only
the asynchronous ones did: DelayAction, WaitUntilAction and
ScriptWaitAction.
With this change num_running_ in Action replaces
DelayAction::num_running_ and WaitUntilAction::triggered_ to provide
the same is_running logic to other actions.
* Make some Action methods protected
Apparently play()/stop() etc. are not meant to be called directly by
users of the class and if they're called directly that would not give
the expected result for the classes that have an empty play().
Make all methods except play_complex, stop_comples and is_running
protected. While there also make RemoteTransmitterActionBase::encode
protected.
* lint
* format
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* TFT-LCD ST7789V of ESP32 TTGO.
This patch allows you to use TFT-LCD ST7789V of ESP32 TTGO
* Lots of polish and a few tweaks
* Add test
* Add color to core, take 1
* Where did those tabs come from?
* Fix lines too long
* Added color component
* Linted
* Rebase, SPI fix, test
* Shuffle bits
* One more thing...oops
* Image type fix...oops
* Make display_buffer use Color
* Fix BGR/RGB, remove predefined colors
* Fix all the things
* renamed colors to color
* migrate max7219
Co-authored-by: musk95 <musk95@naver.com>
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
## Description:
Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97
Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍
Progress:
- Core support (file copy etc): 80%
- Base Abstractions (light, switch): ~50%
- Integrations: ~10%
- Working? Yes, (but only with ported components).
Other refactors:
- Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`)
- Rework coroutine syntax
- Move from `component/platform.py` to `domain/component.py` structure as with HA
- Move all defaults out of C++ and into config validation.
- Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration.
- Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit.
Future work:
- Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block
- Enable loading from `custom_components` folder.
**Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here>
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Tests have been added to verify that the new code works (under `tests/` folder).
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).