* Incorrect time delay conversion breaks remote_transmitter_esp8266.cpp
I'm unsure why the conversion from microseconds into whole millseconds and remaining microseconds is done using a value of 16383, rather than 1000. This breaks the "on", "off" times, as well as the repeat wait_time if the period is more than 16383 microseconds.
I have confirmed behaviour with an oscilloscope. See https://community.home-assistant.io/t/infrared-remote-transmitter-not-working/232825
* Update esphome/core/helpers.cpp
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* fix config check in OnlyWith configuration helper
OnlyWith configuration helper check now verifies whether a component
is configured in any of the packages not only in raw configuration
* fix C0301(line-too-long) pylint in imports
* fix flake8 (E127) over-indented line
* Fix Xiaomi merged packet parsing
solves #1500
* renamed variables and updated payload and value checking
* renamed function and parameter
* add function to header
* changed log message
* Incorrect time delay conversion breaks remote_transmitter_esp8266.cpp
I'm unsure why the conversion from microseconds into whole millseconds and remaining microseconds is done using a value of 16383, rather than 1000. This breaks the "on", "off" times, as well as the repeat wait_time if the period is more than 16383 microseconds.
I have confirmed behaviour with an oscilloscope. See https://community.home-assistant.io/t/infrared-remote-transmitter-not-working/232825
* Update esphome/core/helpers.cpp
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* fix config check in OnlyWith configuration helper
OnlyWith configuration helper check now verifies whether a component
is configured in any of the packages not only in raw configuration
* fix C0301(line-too-long) pylint in imports
* fix flake8 (E127) over-indented line
* Fix Xiaomi merged packet parsing
solves #1500
* renamed variables and updated payload and value checking
* renamed function and parameter
* add function to header
* changed log message
This patch fixes faulty behaviour when both, invert and min_power/max_power
are set for a float output (e.g. PWM). The current code scales the output
level to the range [min_power, max_power] and subsequently inverts the value.
This leads to values that are outside the range [min_power, max_power].
This patch fixes the problem by inverting the requested level first and then
scaling it to the interval [min_power, max_power].
Co-authored-by: Thomas Niederprüm <niederp@physik.uni-kl.de>
* add reverse option
* Update max7219digit.cpp
adding space for formatting
* Update esphome/components/max7219digit/display.py
Copy past error...
Co-authored-by: Otto Winter <otto@otto-winter.com>
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Fix post-setup brightness control
* Add turn_on() and turn_off() methods
* Added is_on() method
* Set brightness later in setup()
* Use clamp() for brightness validation
* Fix post-setup brightness control
* Add turn_on() and turn_off() methods
* Added is_on() method
* Set brightness later in setup()
* Use clamp() for brightness validation
* Fix dashboard logout button and py3.8 removed hmac.new digestmod
* Just use SHA256
No reason to use HMAC here, as authenticity is not an issue
* Wrong branch
* Clenaup
* Started to work on packages feature
* Added some more validation to packages config
* Fixed some linter warnings
* Updated tests
* Reordered consts to avoid linter error
* Reordered consts to avoid linter error
* Refactored test yaml files to integrate into existing test pipeline
Co-authored-by: Dmitry Berezovsky <dmitry.berezovsky@logicify.com>
* Added 7.5inchV2
* Added 7.5inV2
* Added 7.5inch_V2
* fixed Display function
* Inverted bytecode
Added ~() to invert the bytecode and make the screen look black text on white background
* Hoping to keep Travis happy with blank lines
* more travis hacking
* travis happy?
* wow
* gfhj
* Start support for tuya climate devices
* Add tuya climate to test4
* Fix lint and cast
* Remove blank line
* Try to display accurate action based on observed behaviour.
* Fix action when in off mode
* Improve config dump
* merge use of CONF_SWITCH_DATAPOINT
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* SSD1325 grayscale support implemented
* Linted
* Fix garbage on display at power-up
* Rebase
* Linted
* Add brightness control, CS fixes
* Fix up SSD1327 init
* Add turn_on() and turn_off() methods
* Set brightness later in setup(), logging tweak
* Added is_on() method
* Added grayscale image support
* Updated to use Color, 1327 GS fix
* Add config generation and validation to support various WPA2-EAP authentication methods.
Config generate validates that all the required parameters are set in valid combinations.
In the event of EAP-TLS, the private key is matched to the certificate to check for pasting errors.
Add EAPAuth struct to header.
Add eap_auth property to WiFiAP with getters/setters.
* Add C++ code for setting WPA2-EAP authentication.
* Fix config for x509 EAP-TLS authentication.
* Fix a few linting issues.
* Fix a couple more linting issues that only showed up in CI
* Remove stray character.
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Move stop/is_running implementation to Action base class
Try to fix issue #1105. Until now if an UpdateComponentAction, a
LambdaAction, or any action that can contain those inside their
"else" or "then" action lists, resulted in a call to script.stop on
the script that contains them, the script would continue running,
because they didn't implement a stop() method. Basically only
the asynchronous ones did: DelayAction, WaitUntilAction and
ScriptWaitAction.
With this change num_running_ in Action replaces
DelayAction::num_running_ and WaitUntilAction::triggered_ to provide
the same is_running logic to other actions.
* Make some Action methods protected
Apparently play()/stop() etc. are not meant to be called directly by
users of the class and if they're called directly that would not give
the expected result for the classes that have an empty play().
Make all methods except play_complex, stop_comples and is_running
protected. While there also make RemoteTransmitterActionBase::encode
protected.
* lint
* format
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Update vl53l0x_sensor.cpp
Changed values for long range support
* added true / false option for long range detection
* debug missing ,
* further debug option long_range
* Travis updates
* added travis tests
* Travis removed space should be good now
* update to trigger travis again
* added old test files for PR
* added vl5310x sensor for compile testing
* fix variable names
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* TFT-LCD ST7789V of ESP32 TTGO.
This patch allows you to use TFT-LCD ST7789V of ESP32 TTGO
* Lots of polish and a few tweaks
* Add test
* Add color to core, take 1
* Where did those tabs come from?
* Fix lines too long
* Added color component
* Linted
* Rebase, SPI fix, test
* Shuffle bits
* One more thing...oops
* Image type fix...oops
* Make display_buffer use Color
* Fix BGR/RGB, remove predefined colors
* Fix all the things
* renamed colors to color
* migrate max7219
Co-authored-by: musk95 <musk95@naver.com>
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* push final files
* Update max7219digit.cpp
reenter small bug fix on uint8 declaration
* small debug
* set max offset to 100
* remove unwanted file
* Update font file to make travis happy
* travis update
* further progress in keeping Yarvis happy
* travis font
* travis will never be satisfied but one step ahead
* YARVIS TAKE 10000000
* never ending yarvis
* Almost there with Yarvis
* removed double declaration YARVIS
* added namespace to font file (TRAVIS)
* almost there last changes for YARVIS
* further travis updates
* removed files for travis
* fix display.py length of line travis remark
* further update on display.py
* file delete travis requirement
* final entry for travis?
* Some further debug on max offset
* Travis updates
* scroll_left_new
* 90degreesrotate
* added option to config rotate90
* four orientations for the chips
* new setup for scroll
* replaced small bug missing {}
* debug changed int8 to int16 on scroll function
* removed small merge failure
* travis updates round 1
* travis updates round 2
* travis details round 3
* added options to set scroll parameters in yaml conf
* removed ttf and png to satisfy travis
* travis update
* travis updates
* travis
* further updates after input from @glmnet
* remove deleted comments
* Added ENUM TYPE to config file
* change in test file
* removed test files
* updates for pull request
* Typing error removed
* travis update
* PR updates travis
* Update test3.yaml
* Update test3.yaml
* update device schema as per #988
* Delete partitions.csv
* repair on image display and invert routine
* further update and a bit of cleanup
* added writing 0 in draw pixel
* small deletion error
* travis updates
* Update max7219digit.cpp
adding intensity value to dynamically set value
* Update max7219digit.h
adding option for intensity
* remove some files from tests
* add support for SN74HC595 shift register
* fix linter errors
* more linter reported issues fixed
* hopefully last linter error cleanup
* one more linter fix
* looks like the linter is always keeping stuff for later, is this the final fix?
* add test
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
Also removed new line formatting tidy as it requires a bit of memory which might not be available.
* Use suitably scoped char for log newline stripping
* fix formatting
* Better fix for OOM logging crash
* Limit to ESP32 only
* format changes
* Add LG Climate ir
* Add LG Climate IR
* Add LG Climate IR
* Add LG Climate IR
* Add LG Climate IR
* Add LG Climate IR
* Add LG Climate IR
Co-authored-by: Sangheon Heo <square99@SangHeonui-Macmini.local>
* Fix receive and transmit for RC5-protocol
Receive did not work as a sequence of two high or low puleses are detected as one long pulse. Transmit was extended to respect the field bit in order to enable codes up to 127.
* Fix code formatting
* Add fan support to bang bang controller
* Fix heat-only and cool-only modes
* Added support for all climate actions and modes
* Fix up some comments
* Fan_only mode behavior tweak
* Updated test
* Updated test, take 2
* Add accessor methods for easier use in lambadas
* Revert "Add accessor methods for easier use in lambadas"
This reverts commit f15713129cd5587242a08ad1e2ee37cbf075aa03.
Don't code late at night when sleepy.
* Fix single/dual setpoint support
* Linted
* Properly implement single-point, validation improvements
* Another quick fix...sigh
* Update tests
* Update tests, take 2
* Revert "Update tests, take 2"
This reverts commit 71bb7fccc53d95a7d221e80ea0a931fb3cfd9a0c.
Nope.
* Revert "Update tests"
This reverts commit 42044291efaaf09858f29ab27bbc3aa9e8b80ee9.
Nope 2.
* Updated/fixed tests
* Revert "Updated/fixed tests"
This reverts commit a1a5b1c7db9a240b9da668b6e48abe1dd7910777.
Taking a different approach.
* Revert "Another quick fix...sigh"
This reverts commit 6b1955724a2de3c2d1534ec206dd5794bbb5f568.
Taking a different approach.
* Revert "Properly implement single-point, validation improvements"
This reverts commit f5bfff099e1dc58edd3898da8655c147adde2301.
Taking a different approach.
* Single/dual set point fixes, full validation
* Fix test
* Fix restore-on-boot, clean up comments
* Decouple two-point/auto operation, more polish
* One last away mode tweak
* Added set point validation
* Clean up over-publishing, always call action after boot
* Add fan support to bang bang controller
* Fix heat-only and cool-only modes
* Added support for all climate actions and modes
* Fix up some comments
* Fan_only mode behavior tweak
* Updated test
* Updated test, take 2
* Add accessor methods for easier use in lambadas
* Revert "Add accessor methods for easier use in lambadas"
This reverts commit f15713129cd5587242a08ad1e2ee37cbf075aa03.
Don't code late at night when sleepy.
* Fix single/dual setpoint support
* Linted
* Properly implement single-point, validation improvements
* Another quick fix...sigh
* Update tests
* Update tests, take 2
* Revert "Update tests, take 2"
This reverts commit 71bb7fccc53d95a7d221e80ea0a931fb3cfd9a0c.
Nope.
* Revert "Update tests"
This reverts commit 42044291efaaf09858f29ab27bbc3aa9e8b80ee9.
Nope 2.
* Updated/fixed tests
* Revert "Updated/fixed tests"
This reverts commit a1a5b1c7db9a240b9da668b6e48abe1dd7910777.
Taking a different approach.
* Revert "Another quick fix...sigh"
This reverts commit 6b1955724a2de3c2d1534ec206dd5794bbb5f568.
Taking a different approach.
* Revert "Properly implement single-point, validation improvements"
This reverts commit f5bfff099e1dc58edd3898da8655c147adde2301.
Taking a different approach.
* Single/dual set point fixes, full validation
* Fix test
* Fix restore-on-boot, clean up comments
* Decouple two-point/auto operation, more polish
* One last away mode tweak
* Added set point validation
* Clean up over-publishing, always call action after boot
* Added refresh() function to allow easy on-device state refreshing
* ADE7953: Fix dereferencing of a null pointer
The ade7953 driver dereferences a null pointer, when not all of
its sensors are used. This gives an exception like:
Fatal exception:29 flag:2 (EXCEPTION) epc1:0x4020c241 epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000018 depc:0x00000000
* Fix formatting
Co-authored-by: olg <x>
* Fix fan oscillation trait not being used
* Add fan direction support to SpeedFan
* Add fan direction to API
* Add fan direction support to BinaryFan
* Fix CI errors
* Fix python format
* Change some ordering to trigger CI
* Add test for the configuration
A component to support [WLED](https://github.com/Aircoookie/WLED/wiki/UDP-Realtime-Control).
This allows to control addressable LEDs over WiFi/UDP, by pushing data right into LEDs.
The most useful to use [Prismatik](https://github.com/psieg/Lightpack) to create
an immersive effect on PC.
It supports all WLED protocols:
- WARLS
- DRGB
- DRGBW
- DNRGB
- WLED Notifier
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
This adds a `e131` component that allows
to register `e131` addressable light effect.
This uses an internal implementation that
is thread-safe instead of using external libraries.
* making SPI CS optional
* CS pin should be declared as optional or required in CONFIG_SCHEMA
* changed SPI_DEVICE_SCHEMA to a function, like i2c
* added spi_device_schema() to pcd8544, lint fixes
* updated max31856 with new spi_device_schema()
* cleanup imports
Co-authored-by: Ilya Goldberg <iggie@mac.com>
* Turn off PN532 RF field when not expecting a tag
Avoids interference with Wifi connectivity of nearby devices.
* Rename turn_off_rf_ method
* documented off command bytes
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Extend `uart:` with `rx_buffer_size:`
This allows to configure `rx_buffer_size:`
to efficiently receive big payloads over UART
* lint
* remove old default value
* add test
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Update ESP32 BLE ADV parse to match BLE spec
* Update xiaomi
* Update ruuvi
* Format
* Update esp32_ble_tracker.cpp
* Fix log
* Format
* Update xiaomi_ble.cpp
* uart: Add support for specifying the number of bits and parity.
ESP8266SwSerial doesn't really check parity but just read the parity bit
and ignore it when receiving data.
Signed-off-by: 0hax <0hax@protonmail.com>
* uart: support begin and end methods.
A component may need to reset uart buffer/status by using begin() and
end() methods. This is useful for example when a component needs to be
sure it is not reading garbage from previously received data over uart.
For end() methods with software serial, disabling interrupt is
currently impossible because of a bug in esp8266 Core:
https://github.com/esp8266/Arduino/issues/6049
Signed-off-by: 0hax <0hax@protonmail.com>
* esphal: add support for detaching an interrupt.
That's needed when a component needs to enable/disable interrupt on a
gpio.
Signed-off-by: 0hax <0hax@protonmail.com>
* uart: rename CONF_NR_BITS to CONF_DATA_BITS_NUMBER.
Signed-off-by: 0hax <0hax@protonmail.com>
* uart: use static const uint32_t instead of #define.
Signed-off-by: 0hax <0hax@protonmail.com>
* uart: use an enum to handle parity.
Signed-off-by: 0hax <0hax@protonmail.com>
* uart: split between esp32 and esp8266.
Signed-off-by: 0hax <0hax@protonmail.com>
* uart: check_uart_settings for parity and number of data bits.
Signed-off-by: 0hax <0hax@protonmail.com>
* name param data_bits
* add new params to test
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* Added auto discovery and setup to Dallas Platform
* Added auto discovery and setup to Dallas Platform
* Added auto discovery and setup to Dallas Platform
* Added auto discovery and setup to Dallas Platform
* Added auto discovery and setup to Dallas Platform
* Added ble_scanner component
* ble_scanner: time.h changed to ctime
* ble_scanner: Test added.
* ble_scanner: fixed code formatting.
* Removed duplicate binary sensor tests from test2 and test3 to decrease memory requirements.
* Removed another duplicate test from test2.yaml and moved stepper test to yaml3.yaml to reduce memory requirements of test2.yaml.
* Reverted the last stepper test change
* Moved some sensor tests from test2.yaml to test3.yaml to save memory.
* Moved ruuvitag back to test2.yaml as it requires component esp32_ble_tracker.
* removed apds9960 as it is duplicated
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* dht: Fix sensor reading from DHT22 (#239)
Looking at the datasheet for DHT22, it claims to need a delay of 18ms, not
800us. Change to use the same delay as DHT11. Tested working with NodeMCUv3
and DHT22 sensor with board with built-in resistor.
* dht: Add model DHT22_TYPE2 with 2ms delay instead of 0.8ms
The model DHT22_TYPE2 is exactly the same as DHT22, but uses a different
delay.
* dht: Fix bogus negative temperature reading on DHT22_TYPE2
The workaround for negative numbers associated with DHT22s can be skipped
on these sensors.
* Restructuring of static files directory
* Update jQuery to v3.5.0
* Update jQuery UI to v1.12.1
* Update jQuery Validate to v1.19.1
* Improve login page layout and color scheme
* Updated header & footer colour scheme & added ESPHome logo
* Restructuring of fonts directory
* Restructuring of fonts directory
* Corrected icon reference error
* Update node layout and styling
* Update Ace to v1.4.10
* JS file reorganisation
* Rewrite of LogModal class including refactorization of js & html
* Updated delete node function
* Rewrite of editor modal
* Update Materialize Stepper to v3.1.0
* Updates to the wizard modal
* Added wizard validators back in and removed comments
* Merge old stylesheet into new
* Linting errors
* Fixed dashboard layout issue when no nodes present
* Introduced dynamic 3 column layout for large screens
* Removed unnecessary code
* Update data attribute names
* Added loading indicator to editor
* Open validator websocket on document ready
* Automatically restart validator websocket if it closes
* Minor styling updates
* Improvements to on boarding process
* Node display filename and then path on hover
* Removing console.logs
* Minor styling revisions
* Added toast on begin
* Fix lint
Co-authored-by: Sergio Mayoral Martinez <sergiomayoralmartinez@gmail.com>
* esp32_ble_tracker: introduce UUID comparison function
* ble_presence, ble_rssi: use new UUID comparison function
* esp32_ble_tracker: introduce automation on BLE advertising
* test2.yaml: remove deep_sleep due to firmware size restrictions
* Change buffer sending process for waveshare_epaper (2.70in)
The current way ESPhome sending buffer to WaveshareEPaper2P7In does not show the expected content on the display, this commit is changing the data transferring process so the content is showing as expected.
The process is adapted from the demo code provided by Waveshare, manufacturer of the E-paper display.
* Fix linting eror
Since we put the sensor to sleep when not measuring, make sure to wake
it up during setup. It does not respond to any other I2C commands
(including reset) while asleep, so if we've done a soft reboot while
it was sleeping then setup() would fail since it wouldn't respond to
anything.
* wip
* transmitter ready
* climate.whirlpool receiver implemented (#971)
* receiver implemented
* Support for two models of temp ranges
* temperature type and lint
* more lint
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
* add test
* not mess line endings
Co-authored-by: mmanza <40872469+mmanza@users.noreply.github.com>
* Basic pytest configuration
* Added unit_test script that triggers pytest
* Changed "fixtures" to fixture_path
This is consistent with pytest's tmp_path
* Initial unit tests for esphome.helpers
* Disabled coverage reporting for esphome/components.
Focus initial unittest efforts on the core code.
* Migrated some ip_address to hypothesis
* Added a hypothesis MAC address strategy
* Initial tests for core
* Added hypothesis to requirements
* Added tests for core classes
TestTimePeriod
Lambda
ID
DocumentLocation
DocumentRange
Define
Library
* Updated test config so package root is discovered
* Setup fixtures and inital tests for pins
* Added tests for validate GPIO
* Added tests for pin type
* Added initial config_validation tests
* Added more tests for config_validation
* Added comparison unit tests
* Added repr to core.TimePeriod. Simplified identifying faults in tests
* Fixed inverted gt/lt tests
* Some tests for Espcore
* Updated syntax for Python3
* Removed usage of kwarg that isn't required
* Started writing test cases
* Started writing test cases for cpp_generator
* Additional docs and more Python3 releated improvements
* More test cases for cpp_generator.
* Fixed linter errors
* Add codegen tests to ensure file API remains stable
* Add test cases for cpp_helpers
* climate.daikin: implement remote receive
* climate.daikin: fix temperature value in special modes
* climate.daikin: tweak timing to fit better to ir-remote signal
* Add AC Dimmer support
Fixes https://github.com/esphome/feature-requests/issues/278
* fixes
basically missed the output pin setup and in the switching was switching true true true :P
* Format
* Enable ESP32
* Also setup ZC pin
* Support multiple dimmers sharing ZC pin
* Fix ESP32
* Lint
* off gate on zc detect
* tests pins validation
* Climate Mitsubishi (#725)
* add climate
* Mitsubishi updates
* refactor mitsubishi to use climate_ir
* lint
* fix: only decode when not str already (#923)
Signed-off-by: wilmardo <info@wilmardenouden.nl>
* fix climate-ir bad merge (#935)
* fix climate-ir bad merge
* add mitshubishi test
* http_request: fix memory allocation (#916)
* http_request version fix (#917)
* PID Climate (#885)
* PID Climate
* Add sensor for debugging PID output value
* Add dump_config, use percent
* Add more observable values
* Update
* Set target temperature
* Add autotuner
* Add algorithm explanation
* Add autotuner action, update controller
* Add simulator
* Format
* Change defaults
* Updates
* Use b''.decode() instead of str(b'') (#941)
Handling of request arguments in WizardRequestHandler is not decoding
bytes and rather just doing a str conversion resulting in a value of
"b''" being supplied to the wizard code.
* Adding the espressif 2.6.3 (#944)
* extract and use current version of python 3 (#938)
* Inverted output in neopixelbus (#895)
* Added inverted output
* Added support for inverted output in neopixelbus
* Update esphome/components/neopixelbus/light.py
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Update light.py
* corrected lint errors
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Added degree symbol for MAX7219 7-segment display. (#764)
The ascii char to use it is "~" (0x7E).
Disclaimer: I didn't test this yet.
* Fix dump/tx of 64 bit codes (#940)
* Fix dump/tx of 64 bit codes
* fixed source format
* Update hdc1080.cpp (#887)
* Update hdc1080.cpp
increase waittime, to fix reading errors
* Fix: Update HDC1080.cpp
i fixed the my change on write_bytes
* add tcl112 support for dry, fan and swing (#939)
* Fix SGP30 incorrect baseline reading/writing (#936)
* Split the SGP30 baseline into 2 values
- According to the SGP30 datasheet, each eCO2 and TVOC baseline is a 2-byte value (MSB first)
- The current implementation ignores the MSB of each of the value
- Update the schema to allow 2 different baseline values (optional, but both need to be specified for the baseline to apply)
* Make both eCO2 and TVOC required if the optional baseline is defined
* Make dump_config() looks better
* Add register_*_effect to allow registering custom effects (#947)
This allows to register custom effect from user components,
allowing for bigger composability of source.
* Bugfix/normalize core comparisons (and Python 3 update fixes) (#952)
* Correct implementation of comparisons to be Pythonic
If a comparison cannot be made return NotImplemented, this allows the
Python interpreter to try other comparisons (eg __ieq__) and either
return False (in the case of __eq__) or raise a TypeError
exception (eg in the case of __lt__).
* Python 3 updates
* Add a more helpful message in exception if platform is not defined
* Added a basic pre-commit check
* Add transmit pioneer (#922)
* Added pioneer_protocol to support transmit_pioneer
* Display tm1637 (#946)
* add TM1637 support
* Support a further variant of Xiaomi CGG1 (#930)
* Daikin climate ir component (#964)
* Daikin ARC43XXX IR remote controller support
* Format and lint fixes
* Check temperature values against allowed min/max
* fix tm1637 missing __init__.py (#975)
* Add AC Dimmer support
Fixes https://github.com/esphome/feature-requests/issues/278
* fixes
basically missed the output pin setup and in the switching was switching true true true :P
* Format
* Enable ESP32
* Also setup ZC pin
* Support multiple dimmers sharing ZC pin
* Fix ESP32
* Lint
* off gate on zc detect
* tests pins validation
* fix esp8266 many dimmers, changed timing
* Increased value resolution, added min power
* use min_power from base class
* fix min_power. add init with half cycle
* added method for trailing pulse, trailing and leading
* fix method name. try filter invalid falling pulse
* renamed to ac_dimmer
* fix ESP32 not configuring zero cross twice
Co-authored-by: Guillermo Ruffino <glm.net@gmail.com>
Co-authored-by: Wilmar den Ouden <wilmardo@users.noreply.github.com>
Co-authored-by: Nikolay Vasilchuk <Anonym.tsk@gmail.com>
Co-authored-by: Tim Savage <tim@savage.company>
Co-authored-by: Vc <37367415+Valcob@users.noreply.github.com>
Co-authored-by: gitolicious <mrjchn@gmail.com>
Co-authored-by: voibit <krestean@gmail.com>
Co-authored-by: Luar Roji <cyberplant@users.noreply.github.com>
Co-authored-by: András Bíró <1202136+andrasbiro@users.noreply.github.com>
Co-authored-by: dmkif <dmkif@users.noreply.github.com>
Co-authored-by: Panuruj Khambanonda (PK) <pk@panurujk.com>
Co-authored-by: Kamil Trzciński <ayufan@ayufan.eu>
Co-authored-by: Keith Burzinski <kbx81x@gmail.com>
Co-authored-by: Mario <4376789+mario-tux@users.noreply.github.com>
Co-authored-by: Héctor Giménez <hector.fwbz@gmail.com>
Add the GET and POST handler for cover components. Also add covers to
the index page although the Open/Close buttons that are shown for covers
will need a few lines added to webserver-v1.js, without them they don't
do anything.
* add energy support in pzemac sensor
Co-authored-by: Sergio Mayoral Martinez <sergiomayoralmartinez@gmail.com>
Co-authored-by: t151602 <sergio.mayoralmartinez@telefonica.com>
Co-authored-by: Otto Winter <otto@otto-winter.com>
* add new config options
* init variables in code
* load css and js in python
* update print inside webserver
* fix indentation
* fix indentation
* indentation fix
* fix condition in init
* use cv.file_ instead of cv.string
* do not import EsphomeError
* support embedding js and css at the same time as defined in url
* handle css as separate page
* handle js as separate page
* fix copy and paste error
* Correct implementation of comparisons to be Pythonic
If a comparison cannot be made return NotImplemented, this allows the
Python interpreter to try other comparisons (eg __ieq__) and either
return False (in the case of __eq__) or raise a TypeError
exception (eg in the case of __lt__).
* Python 3 updates
* Add a more helpful message in exception if platform is not defined
* Added a basic pre-commit check
* Split the SGP30 baseline into 2 values
- According to the SGP30 datasheet, each eCO2 and TVOC baseline is a 2-byte value (MSB first)
- The current implementation ignores the MSB of each of the value
- Update the schema to allow 2 different baseline values (optional, but both need to be specified for the baseline to apply)
* Make both eCO2 and TVOC required if the optional baseline is defined
* Make dump_config() looks better
Handling of request arguments in WizardRequestHandler is not decoding
bytes and rather just doing a str conversion resulting in a value of
"b''" being supplied to the wizard code.
Don't try to update CT clamp's state with NaN values returned from the
underlaying sensor. A single IO error in the sensor code will cause a
NaN to be returned and if we use that in CTClampSensor's floating point
maths both sample_sum_ and offset_ will become NaN and from there every
future calculation will use the NaN offset_ and return NaN too.
* Add RFBridge component
* Fix format issues
* Rename methods
* More formatting
* Fix line length
* Apply suggestions from code review
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Check uart settings on dump
* Make receiving local to the loop
* FIx code order and schema
* Add rf_bridge to test file
* Apply suggestions from code review
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Handle yaml merge keys correcly.
* Removed old debug bool.
* Deleted after request from @OttoWinder.
* Small refactoring.
Removed unused variable `value`
Small refactoring to make the code clearer.
Added comments.
* Fix merge sequence edge case
* Update ESP32 BLE ADV parse to match BLE spec
* Update xiaomi
* Update ruuvi
* Format
* Update esp32_ble_tracker.cpp
* Fix log
* Format
* Update xiaomi_ble.cpp
* Add support for Sensirion SPS30 Particulate Matter sensors
* Remove blocking of the main thread on initialization;
Improve wording on the debug messages;
Add robustness in re-initialization of reconnected or replaced sensors;
* Fix code formatting;
Co-authored-by: Nad <valordk@github>
* Add QMC5883L and Updated HMC5883L
* add tests
* changed to oversampling
* fix pylint
* fix private method
* typo fix
* fix protected method
* Clean up code and PR recomendations
* fix tests
* remote file
* fix qmc oversampling unit
* Remove hmc5883l config logging
Either the units are converted to the user values like 1x, 8x oversampling or not printed at all. Printing the machine-value of these is only confusing users.
* Changes for validate_enum
Move stuff that can be done beforehand out of the bound function, use text_type for py2/3 compatability.
* Remove unused constant
* Remove duplicate tests
* Repeat remove config print
* remove changes to test2 since bin is to large
* Add comment to HMC5583L
Co-authored-by: Timothy Purchas <timothy@TPF.local>
Co-authored-by: Otto Winter <otto@otto-winter.com>
In a heavy EMI environment, reading the current config from the MAX31865 can
fail, such as switching from a 4-wire sensor to a 3-wire sensor. This causes
the temperature value to be off wildly, but still technically valid, so it
doesn't get reported as a sensor failure.
Since we know what configuration we want, rather than send it to the MAX31865
on setup and ask for it over and over (propagating any error as we write it
back), instead store the base configuration and work from that to change modes.
This not only avoids propagating any error, it also saves a lot of unnecessary
reads from the MAX31865.
* added idle
* more clear state description
* Also add drying/fan
Putting it in this PR because it will be put in the same aioesphomeapi release anyway.
* Update bang_bang for idle action
Co-authored-by: root <root@mail.danman.eu>
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Added more data to atm90e32 component
* ignore
* correction
* Delete 6chan_energy_meter.yaml
* PR request changes
* repository test branch
* Update setup.py
* Update const.py
* delete test yaml
* fix chip_temperature_sensor
This was throwing an error if chip_temperature was used. It needed to be changed from temp to temperature.
* default
* Update test1.yaml
* Decode DHT11 decimal part
* Fix comment
* Fix comment
* Handle negative temp for some DHT11 - code from the DHT12 component
* Don't use the fractional part if the checksum is the 2 bytes one
* Fix logger uart conflict check
* Fix class for check func
* Fix syntax
Hope lint is OK with moving the end of the conditional outside the #IFDEF
* Move end of conditional inside ifdef and remove extra whitespace
* Simplify
clang-format did not like the ifdefs and was reformatting in a way that killed clang-tidy.
Simple solution is to use logger's hw_serial as source of truth
Also simplifies the code - uart doesn't need to know what the logger uart settings mean
* Add api missing_state attribute
Fixes https://github.com/esphome/issues/issues/828
Adds a new property for missing state, so that HA can now when a sensor does not have a state yet.
* Update api.proto
* Fix logger uart conflict check
* Fix class for check func
* Fix syntax
Hope lint is OK with moving the end of the conditional outside the #IFDEF
* Move end of conditional inside ifdef and remove extra whitespace
* Simplify
clang-format did not like the ifdefs and was reformatting in a way that killed clang-tidy.
Simple solution is to use logger's hw_serial as source of truth
Also simplifies the code - uart doesn't need to know what the logger uart settings mean
* Add api missing_state attribute
Fixes https://github.com/esphome/issues/issues/828
Adds a new property for missing state, so that HA can now when a sensor does not have a state yet.
* Update api.proto
* implemented ruuvi_ble and ruuvitag with RAWv1 protocol
fixesesphome/feature-requests#313
* lint
* updated data calculations
* cpp lint
* use string directly in message
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* add RAWv2 protocol support
* fix ICON_SIGNAL
* typo
* calculation correction and cleaning
* c++ lint
* added acceleration and fixed typo
* removed remote_receiver to reduce firmware size
remote_receiver also in test1.yaml
* Add MAX31865 sensor support, fix MAX31855 sensor.
# MAX31865
Added support for the MAX31865 RTD-to-Digital Converter to measure PT100 and
similar RTDs. Verified with an Adafruit unit (product ID: 3328) and a PT100
probe.
# MAX31855
This was setup for incorrect SPI clock polarity and phase, and would return bad
data due to a race condition measuring on the wrong edge (verified with Saleae
Logic scope). Selecting the correct configuration fixes that problem.
Re-wrote the decode off the datasheet to handle error states better (sends NaN
as an update on failure to read temperature, which shows the value as Unknown
in Home Assistant).
Added the *optional* ability to monitor the internal high-precision temperature
sensor, which can be nice in some applications.
* Tests for MAX31855/MAX38165.
* Update style to match project rules.
Also fix CONF_REFERENCE_RESISTANCE and CONF_REFERENCE_TEMPERATURE being defined
multiple places. Missed this when I added them to const.py.
* Update style to match project rules.
Pylint line limit 101/100 ("missed it by that much").
Also apparently I can't read and patched the wrong line in max31855.cpp.
* Minor string/style cleanup.
There was a copy-paste leftover in max31855.cpp and max31865/sensor.py had
unnecessary whitespace.
* Improve MAX31865 fault detection and logging.
Log levels are more in-line with the documented descriptions.
Fault detection code is improved. A transient fault between reads is still
reported, but now only faults *during* a read cause the sensor to fail and
return NAN ("unknown" in Home Assistant).
* Update style to match project rules.
I just now realized the .clang-format and pylintrc files are included. D'oh!
* MAX31855 & MAX31865 code style alignment.
@OttoWinter caught some style mismatches, updated to match project better.
* Fix a lost '\' in max31865/sensor.py.