* Add constants for sensor device_class
* Add device_class attribute to sensor component
* Add device_class attribute to sensor class
* Add device_class to mhz19 temperature sensor
* Add device_class to sensor in api component
* Add test for device_class of sensor
* Rename DEVICE_CLASS_NONE to DEVICE_CLASS_EMPTY for consistency
* Make optional attributes of sensor component truly optional
* show validation source location for id
* show validation source location for lambda
* refactor lambda #line position
* account content offset on made lambdas
* lint
* remove redundant check
* replace delay by delayMicroseconds in delay_microseconds_accurate
* Use delay(0) to let wifi and os function run
* Linting
* Remove unneeded delayMicroseconds, keep it for low usec
* Avoid micros() overflow issue
* Added options to control pulse duration on Climate_IR_LG Component. This is usefull as some equipment from LG (Tested in Brazil AC unit) use different pulse durations in their protocol.
* Fixed C++ linting issues
* Fixed Python linting issues
* fixed spaces on parameters linting issue
* fixed spacing clint
* Removed unused constants
* Removed wrong spacing
* Changed int to time period in all new fields
Changed cv._int to cv.positive_time_period_microseconds in the time definitions for the new options
* Fixed the time defaults
Time defaults fixed for Climate_IR_LG.
* Use #line directives in generated C++ code for lambdas
The #line directive in gcc is meant specifically for pieces of imported
code included in generated code, exactly what happens with lambdas in
the yaml files: https://gcc.gnu.org/onlinedocs/cpp/Line-Control.html
With this change, if I add the following at line 165 of kithen.yaml:
- lambda: undefined_var == 5;
then "$ esphome kitchen.yaml compile" shows the following:
INFO Reading configuration kitchen.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running: platformio run -d kitchen
<...>
Compiling .pioenvs/kitchen/src/main.cpp.o
kitchen.yaml: In lambda function:
kitchen.yaml:165:7: error: 'undefined_var' was not declared in this scope
*** [.pioenvs/kitchen/src/main.cpp.o] Error 1
== [FAILED] Took 2.37 seconds ==
* Silence gcc warning on multiline macros in lambdas
When the \ is used at the end of the C++ source in a lambda (line
continuation, often used in preprocessor macros), esphome will copy that
into main.cpp once as code and once as a // commment. gcc will complain
about the multiline commment:
Compiling .pioenvs/kitchen/src/main.cpp.o
kitchen.yaml:640:3: warning: multi-line comment [-Wcomment]
Try to replace the \ with a "<cont>" for lack of a better idea.
* Add Inkplate 6 support
Inkplate 6 is e-paper display based on ESP32. This commit adds support for integrating Inkplate 6 into the ESPHome. Find more info here: inkplate.io
* Greyscale working
* Update inkplate.h
* Fix formatting
* Formatting
* Update esphome/components/inkplate6/display.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Update esphome/components/inkplate6/display.py
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Fix some lint errors
Ignore some lint errors
Only allow on ESP32
* Update the codeowners file
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Without the flag lwip only holds a reference to the supplied buffers and the reference must be valid until the tcp ack is received. This can't be guaranteed for stack allocated buffers
* Fixed half half step mode
Half step mode originally had second and third steps mixed up for output A.
https://github.com/esphome/issues/issues/1655
* Updated half step mode to have no branching
Code based off comments in PR: https://github.com/esphome/esphome/pull/1397#issuecomment-739413973
* removed variable declarations in the switch/case
Oops. No explicit declarations.
Rearranged to be tidier, same output sequence.
* Fixed typo bracket
Minor typo fixed - logic complete to do branchless half stepping.
* Format the brackets to satisfy clang