* new Fujitsu-General climate component
* Refactor out climate_ir
CC @glmnet
Refactored out climate_ir python files too.
Fixed invalid namespace name for climate_ir.
* Add namespace lint check
* Refactor Fujitsu Climate to climate_ir
Co-authored-by: Otto Winter <otto@otto-winter.com>
* new Fujitsu-General climate component
* Refactor out climate_ir
CC @glmnet
Refactored out climate_ir python files too.
Fixed invalid namespace name for climate_ir.
* Add namespace lint check
* Refactor Fujitsu Climate to climate_ir
Co-authored-by: Otto Winter <otto@otto-winter.com>
* web_server_base AUTO_LOAD includes ASYNC_TCP
fix AUTO_LOAD of web_server_base to include ASYNC_TCP
* Remove from dependencies
Co-authored-by: Otto Winter <otto@otto-winter.com>
* web_server_base AUTO_LOAD includes ASYNC_TCP
fix AUTO_LOAD of web_server_base to include ASYNC_TCP
* Remove from dependencies
Co-authored-by: Otto Winter <otto@otto-winter.com>
* 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>
* 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>
* add support for climate action:
Following hass implementation of climate, action represents the current action the climate device is perfoming, e.g. cooling or heating
fix bang_bang climate:
make sure that the thresholds are always respected.
fixes the issue where the component would just keep on heating, regardless of the temperature range
* Updates
- Use dedicated enum for action (otherwise it gets confusing because "auto" is not a valid action)
- Add field to tell HA that action is supported
- Revert semantic changes in bang_bang
* Conditional print
Co-authored-by: Otto Winter <otto@otto-winter.com>
* add ClimateIR
* update climate ir
* update class comment
* lint
* moved to climate_ir
* fix include path
* use climateir
* updates
* update include path
* lint
* fixed variable assigned to itself
I'm facing some occasional timeouts when reading BME280.
Looking at Adafruit driver (that this code is based on), I see that base math is using 1.25ms, increased by 2.3*oversampliing + 0.575 for each value being read.
I've added 1.5ms as baseline, to be on the same safe.
* Add support for TTGO ePaper module
Use 2.13in-ttgo as type. Only different LUTs were needed, everything else is the same.
relates to issue #233.
* fix styling errors
* styling fixes
Co-authored-by: null <mandy.klingbeil@student.hpi.uni-potsdam.de>
* 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
* Fix for PCF8574 output chattering at the start/reboot
* Fix for PCF8574 output chattering at the start/reboot
* Fix for PCF8574 output chattering at the start/reboot
Co-authored-by: Amish Vishwakarma <vishwakarma.amish@gmai.com>
* 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
* added ANALOG_OUTPUT as first functionality
* added gpio
* seperated the code for different functions
* fixed code
* Revert "fixed code"
This reverts commit 0c6eacb225.
* add timings for breathe and blink
* made the sx1509_float_output am output component
* add keypad
* implementation for sx1509 keypad
* keypad code cleanup and first device tests
* debounce
* keypad working now.
* update for timings.
does not compile yet
* added all options for breathe and blink
fixed var namings
* blink and breath still not ok
* fixed ms for timings
* sync with repo
* fixed issue with gpio pin output
* code cleanup
* lint
* more lint
* remove log from header
* Update esphome/components/sx1509/__init__.py
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* review
* feedback
* fixed review issues
did some extended testing with mqtt spy
* code cleanup (comments)
* fixed row col swap for binarysensor_keypad
* flake and lint
* travis
* travis
* travis
* Update esphome/components/sx1509/sx1509.cpp
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* review
* separated platforms
* code cleanup
* travis relative paths in python
* remove blink/breathe
code cleanup
* cpp lint
* feedback
* travis
* lint line to long
* check keypad settings to be valid
* clang
* keypad config
* text
* Remove wrong .gitignore from .gitignore
* Remove .pio folder from .gitignore (merge)
* Formatting
* Formatting
* Add i2c log in dump_config
* Remove unused variables
* Disable static for header files
We don't need internal linkage
* Use consistent member default argument style
* Run clang-format
Co-authored-by: null <m.vanturnhout@exxellence.nl>
Co-authored-by: Otto Winter <otto@otto-winter.com>
* 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>
* add nexa remote support.
This is inspired by: https://github.com/sui77/rc-switch/pull/124
As described there: "The remotes sold in ClasOhlson in scandinavia have
a slightly longer sync sequence(added a skip pulse field in the
protocol) and a 64 bit code word. Part of the code gets lost but that
seems to be OK until support for 64 bit codes is added."
* add default value to ctor
* allow 64bit codes
* lint
* make vars 64 bits
* add has built in endstop
* rewrite as proposed
* Update esphome/components/time_based/time_based_cover.h
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* lint
* Re trigger stop_operation if stop called
* allow se triggering open/close command if safe
* using COVER_OPEN/CLOSE constants
* add xiaomi BLE Thermometer lywsd02 model support
* remove battery level
* Update sensor.py
to pass the lint test
https://github.com/esphome/esphome/pull/664
* fix trailing space
Co-authored-by: Guoxue <gx@m15.cn>
Co-authored-by: mr G1K <mr@g1k.ru>
* 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
* Fix mqtt_text_sensor to honor unique_id when set.
* Remove setting of unique_id in json tree, as the mqtt_component already does this, and in fact overrides what we do here.
* Add unqiue_id() and dump_config() to the wifi_info sensors.
* Erase all flash for USB uploads on ESP8266s
Previously, only erased "write regions".
Downside: Config for other FWs like tasmota could be affected
Upside: Potentially fixes some ESP8266 connection issues
Related: https://github.com/esphome/issues/issues/455#issuecomment-503524479
* Clear WiFi settings for ESP8266
Clears wifi settings from retained storage on ESP8266 (if set).
Unsure if this is the actual issue, but it won't cause problems either.
* Update wifi_component_esp8266.cpp
* Revert erase chip for testing
* Improve wait_time calculation
* 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>
* Added scan_length to AddressableScanEffect (allow more than one LED)
* Added check for scan length being longer than addressable light
* Added config option 'scan_length' to AddressableScanEffect (default: 1)
* Renamed scan_length to scan_width, removed erroneous length check
* Fixed indentation issue in addressable_light_effect.h
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* clear and disable editor while fetching contents
* semicolon
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* semicolon
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* Add backlight handling for lcd_pcf8574
Switch the backlight on or off by calling id(mydisplay).backlight()
or id(mydisplay).no_backlight() in lamda functions (assuming mydisplay
is the custom id for the LCD).
* Use abstract method
Co-authored-by: Attila Darazs <attila@darazs.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 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>
* added download, edit and retry buttons to upload modal
* changed hide for disabled, resorted buttons
* moved upload action buttons to menu
* button changes
moved edit button from menu in upload modal
swapped validation button for upload in edit modal
* 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>
Fixes https://github.com/esphome/issues/issues/307
Only enters deep sleep mode when node turns off - not between updates because entering+exiting deep sleep takes some time (could be added later)
* added download, edit and retry buttons to upload modal
* changed hide for disabled, resorted buttons
* moved upload action buttons to menu
* button changes
moved edit button from menu in upload modal
swapped validation button for upload in edit modal
* 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>
Fixes https://github.com/esphome/issues/issues/307
Only enters deep sleep mode when node turns off - not between updates because entering+exiting deep sleep takes some time (could be added later)
* added link from dashboard to web server, if configured
* linter fixes
* simplified integration lookup
* included loaded_integration in storage json
* included loaded_integration in storage json
* fixed loaded_integrations
plus linter changes
* fixed comment: List
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* return empty list
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* convert to list
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* default to empty list on missing loaded_integrations
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* None check no longer needed
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* None check no longer needed
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* removed newline
* added link from dashboard to web server, if configured
* linter fixes
* simplified integration lookup
* included loaded_integration in storage json
* included loaded_integration in storage json
* fixed loaded_integrations
plus linter changes
* fixed comment: List
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* return empty list
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* convert to list
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* default to empty list on missing loaded_integrations
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* None check no longer needed
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* None check no longer needed
Co-Authored-By: Otto Winter <otto@otto-winter.com>
* removed newline
* 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>
fixes the following error if rx_only was defined and update_interval
was not present:
Failed config
sensor.sds011: [source sds011.yaml:62]
update_interval has no effect in rx_only mode. Please remove it.
missing definition of GPIOPin:
In file included from src/esphome/components/my9231/my9231.cpp:1:0:
src/esphome/components/my9231/my9231.h:13:19: error: 'GPIOPin' has not been declared
void set_pin_di(GPIOPin *pin_di) { pin_di_ = pin_di; }
^
src/esphome/components/my9231/my9231.h:14:21: error: 'GPIOPin' has not been declared
void set_pin_dcki(GPIOPin *pin_dcki) { pin_dcki_ = pin_dcki; }
^
src/esphome/components/my9231/my9231.h:51:3: error: 'GPIOPin' does not name a type
GPIOPin *pin_di_;
^
src/esphome/components/my9231/my9231.h:52:3: error: 'GPIOPin' does not name a type
GPIOPin *pin_dcki_;
^
* Added save & validate button in editor window
It felt a bit cumbersome to save&close the editor window, then click the validate button, see an error, locate your device from the list and open the editor again. Now it is possible to save&validate a configuration without leaving the editor.
* Changed modal behavior to close one before the other
* set data-node dynamically
* show upload button on successful validation
* Use disabled class
* Update index.html
* Fix mistake
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).
## Description:
Escape ssid and psk
**Related issue (if applicable):** fixes <link to issue>
https://github.com/esphome/issues/issues/81
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here>
**Pull request in [esphome-core](https://github.com/esphome/esphome-core) with C++ framework changes (if applicable):** esphome/esphome-core#<esphome-core PR number goes here>
## Checklist:
- [X] The code change is tested and works locally.
- [n/a] Tests have been added to verify that the new code works (under `tests/` folder).
If user exposed functionality or configuration variables are added/changed:
- [n/a] Documentation added/updated in [esphomedocs](https://github.com/OttoWinter/esphomedocs).
Co-authored-by: Otto Winter <otto@otto-winter.com>
Makes configuring these boards easier thru improved definitions.
wio_node pointed to nodemcu base, which was incorrect
wio_link lacked D0, D1, D2, and BUTTON
## Description:
Playing with some WioLinks and ESPHome and discovered that the definition was lacking, figured a quick pull request is the best way to improve things. Don't have a WioNode but since the documentation says that it's certainly not matching the nodemcu pinout, and more much like a WioLink, figured that's likely to save someone else in the future frustration when they have no luck making a wio_node work out of the box with ESPHome.
Sourced from: https://github.com/Seeed-Studio/Wio_Link/blob/master/boards.json
**Related issue (if applicable):** fixes <link to issue>
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here>
**Pull request in [esphome-core](https://github.com/esphome/esphome-core) with C++ framework changes (if applicable):** esphome/esphome-core#<esphome-core PR number goes here>
## Checklist:
- [X] The code change is tested and works locally.
- [N/A] Tests have been added to verify that the new code works (under `tests/` folder).
If user exposed functionality or configuration variables are added/changed:
- [N/A] Documentation added/updated in [esphomedocs]
(https://github.com/OttoWinter/esphomedocs).
Might want to add a note somewhere for these boards that all of the connections are power linked to GPIO15 (Grove) and unless you do "mode: INPUT_PULLUP" that pin first, nothing works as expected. Learned this the hard way.
## Description:
**Related issue (if applicable):** fixes <link to issue>
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here>
**Pull request in [esphome-core](https://github.com/esphome/esphome-core) with C++ framework changes (if applicable):** esphome/esphome-core#<esphome-core 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).
## Description:
**Related issue (if applicable):** fixes <link to issue>
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#<esphome-docs PR number goes here>
**Pull request in [esphome-core](https://github.com/esphome/esphome-core) with C++ framework changes (if applicable):** esphome/esphome-core#<esphome-core 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).
* setting up non i2c ttp229
* add component
* fixed const and multiconf
* fixed issues with i2c address (it is fixed for this device
renamed component and platform to ttp229_lsf => i2c device. There is
another ttp229_bsf device that uses a proprietary bus protocol
* max channels is 0 to 15
* folow up on code review
* fixed Component ttf229_lsf
* Better symlink support under Windows
* Conditional loading of ctypes wintypes module
* Shortening comment line for pylint
* Adding plint bypass for Python 3
* 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
* Add relative_url, streamer_mode, status_use_ping dashboard options
Additionally Hass.io now stores all build files in /data, so that snapshots no longer get huge.
* Lint
* Lint
* Replace tabs with spaces
* Update dashboard copyright year
* Fix overflow and select color issue
* Make upload and compile modals not dismissible on outside click
* Fix to small dropdown