src/esphome/components/logger/logger.cpp: In member function 'void esphome::logger::Logger::pre_setup()':
src/esphome/components/logger/logger.cpp:142:29: error: 'Serial2' was not declared in this scope
this->hw_serial_ = &Serial2;
For printf formatting, a check is done to see if the number of
arguments matches the number of printf formatting placeholders.
The escape code `%%` that is used for representing a literal `%`
is also counted as a placeholder, but no argument will be provided
for that one.
This makes it impossible to use something like `("%f%%", percentage)`
in the code. In such case, one gets the error:
`Found 2 printf-patterns (%f, %%), but 1 args were given!`
This commit fixes this behavior by omitting the `%%` from the matches.
Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
* Added an option to disable mDNS
* Fixed linter issues
* Moved the enable_mdns option to WiFi and Ethernet components
* extracted common method for add mdns library
* lint
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Start of SGP40 dev
* Clean up
* Initial Commit
* VOC is working
* Fixed up sensor config
* Lint Fixes
Added in save/restore baseline
Noted original repo in header
* Lint Fixes
Added to test
* Lint Fixes
* Added additional check on restoring
* Removed double check
* Changed defines to static const double
* Changed defines to const
Do not send voc index until sensor stabilizes
* Fixed sensor stabilization message
* Fixup according to PR
* samples_read increment fix
* Fixed missing device class
* Choose a SENSOR device class
* Moved some sensors for tests
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Add fan speed percentage support to the API
* Add float fan speed percentage
* Add percentage support to automation and configuration
* Update Tuya fan
* Fix pylint warning
* Update API to use speed levels instead of percentage
* Use speed levels
* Fix type warnings
* MQTT component now converts between speed levels and enums
* Webserver now supports speed_level
* Update prometheus
* Remove low/medium/high settings from speed fan
* Remove unused enum
* Configurable speed levels for speed fan
* Remove unused import
* Rename speed_level->speed and speed_levels->speed_count
* Rename supported_speed_levels -> supported_speed_count in API and FanTraits
Field id stays the same in the protocol, so the change is not breaking for aioesphome.
* schema dump idea
accept boolean or anything default
accept null also for full dicts
added some common validators
more simple validators
support multi_conf
better handle automations
updates
updates
handle lists
removed not needed class
move to own folder
generalized for automations lists, etc
updates
updates
clean up
clean up
fix automations
made comment optional
basic docs support
added more docs
fixes docs handling
updates
updates
fix components parent
updates
updates
updates
Fix inkplate 6 registration
updates
Disable logging for vscode add on
better handle buses
keep extended order as in CONFIGs
updates
updates
updates
disable comments
moved to scripts/build_jsonschema
added configurable decorators
path handling
fix handle list_schema
fixes and cleanup
add jschema_extractor to maybe
updates
lint
no schema in git
add generated loggers list
* lint
* support pin schema
* schema dump idea
accept boolean or anything default
accept null also for full dicts
added some common validators
more simple validators
support multi_conf
better handle automations
updates
updates
handle lists
removed not needed class
move to own folder
generalized for automations lists, etc
updates
updates
clean up
clean up
fix automations
made comment optional
basic docs support
added more docs
fixes docs handling
updates
updates
fix components parent
updates
updates
updates
Fix inkplate 6 registration
updates
Disable logging for vscode add on
better handle buses
keep extended order as in CONFIGs
updates
updates
updates
disable comments
moved to scripts/build_jsonschema
added configurable decorators
path handling
fix handle list_schema
fixes and cleanup
add jschema_extractor to maybe
updates
lint
no schema in git
add generated loggers list
* lint
Add the Lolin32 Lite and TTGO T7 board names so that esphome can be
built for those boards. There's nothing special about them. The
espressif/arduino-esp32 and platformio/platform-espressif32 projects
have both merged definitions for those boards recently.
* changed color temp from float to int
Changed cold_white_temperature and warm_white temperature from a float to an integer. This makes home assisting show it correctly in the color temperature slider. If it is set to float home assistant show something like 470.8390000283847829304845 in the slider which provides an ugly ui and color temperature to as a decimal is invalid anyway.
* Update esphome/components/rgbww/light.py
* Update esphome/components/rgbww/light.py
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Added support for SM300D2 sensor module
* Fixed lint errors due to added tvoc config
* add device class
Co-authored-by: Guillermo Ruffino <glm.net@gmail.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
* Added samsung36 ir protocol
* Make linter happy
* Added test and fixed python failure
* Sorry for the commits but linter was still not happy :)
* Okay have to run script/clang-format -i
Co-authored-by: tuxBurner <tuxBurner@boggo.de>
* Added vl53l0x change address and timeout
* Added vl53l0x change address and timeout
* vl53l0x code cleanup and update test
* remove executable bit
* lint code cleanup
* code review fixes including timeout default to 10ms
* Code review cleanup and change a WARN log level message to DEBUG
* Fix issue where warn should be temporary
* Added name of sensor to warning message
* Fix blacklist lint issue
* Remove unused import
* Fix safe mode ota flashing under certain configurations by allowing the arduino loop to run instead of while(true)
* rename to should_enter_safe_mode
* Fix line length
* Fix safe mode ota flashing under certain configurations by allowing the arduino loop to run instead of while(true)
* rename to should_enter_safe_mode
* Fix line length
* 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
* 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>
* 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
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
* added slow mode and detach time to servo
* tidy
* and again tidy
* add change requests
* tidy
* tidy
* tidy
Co-authored-by: Andreas Hergert <andreas.hergert@otrs.com>
* Expose right webserver port using mDNS.
80 is the default value but can be changed in the config file.
Add a new define for the port.
Signed-off-by: Richard Weinberger <richard@nod.at>
* Expose prometheus service via mDNS
That way prometheus auto discovery features can find us.
Signed-off-by: Richard Weinberger <richard@nod.at>
* Initial Commit - ST7735
* Updated for CI checks
* Updated for travis build
* Travis fixes
* Travis line too long
* Travis fixes
* Fixed up travis format issues
* Travis Fixes
* Initial Commit - ST7735
* Updated for CI checks
* Updated for travis build
* Travis fixes
* Travis line too long
* Travis fixes
* Fixed up travis format issues
* Travis Fixes
* Update to new color API and added test
* Check fixes
* Fixed sid length in test
* Cleaned up whitespaces
* kbx81 recommended fixes
* test fix
* Fixes of fixes
* Fixed test1.yaml
* Fixed test1.yaml
* Changed digital pin #s to gpio
* Updated to match kbx's color names
* Typo for ST7735_INITR_MINI_160X80
* Updated 8bit color space code
Added to_rgb_332 to color.h
fixed typo
* Added in to_rgb_332,to_bgr_332, rgb_332to_rgb_556 and a more generic scale
* Fixed MADCTL
* Fixp MADCTL
* Implemented usrbgr option
updated color to support 332 bgr conversion
typo fix
* Updated to_bgr_332
* Fix up for clang
* FIx up init code. type in buffer caused overrun
* fixup protected names
* typos
* Matched use_bgr to its conf
* color.h red fix in bgr_233to_rgb_565
* Fix ST7735_INITR_MINI_160X80
* Renamed bgr_233to_bgr_565 to match its function
Color space leak in bgr_233to_bgr_565.
cleaned up init code for displays.
* Fix
* clang fix
* Started Color Conversion
* Added various bit color functions
add triadto
* lint changes
* Various fixes
* Various formatting fixes. Wish my checks worked!
* Updated color api to support different formats
removed to_rgb_565
* lint clang fixes
* Test1 fix
* test1.yaml fix
* fixed 565 in ILI9341Display
* Added CodeOwners
* Updated CODEOWNERS
* changed to to332 and to565
* Waiting for color.h changes
* Stage changes
* Removed all changes except this driver
* Moved color functions into driver
* lint changes
* Lint and removed unrelated display driver changes
* Lint changes
* Initial Commit - ST7735
* Updated for CI checks
* Updated for travis build
* Travis fixes
* Travis line too long
* Travis fixes
* Fixed up travis format issues
* Travis Fixes
* Initial Commit - ST7735
* Updated for CI checks
* Updated for travis build
* Travis fixes
* Travis line too long
* Travis fixes
* Fixed up travis format issues
* Travis Fixes
* Update to new color API and added test
* Check fixes
* Fixed sid length in test
* Cleaned up whitespaces
* kbx81 recommended fixes
* test fix
* Fixes of fixes
* Fixed test1.yaml
* Fixed test1.yaml
* Changed digital pin #s to gpio
* Updated to match kbx's color names
* Typo for ST7735_INITR_MINI_160X80
* Updated 8bit color space code
Added to_rgb_332 to color.h
fixed typo
* Added in to_rgb_332,to_bgr_332, rgb_332to_rgb_556 and a more generic scale
* Fixed MADCTL
* Fixp MADCTL
* Implemented usrbgr option
updated color to support 332 bgr conversion
typo fix
* Updated to_bgr_332
* Fix up for clang
* FIx up init code. type in buffer caused overrun
* fixup protected names
* typos
* Matched use_bgr to its conf
* color.h red fix in bgr_233to_rgb_565
* Fix ST7735_INITR_MINI_160X80
* Renamed bgr_233to_bgr_565 to match its function
Color space leak in bgr_233to_bgr_565.
cleaned up init code for displays.
* Fix
* clang fix
* Started Color Conversion
* Added various bit color functions
add triadto
* lint changes
* Various fixes
* Various formatting fixes. Wish my checks worked!
* Updated color api to support different formats
removed to_rgb_565
* lint clang fixes
* Test1 fix
* test1.yaml fix
* fixed 565 in ILI9341Display
* Added CodeOwners
* Updated CODEOWNERS
* changed to to332 and to565
* Waiting for color.h changes
* Stage changes
* Removed all changes except this driver
* Moved color functions into driver
* lint changes
* Lint and removed unrelated display driver changes
* Lint changes
* Updated with latest color api
* pulled from origin
* Updated for color.h changes
* pulled test1 from dev
* Added test
* Fix some Tuya devices not handling commands sent without delay
* Also do not report WiFi status if MCU does not support it
* Support Tuya MCU 0x1c command (obtain local time)
* Use #ifdef USE_TIME to handle optional dependency on RTC
* Rename Tuya clock config variable to time to be consistent with the codebase
* Add tuya time configuration to test4
* setup ili9341 framework
used epaper-waveshare as start
* first version working
* added models for now only M5Stack
* get_buffer_length is huge
* fill, low/high watermark, buffer tests failed.
RAM is to small for ili9341 16 bit color mode
* removed high/low watermark debug log
* added standard 2.4" TFT model
* code cleanup
* make ledpin optional
busy pin is not needed
* make bufer 1 byte to avoid the
buffer allocation error
* gitignore
* added backlight pin to dump_config
* huge speed increase
8bit color framebuffer (256 colors)
lo and high watermark for drawing to screen
* fix for images
* higher spi data rates
* Set spi data rate to 40Mhz Experimental
* fixed: formatting
fixed: the last row and column being trimmed
fixed: namings
* Update the code to use Color class
* fixed minor color things
* fixed linting
* #patch minor fixes
* fix gitignore too
* Update esphome/components/ili9341/ili9341_display.cpp
Co-authored-by: Oleg <epushiron+github@gmail.com>
* reverting the changes as it's being fixed in PR-1241
Co-authored-by: Michiel van Turnhout <qris.online@gmail.com>
Co-authored-by: Michiel van Turnhout <m.vanturnhout@exxellence.nl>
Co-authored-by: Oleg <epushiron+github@gmail.com>
* Hbridge Christmas light component
Can be used for Christmas lights that use 2 wires to run 2 different strings of lights using a hbridge driver.
* Add Test
NOTE: I am unable to test this via the docker image
* Update hbridge_light_output.h
* Update hbridge_light_output.h
* Update hbridge_light_output.h
* Update light.py
* Fixed duty as white value bug fixed
* lint changes
* Name case change
* thanks lint
The Tuya MCU keeps its own internal minimum brightness setting. This value may
not match the minimum brightness setting for ESPHome, leading to some issues:
1. Dimming is limited--on some devices the default minimum is as high as 10%,
meaning the dimmest ESPHome will go is still quite bright.
2. HA will allow a user to set a value below the MCU minimum, but the MCU will
reject it and keep the previous setting, so the UI is confusing.
This PR adds a setting to configure the datapoint for setting the MCU minimum
brightness. If the setting is set, then ESPHome will synchronize the MCU's
minimum brightness with the one configured for ESPHome on startup.
* WIP: Advanced commands for portisch firmware
* Fix string code sending
* clang formatting
* Add new rf_bridge functions to test
* Add advanced code received trigger
* Fix copy-paste mistake in the advanced sending
* Fix log message to be consistent
* clang
* Remove extra +
* fix: FastLED SPI_DATA_RATE being truncated to 8 bits
FastLED expects SPI_DATA_RATE as an uint32_t, but we had it as uint8_t.
Fix that to avoid the data rate being truncated.
* fastled: allow specifying data rate
Previously, we've just taken the default data rate from FastLED.
However, that does not always work properly. In my case, I had a
slow level shifter that couldn't keep up with the 1 MHz data
rate default for WS2801. Long cabling might also be a reason why
one might want to reduce the data rate.
This will add a new optional "data_rate" config option where one
may specify the desired data rate as a frequency:
light:
- platform: fastled_spi
chipset: WS2801
data_pin: GPIO23
clock_pin: GPIO22
data_rate: 500kHz
num_leds: 178
* Add support for WPA2-EAP enterprise WiFi to ESP8266s.
This is fundamentally the same as on ESP32s only with different function names.
Update config checker to remove requirement for ESP32 for EAP authentication.
* Fix indent for clang
* Move pn532 -> pn532_spi
Add pn532_i2c
* Update i2c address
* Always wait for ready byte before reading
* Generalise the pn532 a bit more so less code in i2c and spi implementations
* clang
* Add pn532_i2c to test1
* Try to get setup working
* Fixes
* More updates
* Command consts
* A few upgrades
* Change text back to include 'new'
* Fix data reading
* Added tmp102 temperature sensor support
* Added sensor to test3.yaml
* Moved docstring to component root
* Tweak formatting from clang-format script
* Removed extra newline at the end of the file to satisfy pylint
* Update schema to match that of other single-value sensors
In ESPHome, sensors that only expose one value do not put the sensor under another key.
* Add missing import
* Fix test after structural change to component
* removed unused setting
* Update esphome/components/tmp102/tmp102.cpp
Co-authored-by: Otto Winter <otto@otto-winter.com>
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Incorrect time delay conversion breaks remote_transmitter_esp8266.cpp
I'm unsure why the conversion from microseconds into whole millseconds and remaining microseconds is done using a value of 16383, rather than 1000. This breaks the "on", "off" times, as well as the repeat wait_time if the period is more than 16383 microseconds.
I have confirmed behaviour with an oscilloscope. See https://community.home-assistant.io/t/infrared-remote-transmitter-not-working/232825
* Update esphome/core/helpers.cpp
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* fix config check in OnlyWith configuration helper
OnlyWith configuration helper check now verifies whether a component
is configured in any of the packages not only in raw configuration
* fix C0301(line-too-long) pylint in imports
* fix flake8 (E127) over-indented line
* Fix Xiaomi merged packet parsing
solves #1500
* renamed variables and updated payload and value checking
* renamed function and parameter
* add function to header
* changed log message
* Incorrect time delay conversion breaks remote_transmitter_esp8266.cpp
I'm unsure why the conversion from microseconds into whole millseconds and remaining microseconds is done using a value of 16383, rather than 1000. This breaks the "on", "off" times, as well as the repeat wait_time if the period is more than 16383 microseconds.
I have confirmed behaviour with an oscilloscope. See https://community.home-assistant.io/t/infrared-remote-transmitter-not-working/232825
* Update esphome/core/helpers.cpp
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* fix config check in OnlyWith configuration helper
OnlyWith configuration helper check now verifies whether a component
is configured in any of the packages not only in raw configuration
* fix C0301(line-too-long) pylint in imports
* fix flake8 (E127) over-indented line
* Fix Xiaomi merged packet parsing
solves #1500
* renamed variables and updated payload and value checking
* renamed function and parameter
* add function to header
* changed log message
This patch fixes faulty behaviour when both, invert and min_power/max_power
are set for a float output (e.g. PWM). The current code scales the output
level to the range [min_power, max_power] and subsequently inverts the value.
This leads to values that are outside the range [min_power, max_power].
This patch fixes the problem by inverting the requested level first and then
scaling it to the interval [min_power, max_power].
Co-authored-by: Thomas Niederprüm <niederp@physik.uni-kl.de>
* add reverse option
* Update max7219digit.cpp
adding space for formatting
* Update esphome/components/max7219digit/display.py
Copy past error...
Co-authored-by: Otto Winter <otto@otto-winter.com>
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Fix post-setup brightness control
* Add turn_on() and turn_off() methods
* Added is_on() method
* Set brightness later in setup()
* Use clamp() for brightness validation
* Fix post-setup brightness control
* Add turn_on() and turn_off() methods
* Added is_on() method
* Set brightness later in setup()
* Use clamp() for brightness validation