Commit graph

239 commits

Author SHA1 Message Date
Oxan van Leeuwen
d9c938de33
Introduce big- and little-endian integer types (#2997) 2022-01-12 16:50:03 +13:00
Oxan van Leeuwen
073828235f
Deprecate virtual methods to set entity properties (#3021) 2022-01-10 13:32:39 +01:00
Oxan van Leeuwen
6383eca54a
Clean-up random helper functions (#3022) 2022-01-10 13:50:26 +13:00
Sergey Dudanov
9a70bfa471
New Midea IR component, improvements and fixes (#2847)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2022-01-10 11:47:19 +13:00
Valentin Ochs
b406c6403c
Create new kalman_combinator component (#2965) 2022-01-09 23:44:36 +01:00
Oxan van Leeuwen
499625f266
Convert is_callable to a backport of std::is_invocable (#3023) 2022-01-10 11:07:37 +13:00
Oxan van Leeuwen
07e790f900
Drop uint{32,64}_to_string() helper functions (#3009) 2022-01-06 16:36:11 +01:00
Oxan van Leeuwen
640142fc0c
Introduce str_lower_case() and str_upper_case() helpers (#3008) 2022-01-06 16:35:59 +01:00
Oxan van Leeuwen
5c339d4597
Convert clamp() helper to backport of std::clamp() (#3010) 2022-01-07 00:56:10 +13:00
Oxan van Leeuwen
a4931f5d78
Clean-up reverse_bits helpers (#3011) 2022-01-07 00:54:58 +13:00
Oxan van Leeuwen
e5775cf812
Introduce bit_cast() backport (#2991) 2022-01-04 10:14:57 +01:00
Oxan van Leeuwen
5143a5b5c5
Use to_string() from STL when available (#2992) 2022-01-03 23:30:03 +01:00
Oxan van Leeuwen
dbc2812022
Improve PSRAM support (#2884) 2022-01-04 10:35:15 +13:00
David Buezas
9124d9d6e6
Change unset ESPHOME_LOG_LEVEL fallback to NONE (#2982)
Co-authored-by: David Buezas <david.buezas@klarna.com>
2022-01-03 18:58:35 +01:00
Oxan van Leeuwen
beeb0c7c5a
Introduce hex parsing & formatting helper functions (#2882) 2021-12-13 09:15:23 +13:00
Oxan van Leeuwen
6df1d5222d
Drop unused xSemaphoreWait define (#2888) 2021-12-08 12:46:36 +13:00
Oxan van Leeuwen
6fe4ff7f85
Drop len parameter from parse_number() (#2883) 2021-12-08 08:46:25 +13:00
Oxan van Leeuwen
12467a18e6
Feed watchdog when no component loops (#2857) 2021-12-07 07:24:20 +13:00
Jesse Hills
f0bcf81a98
Add a simple helper to remap values (#2850) 2021-12-02 09:23:11 +01:00
Oxan van Leeuwen
54106179a1
Set ESP32 watchdog to loop task (#2846) 2021-12-02 09:05:42 +13:00
Oxan van Leeuwen
607601b3a4
Enable a bunch of clang-tidy checks (#2149) 2021-12-02 09:03:51 +13:00
Jesse Hills
b5639a6472
Add support for button entities (#2824) 2021-11-30 08:00:51 +13:00
mechanarchy
6f07421911
Optionally show internal components on the web server (#2627)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2021-11-29 16:52:20 +01:00
anatoly-savchenkov
cae283dc86
Fixed data type inside fast_random_8() routine (#2818) 2021-11-29 08:31:15 +13:00
Oxan van Leeuwen
10a2a7e0fc
Fix parsing numbers in Anova (#2816) 2021-11-29 08:00:29 +13:00
Oxan van Leeuwen
3637be251e
Fix parsing numbers from null-terminated buffers (#2755) 2021-11-26 09:00:49 +13:00
Oxan van Leeuwen
897277992b
Introduce str_snprintf helper function (#2780) 2021-11-23 20:30:49 +13:00
Martin
448e1690aa
Add retry handler (#2721)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2021-11-18 11:59:40 +13:00
Oxan van Leeuwen
5404163be0
Clean-up MAC address helpers (#2713) 2021-11-15 15:48:16 +01:00
Oxan van Leeuwen
66cebfc992
Restore InterruptLock on wifi-less ESP8266 (#2712) 2021-11-15 08:05:11 +13:00
Jesse Hills
0372e12b81
Defines tidy (#2696)
* Move webserver defines inside arduino block

* Move esp8266 flash define

* Move prometheus define
2021-11-11 10:56:54 +01:00
Maurice Makaay
e99af991ec
Uart debugging support (#2478)
Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
Co-authored-by: Maurice Makaay <account-github@makaay.nl>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-11-11 11:34:17 +13:00
Jesse Hills
5ff7c8418c
Implement Improv via Serial component (#2423)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-11-11 08:55:45 +13:00
Oxan van Leeuwen
99c775d8cb
Introduce encode_value/decode_value() template functions (#2662) 2021-11-10 19:44:01 +01:00
Oxan van Leeuwen
4d43396835
Clean-up string sanitation helpers (#2660) 2021-11-10 19:42:41 +01:00
Oxan van Leeuwen
c422b2fb0b
Introduce byteswap helpers (#2661)
* Backport std::byteswap() in helpers.h

* Introduce convert_big_endian() function

* Use convert_big_endian() in i2c byte swap functions
2021-11-10 19:40:18 +01:00
Oxan van Leeuwen
d8e33c5a69
Add repeat action for automations (#2538)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-11-11 07:30:07 +13:00
Oxan van Leeuwen
15f9677d33
Introduce parse_number() helper function (#2659) 2021-11-11 07:15:06 +13:00
Carlos Garcia Saura
875b803483
Remove "delay_microseconds_accurate()" and improve systemwide delayMicroseconds() (#2497) 2021-11-10 16:22:00 +13:00
Jesse Hills
3c0414c420
Add Entity categories for Home Assistant (#2636) 2021-11-08 07:24:52 +13:00
Guillermo Ruffino
d536509a63
Allow esp8266 to compile with no wifi (#2664) 2021-11-05 10:52:38 +13:00
Jesse Hills
d8b3af3815
Expose webserver_port to the native API (#2640) 2021-11-01 09:33:04 +13:00
Alex Iribarren
0d3e6b2c4c
Expose web_server port via the API (#2467) 2021-10-28 11:46:55 +13:00
Otto Winter
8e77e3c685
Fix glue code missing micros() (#2623) 2021-10-23 19:25:53 +02:00
Otto Winter
1a6a063e04
Move default build path to .esphome directory (#2586) 2021-10-23 12:38:57 +02:00
Oxan van Leeuwen
f7b3f52731
Limit hostnames to 31 characters (#2531) 2021-10-22 12:09:47 +02:00
Otto Winter
68c8547067
Add IDF support to dallas (#2578) 2021-10-21 22:48:28 +02:00
Oxan van Leeuwen
27d7d7ca69
Fix old-style arduino_version on ESP8266 and with magic values (#2591) 2021-10-21 19:56:47 +02:00
Oxan van Leeuwen
c0fc5b48ae
Fix pin/component switchup in SX1509 pin configuration (#2593) 2021-10-21 19:55:19 +02:00
Otto Winter
f41f7994a3
Arduino global delay/millis/... symbols workaround (#2575) 2021-10-21 14:20:23 +02:00
Oxan van Leeuwen
94d518a418
Replace framework version_hint with source option (#2529) 2021-10-15 22:07:05 +02:00
Maurice Makaay
384f8d97d8
OTA firmware MD5 check + password support for esp-idf (#2507)
Co-authored-by: Maurice Makaay <account-github@makaay.nl>
2021-10-15 22:06:32 +02:00
Oxan van Leeuwen
c82d5d63e3
Move TemplatableValue helper class to automation.h (#2511) 2021-10-15 22:05:11 +02:00
Carlos Garcia Saura
859e508392
change millis() to micros() in feed_wdt for 3ms check (#2492) 2021-10-13 18:50:27 +02:00
Jesse Hills
34db9d9ef2
Add optional timeout for wait_until action (#2282) 2021-10-13 08:23:24 +13:00
Paul Monigatti
471b82f727
EntityBase Refactor (#2418)
* Renamed Nameable to EntityBase (cpp)

* Renamed NAMEABLE_SCHEMA to ENTITY_BASE_SCHEMA (Python)

* Renamed cg.Nameable to cg.EntityBase (Python)

* Remove redundant use of CONF_NAME from esp32_touch

* Remove redundant use of CONF_NAME from mcp3008

* Updated test

* Moved EntityBase from Component.h and Component.cpp

* Added icon property to EntityBase

* Added CONF_ICON to ENTITY_BASE_SCHEMA and added setup_entity function to cpp_helpers

* Added MQTT component getters for icon and disabled_by_default

* Lint

* Removed icon field from MQTT components

* Code generation now uses setup_entity to setENTITY_BASE_SCHEMA fields

* Removed unused import

* Added cstdint include

* Optimisation: don't set icon if it is empty

* Remove icon from NumberTraits and SelectTraits

* Removed unused import

* Integration and Total Daily Energy sensors now inherit icons from their parents during code generation

* Minor comment correction

* Removed redundant icon-handling code from sensor, switch, and text_sensor

* Update esphome/components/tsl2591/tsl2591.h

Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>

* Added icon property to binary sensor, climate, cover, and fan component tests

* Added icons for Binary Sensor, Climate, Cover, Fan, and Light  to API

* Consolidated EntityBase fields in MQTT components

Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2021-10-10 10:37:05 +02:00
Otto Winter
8be4086224
Always upload using esptool (#2433) 2021-10-04 16:59:15 +02:00
Maurice Makaay
c89018a431
Option to ignore CRC for EFuse MAC address (#2399)
* Accept changes as proposed by black.

* Added test and implemented optional correctly.

* Disable PHY RF full calibration (because it calls the breaking MAC retrieval function).

* Disable CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE instead of enable, dummy!

* Rename CONF_IGNORE_EFUSE_MAC_CRC to CONF_ESP32_IGNORE_EFUSE_MAC_CRC.

* Removed unused import.

* Fix ordering of constants.

* Moved all MAC address logic to core helpers.

* Use pretty MAC address for the log.

* Use standard MAC formatter function for debug component.

* Fix clang-formatting.

* Fix clang-formatting.

* Brought wording of comments in line with other function-describing comments.

* Processed code review by @OttoWinter

* Add USE_ESP32_IGNORE_EFUSE_MAC_CRC to defines.h

Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
2021-09-30 18:08:15 +02:00
irtimaled
c39ac9edfe
Support HSV-based color support on tuya light (#2400)
* fix: stop tuya light state getting reset

* fix typo

* Support for HSV color in Tuya

* Clamp formatting
2021-09-28 22:19:17 +02:00
Paul Monigatti
2b9054d3b2
Initialised ESPPreferenceObject::backend_ to nullptr (#2411) 2021-09-28 16:26:46 +02:00
Oxan van Leeuwen
5596751c2c
Add str_sprintf function that returns std::string (#2408) 2021-09-28 10:24:55 +13:00
Otto Winter
45940b0514
Dashboard node import and render in browser (#2374) 2021-09-27 10:10:53 -07:00
irtimaled
7246f42a8e
Tuya rgb support (#2278)
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-09-26 21:34:06 +13:00
Otto Winter
5342edf04a
Misc fixes for esp-idf (#2386) 2021-09-25 10:05:32 +02:00
Otto Winter
8503e08ee6
Fix InterruptLock on ESP-IDF (#2388) 2021-09-25 09:14:07 +02:00
Otto Winter
aec02afcdc
Fix clang-tidy header filter (#2385)
* Fix clang-tidy header filter

* Allow private members

* Fix clang-tidy detections

* Run clang-format

* Fix remaining detections

* Fix graph

* Run clang-format
2021-09-24 18:02:28 +02:00
Oxan van Leeuwen
0406e27100
Don't generate IDs with the name of loaded integrations (#2373) 2021-09-22 19:07:57 +02:00
Alex
491f8cc611
Configurable Flash Write Interval (#2119)
Co-authored-by: Alex <33379584+alexyao2015@users.noreply.github.com>
Co-authored-by: Otto winter <otto@otto-winter.com>
2021-09-21 13:47:51 +02:00
Oxan van Leeuwen
71fc61117b
Fix duplicate defines and restore alphabetical order (#2352) 2021-09-21 16:52:01 +12: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
7452ef23b1
Add ESPHOME_VERSION_CODE define (#2324) 2021-09-20 20:16:59 +12:00
synco
945ed5d3bd
Added graphing component (#2109)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
Co-authored-by: Synco Reynders <synco@deviceware.co.nz>
Co-authored-by: Otto winter <otto@otto-winter.com>
2021-09-20 19:29:47 +12:00
dependabot[bot]
dbb195691b
Bump pylint from 2.10.2 to 2.11.1 (#2334)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Otto winter <otto@otto-winter.com>
2021-09-19 19:22:28 +02:00
Kamil Trzciński
30eca885c9
Add esp8266_disable_ssl_support: config option (#2236) 2021-09-19 18:46:17 +02:00
Oxan van Leeuwen
716039e452
Use standard version of make_unique when available (#2292) 2021-09-14 14:27:35 +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
a4867a00ea
Activate owning-memory clang-tidy check (#1891)
* Activate owning-memory clang-tidy check

* Lint

* Lint

* Fix issue with new NfcTag constructor

* Update pointers for number and select

* Add back the NOLINT to display buffer

* Fix merge

* DSMR fixes

* Nextion fixes

* Fix pipsolar

* Fix lwip socket

* Format

* Change socket fix

Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2021-09-13 11:31:02 +02:00
Oxan van Leeuwen
d594a6fcbc
Store strings only used for logging in flash (#2274)
Co-authored-by: Otto winter <otto@otto-winter.com>
2021-09-13 09:48:52 +02:00
Oxan van Leeuwen
0cd24c629a
Compatibility with clang-tidy v14 (#2272) 2021-09-13 09:35:55 +02:00
Oxan van Leeuwen
f31e0532c4
Untangle core headers (part 1) (#2276) 2021-09-13 09:33:29 +02:00
Otto Winter
e5051eefbc
API encryption (#2254) 2021-09-09 09:22:47 +12:00
Sergey V. DUDANOV
4e120a291e
Midea support v2 (#2188) 2021-09-09 09:10:02 +12:00
Otto Winter
f924e80f43
Socket component (#2250) 2021-09-08 15:41:42 +12:00
Peter van Dijk
7f76f3726f
LOG_UPDATE_INTERVAL: correctly report "never" (#2240) 2021-09-06 14:47:13 +12:00
Otto Winter
1b89174558
Store source package in Component for debugging (#2070) 2021-08-24 06:49:19 +12:00
Oxan van Leeuwen
d71996e58d
Reduce static RAM usage (#2140) 2021-08-23 20:43:54 +12:00
Oxan van Leeuwen
5ec9bb0fb5
Clean-up constant definitions (#2148) 2021-08-23 19:21:30 +12:00
Oxan van Leeuwen
8cc3cbb22e
Add macros header with more usable Arduino version defines (#2145) 2021-08-23 19:19:21 +12:00
Dave T
1771e673d2
Warn if underscore character is used in hostname (#2079)
* Prevent underscore character being used in 'name'.

* Restrict underscores in hostnames, not all names.

* Use hostname validator for node name.

* Allow underscore in hostname but warn once.

* Add renaming instructions link to warning.

* Point underscore warning to FAQ section

Co-authored-by: Otto Winter <otto@otto-winter.com>

Co-authored-by: Otto Winter <otto@otto-winter.com>
2021-08-10 14:14:42 +02:00
Stefan Agner
f94c221a9a
Increase task wdt timeout for ESP32/ESP32-C3 (#2096) 2021-08-10 11:10:52 +02:00
Oxan van Leeuwen
c6c2842bdb
Always abort on allocation when out-of-memory (#2129)
Co-authored-by: Otto winter <otto@otto-winter.com>
2021-08-10 10:46:46 +02:00
Oxan van Leeuwen
553df1d57b
Don't mark COLOR_* constants as static in header (#2141) 2021-08-10 09:53:48 +02:00
Jesse Hills
93796491af
Allow entities to be disabled by default in HA (#2113)
Co-authored-by: Otto Winter <otto@otto-winter.com>
2021-08-10 13:45:31 +12:00
Stefan Agner
5bfac5ec09
Allow multiple unnamed libraries (#2132) 2021-08-07 23:16:34 +12:00
Oxan van Leeuwen
20f7eb7327
Add version argument to ESPDEPRECATED macro (#2116) 2021-08-04 10:43:01 +12:00
Oxan van Leeuwen
441d5bd44d
Migrate COLOR constants to Color class & disallow implicit conversions to Color (#2093)
Co-authored-by: Xo Wang <xo@geekshavefeelings.com>
2021-08-04 09:21:57 +12:00
Jesse Hills
76991cdcc4
Add select entities and implement template select (#2067)
Co-authored-by: Otto Winter <otto@otto-winter.com>
2021-08-02 20:00:51 +12:00
Oxan van Leeuwen
5983ccc55c
Color mode implementation (#2012) 2021-07-29 19:11:56 +02:00