* Add support for SSD1306 OLED display 0.42inch 64x32 and fix a typo in __init__.py preventing flip functions to operate as intended
* convert tab to spaces
* fix typo on filename for __init__.py
* 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>