* 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>
* 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>