J. Nick Koston
b8579d2040
Reduce loop enable/disable log spam by using very verbose level
2025-06-29 17:39:48 -05:00
Jimmy Hedman
68d66c873e
Upgrade to use C++20 ( #9135 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2025-06-27 17:31:50 +00:00
J. Nick Koston
2a45467bf6
Pre-reserve looping components vector to reduce memory allocations ( #9177 )
2025-06-23 14:10:09 +12:00
J. Nick Koston
8ba22183b9
Add enable_loop_soon_any_context() for thread and ISR-safe loop enabling ( #9127 )
2025-06-19 13:30:41 +12:00
J. Nick Koston
2e534ce41e
Reduce CPU overhead by allowing components to disable their loop() ( #9089 )
2025-06-18 21:49:25 +12:00
J. Nick Koston
374c33e8dc
Optimize Component and Application state storage from uint32_t to uint8_t ( #9082 )
2025-06-15 14:48:53 +12:00
J. Nick Koston
dac738a916
Always perform select() when loop duration exceeds interval ( #9058 )
2025-06-12 03:27:10 +00:00
Keith Burzinski
9652b1a556
[application] Fix build error on some IDF versions ( #9045 )
2025-06-11 21:44:49 +12:00
J. Nick Koston
0e27ac281f
Ensure components only powerdown after teardown ( #9044 )
2025-06-11 04:21:22 +00:00
Jon Krause
cdae06e571
Force socket ready when high frequency looping ( #9032 )
2025-06-09 00:40:25 +00:00
J. Nick Koston
9cc2a04d54
Implement proper API connection teardown before deep sleep/reboot ( #9008 )
2025-06-09 10:29:26 +12:00
Keith Burzinski
6675e99862
Remove unnecessary ellipsis ( #8964 )
2025-06-03 21:46:10 +01:00
J. Nick Koston
8c77e40695
Fix select() logging flood in very verbose mode ( #8942 )
2025-05-29 02:29:37 +00:00
J. Nick Koston
43e88af28a
Optimize socket operations by checking readiness in the main loop ( #8918 )
2025-05-28 18:16:37 -05:00
J. Nick Koston
78c63311c6
Fix ethernet connection timeout issue caused by incorrect time value during setup ( #8841 )
2025-05-19 00:25:21 -05:00
J. Nick Koston
574aabdede
Reduce number of calls to fetch time in the main loop ( #8804 )
2025-05-19 07:48:57 +12:00
Clyde Stubbs
b8d83d0765
[debug] Show source of last software reboot ( #8595 )
2025-05-04 23:31:37 -05:00
Clyde Stubbs
e6b1187689
If the loop() took more than the required time, don't delay further ( #6496 )
2024-04-08 19:56:08 +12:00
J. Nick Koston
b9f20b36cb
Store app comment and compilation_time in flash ( #4945 )
2023-06-19 11:35:47 +12:00
RoboMagus
34adbf0588
Fix / Reverse order shutdown ( #3585 )
2022-06-21 11:26:34 +12:00
Oxan van Leeuwen
12467a18e6
Feed watchdog when no component loops ( #2857 )
2021-12-07 07:24:20 +13:00
Oxan van Leeuwen
607601b3a4
Enable a bunch of clang-tidy checks ( #2149 )
2021-12-02 09:03:51 +13:00
Carlos Garcia Saura
859e508392
change millis() to micros() in feed_wdt for 3ms check ( #2492 )
2021-10-13 18:50:27 +02:00
Otto Winter
ac0d921413
ESP-IDF support and generic target platforms ( #2303 )
...
* Socket refactor and SSL
* esp-idf temp
* Fixes
* Echo component and noise
* Add noise API transport support
* Updates
* ESP-IDF
* Complete
* Fixes
* Fixes
* Versions update
* New i2c APIs
* Complete i2c refactor
* SPI migration
* Revert ESP Preferences migration, too complex for now
* OTA support
* Remove echo again
* Remove ssl again
* GPIOFlags updates
* Rename esphal and ICACHE_RAM_ATTR
* Make ESP32 arduino compilable again
* Fix GPIO flags
* Complete pin registry refactor and fixes
* Fixes to make test1 compile
* Remove sdkconfig file
* Ignore sdkconfig file
* Fixes in reviewing
* Make test2 compile
* Make test4 compile
* Make test5 compile
* Run clang-format
* Fix lint errors
* Use esp-idf APIs instead of btStart
* Another round of fixes
* Start implementing ESP8266
* Make test3 compile
* Guard esp8266 code
* Lint
* Reformat
* Fixes
* Fixes v2
* more fixes
* ESP-IDF tidy target
* Convert ARDUINO_ARCH_ESPxx
* Update WiFiSignalSensor
* Update time ifdefs
* OTA needs millis from hal
* RestartSwitch needs delay from hal
* ESP-IDF Uart
* Fix OTA blank password
* Allow setting sdkconfig
* Fix idf partitions and allow setting sdkconfig from yaml
* Re-add read/write compat APIs and fix esp8266 uart
* Fix esp8266 store log strings in flash
* Fix ESP32 arduino preferences not initialized
* Update ifdefs
* Change how sdkconfig change is detected
* Add checks to ci-custom and fix them
* Run clang-format
* Add esp-idf clang-tidy target and fix errors
* Fixes from clang-tidy idf round 2
* Fixes from compiling tests with esp-idf
* Run clang-format
* Switch test5.yaml to esp-idf
* Implement ESP8266 Preferences
* Lint
* Re-do PIO package version selection a bit
* Fix arduinoespressif32 package version
* Fix unit tests
* Lint
* Lint fixes
* Fix readv/writev not defined
* Fix graphing component
* Re-add all old options from core/config.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
2021-09-20 11:47:51 +02:00
Oxan van Leeuwen
1e8e471dec
Introduce call_dump_config() indirection ( #2325 )
2021-09-20 11:16:31 +02:00
Oxan van Leeuwen
924df1e7de
Run clang-tidy against Arduino 3 ( #2146 )
...
* Add macros header with more usable Arduino version defines
* Change Arduino version checking to use our version defines
* Add missing ESP8266 check
* Rename Arduino version macro to ARDUINO_VERSION_CODE
* Upgrade clang-tidy to use Arduino 3
* Fix clang-tidy warnings
* Upgrade NeoPixelBus to upstream 2.6.7
* Use Arduino-version-appropriate API to set redirect flags
* Remove now unnecessary CLANG_TIDY ifdefs
* Add preprocessor hackery to avoid including pgmspace.h
* Bump base image to 4.1.1 and update lint
* Fix nfctag
* Fix make_unique ambiguous
* Fix ignore name
* Fix ambiguous v2
* Remove unused begin
* Cast time_t to prevent issues on platforms where time_t is 32bit
Co-authored-by: Otto winter <otto@otto-winter.com >
2021-09-13 18:55:04 +02:00
Oxan van Leeuwen
40c474cd83
Run clang-tidy against ESP32 ( #2147 )
...
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com >
Co-authored-by: Otto winter <otto@otto-winter.com >
2021-09-13 18:11:27 +02:00
Otto Winter
1b89174558
Store source package in Component for debugging ( #2070 )
2021-08-24 06:49:19 +12:00
Stefan Agner
f94c221a9a
Increase task wdt timeout for ESP32/ESP32-C3 ( #2096 )
2021-08-10 11:10:52 +02:00
Stefan Agner
501f88ca86
Avoid non-const globals and enable clang-tidy check ( #1892 )
2021-06-11 08:19:44 +12:00
Jesse Hills
5cf18235e3
Allow setting creator project name and version into code ( #1872 )
2021-06-09 13:04:00 +12:00
Otto Winter
0cc3902ffc
Add tasmota magic bits, Tasmota compat check ( #1152 )
2020-07-15 15:29:41 +02:00
Otto Winter
e9e92afc9e
Optimize application loop speed ( #860 )
...
* Optimize application loop speed
* Also check call_loop
* Remove duplicate code
* Fixes
2019-12-04 16:03:37 +01:00
Otto Winter
a6faccb4d9
Uppercase ESPHome ( #814 )
2019-10-31 20:09:07 +01:00
Otto Winter
6c8d0f1852
Change message
2019-10-20 15:57:59 +02:00
Otto Winter
36f47ade70
Add Captive Portal ( #624 )
...
* WIP: Captive Portal
* Updates
* Updates
* Lint
* Fixes
2019-06-09 17:03:51 +02:00
Otto Winter
b51cbc4207
Add central function scheduler ( #609 )
...
* Add central function scheduler
* Avoid unnecessary copies
* Lint
* Prevent more copies, store pointers
* Add never update_interval
2019-06-07 14:26:40 +02:00
Otto Winter
ebe64e24f1
Move ESPHome version define ( #607 )
...
* Move ESPHome version define
* Lint
2019-06-03 16:07:15 +02:00
Otto Winter
c53483a3b2
ESP8266 connect fixes ( #605 )
...
* ESP8266 Connection Fixes
* Update client.py
* Update mqtt_client.cpp
* Update mqtt_client.cpp
* Fix ping
* Async dump config
* Update base image to 1.7.0
* Update helpers.py
* Updates
* Update Dockerfile.lint
2019-06-03 15:21:36 +02:00
Otto Winter
15cb0e4ff3
Warn if a component does long-running work in loop thread ( #565 )
...
* Warn if a component does long-running work in loop thread
* Update application.cpp
2019-05-29 11:13:05 +02:00
Otto Winter
f811b1157c
Updates for 1.13 ( #546 )
...
* Update CI matcher
* Check Executable bit
* Quicklint
* Updates
* Allow pm1.0 and pm10.0 for PMS5003ST
Fixes https://github.com/esphome/feature-requests/issues/225
* PowerSupplyRequester
* Lint
* Include debug data in generated main.cpp
* Updates
* Auto-select bit_depth
* Updates
2019-05-12 23:04:36 +02:00
Otto Winter
6682c43dfa
🏗 Merge C++ into python codebase ( #504 )
...
## 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 ).
2019-04-17 12:06:00 +02:00