* {switch,light}.tplink: use deviceid as unique id, fetch name from the device during initialization
* raise PlatformNotReady when no device is available
* Use mac instead of deviceid
* remove name option as obsolete
* Add support for configuration flow / integration
Allows activating automatic discovery of supported devices from the configuration
* Fix linting, update requirements_all.txt
* start cleaning up tplink component based on feedback
* add device info, improve config handling
* Allow overriding detected devices via configuration file
* Update requirements.txt
* Remove debug logging
* make hound happy
* Avoid I/O during init and simplify the code, remove remains of leds_on
* Fix issues based on feedback, use consistent quotation marks for device info
* add async_setup_platform emiting a deprecation warning
* Avoid blocking the I/O, check for None on features
* handle some Martin's comments, schema-validation is still missing
* use async_create_task instead of async_add_job, let core validate the schema
* simplify configuration handling by storing the configuration data separately from initialized instances
* add default values to schema, make hound happy
* with defaults set by schema, simplify the checks. add async_unload_entry
* Use constant for data structure access
* REWORD add a short note about async_unload_entry
* handle feedback from Martin, config_data is checked against Noneness
* use pop to remove the domain on unload
* First steps to add tests for the new tplink component
* embed platforms under the component directory
* Fix tests by mocking the pyhs100 internals
* Fix linting
* Test against multiple instances of devices, tidy up
* (hopefully) final linting round
* Add pyHS100 to test requirements
* log always the warnings occured during an update to make them easy to see
* revert back the warning behavior (requirement for silver level in IQS)
* Unload only when an entry is being loaded and add tests for that
Thanks @MartinHjelmare for pointing this out!
* Fix linting
* Bump the upstream lib, fixes most prominently the HSV setting on bulbs
* Test unloading for all platforms, clear the data storage instead of popping it out, making it possible to reconfigure after removal without restarting hass first
* Use class variables instead of instance variables for bulb states, required for HS220
* Use new-style format string
* Fix indenting, uppercase the mock constant
* Run black on test_init, hopefully that will finally fix the weird formatting (pycharm, pylint and hound seems to have different opinions...)
* Add a prompt if bridge update is available.
* Change logger warning for light update
The self.light.swupdatestate only checks for updates of that specific light, it does not check for updates of the bridge.
Theirfore the warning message schould be updated.
* add space
* fix tests
* rename to swupdate2_bridge_state
* update aiohue to v1.9.1
* update aiohue to v1.9.1
* update aiohue to v1.9.1
* Deprecate update_interval and replace with scan_interval
* Update tests
* Fix Darksky tests
* Fix Darksky tests correctly
This reverts commit a73384a223ba8a93c682042d9351cd5a7a399183.
* Provide the default for the non deprecated option
* Don't override default schema for sensors
* Updated per review feedback.
* Fixed line length
* Review comments and lint error
* Fixed mypy typeing error
* Moved migration logic to setup
* Use new migration error state
* Fix bug and ignore mypy type error
* Removed SmartThings example and added unit tests.
* Fixed test comments.
* Improve component setup error logging/notification
* Prevent capabilities from being represented my multiple platforms
* Improved logging of received updates
* Updates based on review feedback
* First commit
* Times of the Day binary sensor added
* Python 3.5 fixes and logging removed
* Code refactored according to reviewer's suggestions
* Fixed config template with friendly name support
* Finall pep8 fixes
* Removed async_generate_entity_id and moved initial calculation to async_added_to_hass
* Change the configuration schema to follow the current requirements
* Update according latest suggestsion
* Fix typos and minor changes
* Fix lint issue
* Bumped pysmartthings version to 0.6.1
* Added Lock to supported platforms
* Added SmartThings Lock component
* Updated lock to eagerly set state
* Updated requirements_all.txt & requirements_test_all.txt with pysmartthings==0.6.1
* Added SmartThings Lock tests
* Removed inapplicable comment
* Removed unused import (STATE_UNLOCKED)
* Populated device_state_attributes with values provided by SmartThings
* Condensed if_lock assertion function
* Updated gathered attributes
* Fixed typo
* Updated tests to use new setup_platform
* Updated assignment of device state attributes
* Updated tests to utilise the LOCK_DOMAIN constant where suitable
* Fixed false positive for Switch test: (test_unload_config_entry)
* Implemented constant to contain expected SmartThings state for is_locked check
* Improved allocation of State Attributes
* Improved allocation of state attributes
* Fixed lint error (was running lint checks against the wrong file, whoops)
* Added test for unloading lock config
* Use isinstance instead of type()
* Updated device state to explicitly check for is not None instead of a truthy value
* set cover level using emulated_hue
* changed mapping for service turn_on/off for cover.
* removed whitespace for the sake of hound
* using const for domains instead of hardcoded strings.
* change length of lines for the sake of hound
* fixed under-intended line
* changed intent for the sake of hound
* Forbid duplicate IDs
* Allow loading persons from storage
* Convert to PersonManager
* Add storage support and WS commands to Person component
* Convert list command to differentiate types
* Allow loading person component without defining persons
* Fix cleanups after update/delete
* Address comments
* Start tracking when HA started
* Move more constants to const.py
* Import constants directly from const
* ATTR_ENTITY_ID is not defined in media_player
* MEDIA_PLAYER_PLAY_MEDIA_SCHEMA is still in __init__.py
* Correct imports in tts
* PLATFORM_SCHEMA, SCHEMA is still defined in __init__.py
* Pandora imports several services
* Some additional fixes for move of const in media_player
* Fix hound lengths
* Add better handling of deprecated configs
* Embed the call to has_at_most_one_key in deprecated
* Add tests for checking the deprecated logs
* Add thoroughly documented tests
* Always check has_at_most_one_key
* Fix typing
* Move logging helpers to homea new logging helper
* Lint
* Rename to KeywordMessage instead of BraceMessage
* Remove unneeded KeywordStyleAdapter
* Lint
* Use dict directly rather than dict.keys() when creating set
* Patch the version in unit tests, update logging and use parse_version
* Re-add KeywordStyleAdapter and fix tests
* Lint
* Lint
* Add person component
* Required first name.
* Optional last name and user id.
* Optionally track device trackers. Last device tracker state change will
set state.
* Set device tracker state entity_id as source attribute.
* Set coordinates of device tracker state as state attributes.
* Restore state.
* Parse restored state too
* Clean up
* Add missing property decorator
* Validate source entities as device trackers
* Only use name instead of first and last name
* Add user_id validation
* Add unique_id
* Remove not needed properties
* Uniform docstrings
* Fail component setup if no valid entities
* Add tests
* Add id and use that for unique_id
* Clean up
* Added external auth provider that calls a configurable program
Closes#19975
* Raise proper InvalidAuth exception on OSError during program execution
* Changed name of external auth provider to command_line
* Renamed program config option to command in command_line auth provider
* Made meta variable parsing in command_line auth provider optional
* Added tests for command_line auth provider
* Fixed indentation
* Suppressed wrong pylint warning
* Fixed linting
* Added test for command line auth provider login flow
* Log error when user fails authentication
* Use %r formatter instead of explicit repr()
* Mix all used names of typing module into module namespace
I consider this nasty and bad coding style, but was requested by
@awarecan for consistency with the remaining codebase.
* Small code style change
* Strip usernames with command_line auth provider
* Allow both VOLUME_STEP and VOLUME_SET
Seems like it should be possible to support both at the same time.
* Update test to allow VOLUME_SET and VOLUME_STEP
* Move group to it's own setup
* Let each component to handle restore of state
* Move constants for climate into const.py
For now import all into __init__.py to keep backword compat
* Move media plyaer constants to const.py file
For now import all constants into __init__.py to keep
backword compatibility
* Move media player to it's own file
* Move climate to it's own file
* Remove ecobee service from common components
BREAKING CHANGE
* Add tests for climate
* Add test for media_player
* Make sure we clone timestamps of state
* Add tests for groups
* Remove old tests for media player, it's handled by other tests
* Add tests for calls to component functions
* Add docstring for climate const
* Add docstring for media_player const
* Explicitly import constants in climate
* Explicitly import constants in media_player
* Add period to climate const
* Add period to media_player const
* Fix some lint errors in climate
* Fix some lint errors in media_player
* Fix lint warnings on climate tests
* Fix lint warnings on group tests
* Fix lint warnings on media_player tests
* Fix lint warnings on state tests
* Adjust indent for state tests
* start test setup
test cleanup
test deps
update switch test
actually update test deps
cleanup and remove switch from coveragerc
comment
refactor to use fixtures and shared components
lint
* remove availability part that isn't in zha yet
* review comments and cleanup
* review comments
* add switch back unil post reorg merge
* Add SmartThings Light platform and tests
* Cleaned a few awk comments
* Updates per review feedback
* Switched to super
* Changes per review feedback
* Move mqtt_mock to tests/components/mqtt/conftest.py
* Move mqtt room presence sensor test to tests/components/mqtt
* Revert "Move mqtt room presence sensor test to tests/components/mqtt"
This reverts commit e08bc143
* Decouple mqtt room presence sensor test and mqtt_mock
* Added SmartThings component and switch platform
* Corrected comment typos.
* Embedded switch platform.
* Replaced custom view usage with webhook component.
* Replaced urls with tokens in strings.
* Fixed line length.
* Use generated webhook id instead of static one.
* Reuse core constant instead of defining again.
* Optimizations in anticipation of future platforms.
* Use async_generate_path instead of hard-coded path.
* Fixed line length.
* Updates per review feedback.
* Updates per latest review feedback.