* Add SPI lib for ESP8266 and only add lib for ESP32 when using Arduino
* Make inclusion of the SPI library unconditional
As suggested by @Oxan. Because the component requires Arduino anyway, there is no need to make the inclusion conditional.
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
* Fix Python lint issue
Co-authored-by: Maurice Makaay <account-github@makaay.nl>
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
* DSMR chunk size from 50 to 500
* Still a few CRC errors with 500, upping to 1024.
* Adding timers to measure how long processing DSMR takes
* Handle chunked output from smart meter.
* Cleaning up and commenting the new chunk handling code
* Remove debug code.
* Fixing clang-tidy issues.
* Implementing chunked reading support for encrypted telegrams.
* Remove redundant extra delay for encrypted reader
* Beware not to flush crypted telegram headers
* Use insane data timeout for testing
* Improve logging
* Make clang-tidy happy
Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
Co-authored-by: Maurice Makaay <account-github@makaay.nl>
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>
* teleinfo: handle historical mode correctly.
In historical mode, tags like PTEC leads to an issue where we detect a
timestamp wheras this is not possible in historical mode.
PTEC teleinfo tag looks like:
PTEC HP..
Instead of the usual format
IINST1 001 I
This make our data parsing fails.
While at here, make sure we continue parsing other tags even if parsing
one of the tag fails.
Signed-off-by: 0hax <0hax@protonmail.com>
* teleinfo: fix compilation with loglevel set to debug.
Signed-off-by: 0hax <0hax@protonmail.com>
Co-authored-by: Maurice Makaay <account-github@makaay.nl>
Co-authored-by: Otto winter <otto@otto-winter.com>
Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
* Update light state when transformer has finished
* Revert writing direct to output
* Correct handling of zero-length light transformers
* Allow transformers to handle zero-length transitions, and check more boundary conditions when transitioning back to start state
* Removed log.h
* Fixed race condition between LightFlashTransformer.apply() and is_finished()
* clang-format
* Step progress from 0.0f to 1.0f at t=start_time for zero-length transforms to avoid divide-by-zero
- Fixed endianness bug on tcs34725 data read
- Fixed lux adjustments based on gain, integration time and GA factor
- Added glass attenuation factor to allow using this sensor behind
semi transparent glass
Co-authored-by: Razorback16 <razorback16@users.noreply.github.com>
* 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>
* Sample from SGP40 sensor at the appropriate interval
The spg40 sensor must be sampled at 1Hz for the VOC index algorithm
to work correctly. This commit introduces a on device timer to
sample correctly seperately from updating the public state of the
component.
* Add missing configuration values for SGP40
The SGP40 component was not printing all of it's configuration in
dump_config, add in the missing store_baseline value.
* Address review comments
* Format according to clang-tidy
* Attempt 2 at clang tidy
* WIP on separating out the OTA backends.
* Split off the individual OTA backends.
* Cleanup the three backends, split into .h and .cpp.
* After successfull flashing, activate the new boot partition.
* Fix linting issues.
* Minor cleanup
Co-authored-by: Maurice Makaay <mmakaay1@xs4all.net>
Co-authored-by: Otto winter <otto@otto-winter.com>
* 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>
* Update web_server.cpp
Added viewport meta tag to web_server.cpp in order to better control layout on mobile browsers. Adds 70 characters. Vastly improves accessibility on mobile devices.
* Update web_server.cpp
split line to meet clang format requirement.
* Update web_server.cpp
Reworked line break for clangtidy
* teleinfo: avoid a buffer overflow.
When reading tag or values, data is written to the buffer even if the
size if bigger than the buffer. Add a new 'max_len' argument to
get_field() to avoid this error.
Signed-off-by: 0hax <0hax@protonmail.com>
* teleinfo: read extra timestamp field for some tags.
Some tags has an extra timestamp field that need to be read before the
actual data.
The code is inspired by Jpsy work:
29339c14f9
Signed-off-by: 0hax <0hax@protonmail.com>
* teleinfo: increase MAX_BUF_SIZE to suffice for 3-phase Linky in Standard mode.
* teleinfo: handle DATE tag correctly.
The DATE tag is special due its format and need to be handled
separately.
Fix from DrCoolzic.
Signed-off-by: 0hax <0hax@protonmail.com>
Co-authored-by: Jörg Wagner <jwagner@digilog.de>
* Adding first version of current_base cover. No Interlock yet.
* simplifying code
* Implementing malfunction protection
* Adding test
* Fixing too long lines
* Fixing test sensor names
* Adding missing id's in ade7953 tests
* Adding code owners as requested
* Fixing issue setting position when stop reached
* Fixing issue setting position when stop reached
* Black formatting
* Fixing format issues
* Fix for concurrent changes
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
On bootup the ccs811 reports that no data is available. No error flag
is set in that case. The current implementation ignores this, reads
and publishes the invalid data, which is 0xFDFD for both tvoc and co2
in my case.
This commit fixes this and does not read and publish invalid data.
* Add serveral options for SSD1306 integration
* Add SSD1305 support
(SSD1305 is similar to SSD1306, it seems SSD1305 has
brightness and color register but does not have charge pump)
* Add some description when manipulating registers
* Add flip, offset and invert option to get more compatibility
with various display modules
* Fix typo `setup_ssd1036' -> `setup_ssd1306'
* Add SSD1306 brightness validation tip
* Add more description, limit offset range
* Changes according to linter
* Fix test
* Raise error instead of using warning
* Fix wrong logic
* Remove logger
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* Remove logging import
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
* adding a scan results wifi text sensor
* Code comment
* Adding scan results to test
* Removing redundant call
* linting
* Better method to update wifi info
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Getting loop back
At least for now.
* Trying out suggestion again
* Applying cr suggestions
Co-authored-by: Otto Winter <otto@otto-winter.com>
* numeric speed added
* when dumping config for MQTT components log a note when skipped due to is_internal
* added new topics to paython code validation/generation
* reformatted with black
* formatting corrected
* use dump_config_ mechanism to skip internal components
* use dump_config_ mechanism to skip internal components
* style issues resolved
* do_dump_config removed
* formatting fixed
* formatting fixed
* Drop parent dump_config() calls
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
This allows datapoint update messages to be handled even if the overall
message is longer than required (likely that it contains trailing empty
bytes).
The specific type handling will read only the expected data lengths so
we only need to hard bail if we have too little data not too much.
* Add support for ltr390
* Fix linting errors
* Fix more linting errors
* Linting fixes continued
* Linting forever
* Another one
* Fix regression and linting
* Fix narrowing conversion
* Add test and bugfix
* Add codeowners
* Update CODEOWNERS
* Update sensor defs
* Reformatted with black
* Fixed device class import
* Update CODEOWNERS
* Update CODEOWNERS
* Adding all config options
As requested https://github.com/esphome/esphome/pull/1505#discussion_r597326897
* Moving test to different config file
test1.yml runs out of memory
* Update according to comments
* Add safety clause to reading modes
* Fix clang-tidy complaint
* Revert change to i2c component
* Fix for changes in dev
* Revert "Revert change to i2c component"
This reverts commit 2810df59e9.
Co-authored-by: Otto winter <otto@otto-winter.com>
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
The original version uses write_byte to tranfer every byte of
the display buffer which is quite extensive as every byte needs
to be waited for in the SPI driver.
This patch prepares transfers in 64-byte chunks. The result is
a visible faster redraw of the display.
Co-authored-by: Otto winter <otto@otto-winter.com>
* Add support for Waveshare 7.5 inch (B) bichromatic display (black-and-white only for now)
* Use drawing commands specific to bichromatic displays
* Fix inaccurate comment
* Fix merge error
* Formatting
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>