* 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: 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:
https://github.com/Jpsy/esphome/commit/29339c14f96ed7cf7a68911ca7d9bd5eb94955d6
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>