* 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
* 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>
* Remove unnecessary duplication in platformio.ini
* Add namespace to all platformio library references
* Add cmake-build-* to gitignore
They're generated by the CLion add-on for each PlatformIO environment.
Listing them all separately seems nonsensical.
* add option to use check_crc
* ignore newline before ( in parsing
* add gas delivered text for raw sensor
* fix compile issue when not listing any sensor
* make gas_mbus_id configurable
* update dsmr lib for clang
The Amphenol T6615 has a built-in calibration system which means that
the sensor could go away for a couple of seconds to figure itself out.
While this is happening, commands are silently dropped.
This caused the previous version of this code to lock up completely,
since there was no way for the command_ state machine to tick back to
the NONE state.
Instead of just breaking the state machine, which might be harmful on
a multi-core or multi-threaded device, add a timestamp and only break
the lock if it's been more than a second since the command was issued.
The command usually doesn't take more than a few milliseconds to
complete, so this should not affect things unduly.
While we're at it, rewrite the rx side to be more robust against
bytes going missing.
Instead of reading in the data essentially inline, read into a buffer
and process it when enough has been read to make progress.
If data stops coming when we expect it to, or the data is malformed,
have a timeout that sends a new command.
Co-authored-by: jas <jas@asspa.in>
* Add macros header with more usable Arduino version defines
* Change Arduino version checking to use our version defines
* Add missing ESP8266 check
* Rename Arduino version macro to ARDUINO_VERSION_CODE
* Upgrade clang-tidy to use Arduino 3
* Fix clang-tidy warnings
* Upgrade NeoPixelBus to upstream 2.6.7
* Use Arduino-version-appropriate API to set redirect flags
* Remove now unnecessary CLANG_TIDY ifdefs
* Add preprocessor hackery to avoid including pgmspace.h
* Bump base image to 4.1.1 and update lint
* Fix nfctag
* Fix make_unique ambiguous
* Fix ignore name
* Fix ambiguous v2
* Remove unused begin
* Cast time_t to prevent issues on platforms where time_t is 32bit
Co-authored-by: Otto winter <otto@otto-winter.com>
The Amphenol T6615 has a built-in calibration system which means that
the sensor could go away for a couple of seconds to figure itself out.
While this is happening, commands are silently dropped.
This caused the previous version of this code to lock up completely,
since there was no way for the command_ state machine to tick back to
the NONE state.
Instead of just breaking the state machine, which might be harmful on
a multi-core or multi-threaded device, add a timestamp and only break
the lock if it's been more than a second since the command was issued.
The command usually doesn't take more than a few milliseconds to
complete, so this should not affect things unduly.
While we're at it, rewrite the rx side to be more robust against
bytes going missing.
Instead of reading in the data essentially inline, read into a buffer
and process it when enough has been read to make progress.
If data stops coming when we expect it to, or the data is malformed,
have a timeout that sends a new command.
Co-authored-by: jas <jas@asspa.in>
* Update component (state_class and async)
* No need to specify empty device class
* Remove unused import
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>