* 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>
* 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
* 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.
* Add support for Sensirion STS3x Temperature sensors
* Removed humidty reading from STS3x sensor
* Fixed line error and operand error
* Fixed syntax
* Add test snippet for STS3x sensor
* Clean up
* #550 Proactive fix for STS3x component reporting WARNING status and reinitialzing similar to SHT3xd
* Flattened config.
* Fixed missing temperature unit
* Code formatting
* Added marking for future commands
* Cleanup
* Removed whitespace
* Cleanup
* Cleanup
* Add support for Sensirion STS3x Temperature sensors
* Removed humidty reading from STS3x sensor
* Fixed line error and operand error
* Fixed syntax
* Add test snippet for STS3x sensor
* Clean up
* Add support for Sensirion SHTC1 and SHTC3 Temperature sensors
* Fixed the test
* Fix lint issues
* Update esphome/components/shtcx/shtcx.cpp
Good point.
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Refactored device type identification and logging
* Refactoring and cleanup
* Remove sts3x
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Add support for SGP30 eCO2 and TVOC sensors
* Added test for SGP30
* Lint issues fixed
* Lint fixes
* Fixed light lengths
* Cleanup
* Add support for Sensirion SCD30 CO2 sensors
* Fixed few lint issues
* Lint fixes
* Fixed line ending for lint
* Cleanup
* Refactored float conversion
* Refactor unnecessary return
* Refactoring and cleanup
* Updated uptime_sensor_ referencing and simplified checking on availability of copensation
* Temperature and Humidity source moved to a separate compensation block; Dependency for Uptime sensor removed.
* Both humidity_source and temperature_source are now mandatory if the compensation block is defined;
* Clean up
* Cleanup
* Cleanup in search of perfection
* Use correct comment style
Co-authored-by: Otto Winter <otto@otto-winter.com>
* add ssd1325 component
* fix i2c
* remove ssd1325 i2c
* add test
* set max contrast
* No macros - see styleguide
* Remove invalid function
* Formatting
Co-authored-by: Otto Winter <otto@otto-winter.com>
* refactored xiaomi sensors
* fix lint
* fixed and added tests
* fix namespace
* LYWSD02 has no battery level
* fixed enum
* fix
* fix case
* fix spaces in empty line...
* inform users of old sensors about the change
* Add support for TI TLC59208F
The chip is a 8-BIT FM+ I2C BUS LED DRIVER with
8 open-drain output channels.
Its features include:
- 256 linear levels
- group dimming
- group blinking
- 64 slave addresses
- customizable sub addresses and all call address
- output update on stop or on ACK
- 3.3V or 5V supply with 5V tolerant IO
- no glitch startup
- 50mA / output continuous current up to 17V
* Convert macro to uint8_t
Variables had to be renamed, clang-format would protest against
mixed case in global variable name.
* Change gen-call reset to use the correct i2c bus
* Basic auth
* Test
* Linter fix
* Make username/password strict strings
Reason: passwords only consisting of digits (012345) will be silently converted (to "12345")
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Allow configuration to enable or disable automatic baseline calibration on boot
* Add actions to enable or disable automatic baseline calibration
* Add action to calibrate zero point
* Adding bitmask to narrow compare of received codes
Updated test to add mask configuration
* Lint
* Handle bitmask as ignore characters per review comment
* Fixed test to cover ignore bits
* Lint
* Eliminate separate set_mask method per review comment
* Provide the lights current color to the addressable_lambda_effect.
* Fix formatting
* More formatting
* Change the call signature of the lambda
* lint
Co-authored-by: olg <x>
* Enabling tilt control in the template cover
Added test
Add tilt option to publish action
* Added CONF_TILT to alidation schema per comment
* Removed default for CONF_TILT
* Atmel M90E32AS Energy Metering IC. Found in CircuitSetup 2can and 6chan energy meters
* fix style bugs
* Update esphome/components/atm90e32/atm90e32.cpp
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Properly put atm90e32_reg in namespace
* Use phase grouped config like ina3221
* Log why the component is marked failed, did not read back our register value
* 32bit register reads are 2s compliment
* Fix atm90e32 option name in test
* clang-format changes from travis-ci
* use new protected method names
* Whitespace changes to please Travis
* Update esphome/components/atm90e32/atm90e32.cpp
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Fix up type change for val_h/val_l
* Remove conditions around values with defaults
* Rename constants to match their value
* Remove 2's complement check
Co-authored-by: Andrew Thompson <andrew@whosonlocation.com>
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Add CT Clamp component
* Update lint
* Some more fixes
* Make updates to work as an analog sensor consumer
* Remove unused imports
Update lint suggestions
* Move setup_priority to header
* Remove unused calibration value
* Remove Unique ID
- Will be auto generated
* Update to use loop and not slow down main loop
Co-authored-by: Otto Winter <otto@otto-winter.com>
* add binary_sensor_map c code
* add python file
* fixed python and C++ code for new framework
* renamed add_sensor to add_channel
* travis
* Updates
- Use struct for channels_ array - heap allocation is not really necessary here.
- any_active can also be written as mask != 0
- Update setup priority to DATA
- Use shorter TAG (name is already long; not important)
- Quotes around name
- Add icon to sensor
- Use new cv.typed_schema
- Change CONF_CHANNEL to CONF_BINARY_SENSOR - makes it clearer that this option accepts a binary sensor (and not for example an int)
- Add test
Co-authored-by: Otto Winter <otto@otto-winter.com>
* Lint
* add coolix climate ❄ 🔥
* Fixes
* Reviewed
* Fix for dev
ClimateDevice was renamed to Climate
* Remove stale method
* Lint
* Initialize target temperature, avoid NAN value
* Use clamp and round value
* Set to verbose message
Not really relevant to the user
* Remove constructor
Name is now set in climate.register_climate - saves integrations from having to declare a constructor
* Fix, add test
Co-authored-by: Otto Winter <otto@otto-winter.com>
## Description:
Move esphome-core codebase into esphome (and a bunch of other refactors). See https://github.com/esphome/feature-requests/issues/97
Yes this is a shit ton of work and no there's no way to automate it :( But it will be worth it 👍
Progress:
- Core support (file copy etc): 80%
- Base Abstractions (light, switch): ~50%
- Integrations: ~10%
- Working? Yes, (but only with ported components).
Other refactors:
- Moves all codegen related stuff into a single class: `esphome.codegen` (imported as `cg`)
- Rework coroutine syntax
- Move from `component/platform.py` to `domain/component.py` structure as with HA
- Move all defaults out of C++ and into config validation.
- Remove `make_...` helpers from Application class. Reason: Merge conflicts with every single new integration.
- Pointer Variables are stored globally instead of locally in setup(). Reason: stack size limit.
Future work:
- Rework const.py - Move all `CONF_...` into a conf class (usage `conf.UPDATE_INTERVAL` vs `CONF_UPDATE_INTERVAL`). Reason: Less convoluted import block
- Enable loading from `custom_components` folder.
**Related issue (if applicable):** https://github.com/esphome/feature-requests/issues/97
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here>
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Tests have been added to verify that the new code works (under `tests/` folder).
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
* Support SDS011 component.
* improve if condition
* Check update interval is multiple of minute
* do not allow update intervals longer than 30 min
* fix sensor schema name
* remove query_mode
* Warn if rx_only mode used together with update interval
* Allow update intervals below 1min
Messed that up before, as the docs say update intervals below 1min are allowed
* Use update interval in minutes
* use set_update_interval_min() to set update interval
* Enable use of alternate hardware UARTs for logging
Enable use of Serial1 on ESP8266 and Serial1/Serial2 on ESP32 for logging.
This is frequently done on ESP8266 to allow use of Serial for UART TX+RX,
while maintaining logging output on Serial1 which is TX-only via GPIO2.
* ESPHOMELIB_UART -> UART_SELECTION_UART; HW_UART -> HARDWARE_UART
* Add test3 to travis; remove test4
* Set DEBUG_ESP_PORT based on logger UART setting
* Esphomeapi
* Updates
* Remove MQTT from wizard
* Add protobuf to requirements
* Fix
* API Client updates
* Dump config on API connect
* Old WiFi config migration
* Home Assistant state import
* Lint