* Moved climate components with tests into platform dirs.
* Updated tests from climate component.
* Moved binary_sensor components with tests into platform dirs.
* Updated tests from binary_sensor component.
* Moved calendar components with tests into platform dirs.
* Updated tests from calendar component.
* Moved camera components with tests into platform dirs.
* Updated tests from camera component.
* Moved cover components with tests into platform dirs.
* Updated tests from cover component.
* Moved device_tracker components with tests into platform dirs.
* Updated tests from device_tracker component.
* Moved fan components with tests into platform dirs.
* Updated tests from fan component.
* Moved geo_location components with tests into platform dirs.
* Updated tests from geo_location component.
* Moved image_processing components with tests into platform dirs.
* Updated tests from image_processing component.
* Moved light components with tests into platform dirs.
* Updated tests from light component.
* Moved lock components with tests into platform dirs.
* Moved media_player components with tests into platform dirs.
* Updated tests from media_player component.
* Moved scene components with tests into platform dirs.
* Moved sensor components with tests into platform dirs.
* Updated tests from sensor component.
* Moved switch components with tests into platform dirs.
* Updated tests from sensor component.
* Moved vacuum components with tests into platform dirs.
* Updated tests from vacuum component.
* Moved weather components with tests into platform dirs.
* Fixed __init__.py files
* Fixes for stuff moved as part of this branch.
* Fix stuff needed to merge with balloob's branch.
* Formatting issues.
* Missing __init__.py files.
* Fix-ups
* Fixup
* Regenerated requirements.
* Linting errors fixed.
* Fixed more broken tests.
* Missing init files.
* Fix broken tests.
* More broken tests
* There seems to be a thread race condition.
I suspect the logger stuff is running in another thread, which means waiting until the aio loop is done is missing the log messages.
Used sleep instead because that allows the logger thread to run. I think the api_streams sensor might not be thread safe.
* Disabled tests, will remove sensor in #22147
* Updated coverage and codeowners.
* Consolidate
* Fix tests
* Update imports
* Fix import
* Use importlib because integration and package share name
* Fix more tests
* Update .coveragerc and CODEOWNERS
* bug fixing for MagicHome LEDs with flux_led component.
* corrections of the fixes for flux_led
* now asyncio sleep and turn on with brigthness possible
* indention fix with flux_led
* async now works
* houndci fixes
* little fixes for flux_led
* self._color fix for flux_led
* Add docstring
Nanoleaf component now supports both nanoleaf lights, Aurora and Canvas
Changed the dependency to pynanoleaf, nanoleaf does not seem to be
maintained anymore
* {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...)
* Fix for #19072
PR #19072 introduced the custom_effect feature but it didnt make it optional as the documentation states.
This causes error on startup and the component does not work.
```
Error while setting up platform flux_led
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity_platform.py", line 128, in _async_setup_platform
SLOW_SETUP_MAX_WAIT, loop=hass.loop)
File "/usr/lib/python3.5/asyncio/tasks.py", line 400, in wait_for
return fut.result()
File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
raise self._exception
File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/light/flux_led.py", line 135, in setup_platform
device[CONF_CUSTOM_EFFECT] = device_config[CONF_CUSTOM_EFFECT]
KeyError: 'custom_effect'
```
Changing this line to make the custom_effect optional as the original intention.
* Update flux_led.py
Flux Led controllers support defining a custom effect. User may define
up to 16 colors, speed of switching between them, and transition type.
Additional changes:
- add support for reporting currently running effect on the controller.
- make effects list sorted, so it's easier to find specific effect in
the list.
* EverLights light integration. Supports single color (with color and brightness parameters) or saved pattern (with effect parameter).
* Fix pylint parameter name warning.
* Code review feedback.
* Add tests for the two helper functions of EverLights component.
* Fixes for review feedback.
* Change test style.
* Style fixes for hound.
* Added relay ports to LCN lights platform
* Exchanged validation for ports with uppercase validator. Makes interfacing with pypck enums much more simple.
* Removed supported_features property as it is correctly inherited from parent
* Removed type annotations.
Calling clear all is enough to turn off the light. Calling the color
command makes the light no longer function until clear all is called
again. The component calls clear all beforing turning it on which is
why it works through home assistant. However if you try to control the
light via the hyperion app or through kodi after it has been turned off
via home assistant it will not function until you call clear all again.
* Preparing for transition to config flow
Added multiple gateway support
Reworked parameter flow to platforms to enable multiple controllers
Breaking change to config, now a list of gateways is expected instead of a single config
* Updated coveragerc
Added new location of fibaro component
* Fixes based on code review and extended logging
Addressed issues raised by code review
Added extended debug logging to get better reports from users if the device type mapping is not perfect
* Changhes based on code review
Changes to how configuration is read and schemas
Fix to device type mapping logic
* simplified reading config
* oops
oops
* grr
grr
* change based on code review
* changes based on code review
changes based on code review
* ADS light breaks if optional parameter adsvar_brightness is not set
Just a small change to prevent exception if optional parameter adsvar_brightness is not set
* corrected blank lines
* Initial commit of LCN component and light platform
* Corrected pre-review comments
* Fixed dimming behaviour in combination with transitions for lcn lights
* Removed unused logger
* Combined __init__.py and core.py into lcn.py component. Bumped to pypck==0.5.6
* Fixed .coveragerc
* Bumped to pypck==0.5.7
* Bump to pypck==0.5.8
* Fixed requirements_all.txt
* Moved unique generation of connection names to config schema's validator
* Minor changes due to review comments.
Bump to pypck==0.5.9.
* Address_connection is passed into LcnDevice
* Set should_poll property on LcnDevice to return False
* Moved platform config validation to component. Load platform using discovery helper
* Furtehr changes due to the review
* Light configuration is set required as there are no other platforms up to now
* Added Lutron Homeworks components.
* Made all requested changes other than config.
* Removed commented out code.
* Removed binary_sensor.
Implemented new signal/events for button presses.
Cleaned up some data passing.
* Fixed minor formatting.
* Got rid of unused config stuff.
Reordered imports.
* Missed removing vol, and forgot an extra line.
* More requested changes
Removed HomeworksController, it wasn't needed.
* Removed stale code.
* Imperative doc change.
* Implement async_configure() method for ZHA entities.
Allow attribute reporting configuration to be stored as dict of zha
entity.
* Update ZHA platform to use new attribute reporting configuration.
* Use const declaration instead of magic numbers.
* Add support for manufacturer_id in ZCL attribute reporting configuration.
* Refactor async_configure() method.
Rename attribute reporting dict to zcl_reporting_config.
* WeMo - Various fixes and improvements
Various fixes & improvements to the WeMo components, including:
-- Fixes to rediscovery
-- New reset filter service for the WeMo Humidifier
-- Switched the remainder of the WeMo components to async IO
-- Removed any remaining IO in entity properties and moved them to the polling/subscription update process
* WeMo - Fix pywemo version and remove test code from WeMo fan component
* WeMo Humidifier - Add services.yaml entry for reset filter life service
* WeMo - Update binary_sensor component to use asyncio
* WeMo - Add available property to binary_sensor component
* WeMo - Fixed line length issue
* WeMo - Fix issue with discovering the same device multiple times
* WeMo - Fix for the fix for discovering devices multiple times
* WeMo - Fix long lines
* WeMo - Fixes from code review
* WeMo - Breaking Change - entity_ids is now required on wemo_set_humidity
* WeMo - Code review fixes
* WeMo - Code review fixes
* WeMo - Code review fixes
* Adding basic Plum Lightpad support - https://plumlife.com/
* Used Const values
is_on is a bool
* Added LightpadPowerMeter Sensor to the plum_lightpad platform
* Moved to async setup, Introduced a PlumManager, events, subscription, Light and Power meter working
* Added PlumMotionSensor
* Added Glow Ring support
* Updated plum library and re-normalized
* set the glow-ring's icon
* Naming the glow ring
* Formatting and linting
* Cleaned up a number of linting issues. Left a number of documentation warnings
* setup_platform migrated to async_setup_platform Plum discovery run as a job
* bumped plumlightpad version
* On shutdown disconnect the telnet session from each plum lightpad
* Cleanup & formatting. Worked on parallell cloud update
* Moved setup from async to non-async
* Utilize async_call_later from the helpers
* Cleanedup and linted, down to documentation & one #TODO
* Remove commented out debug lines
* Fixed Linting issues
* Remove TODO
* Updated comments & fixed Linting issues
* Added plumlightpad to requirements_all.txt
* Fixing imports with isort
* Added components to .coveragerc
* Added PLUM_DATA constant for accessing hass.data[PLUM_DATA]
* used dictionary syntax vs get(...) for config
* Linting needed an additonal line
* Fully async_setup now. removed @callback utilize bus events for detecting new devices found.
* Upgraded to plumlightpad 0.0.10
* Removed extra unused PLATFORM_SCHEMA declarations
* Moved listener attachment to `async_added_to_hass` and removed unused properties & device_state_attributes
* Utilized Discovery when devices were located
* Linting and cleanup
* used `hass.async_create_task` instead of `hass.async_add_job` per Martin
* Removed redundant criteria in if block
* Without discovery info, there is no need to setup
* Better state management and async on/off for Glow Ring
* renamed async_set_config back to set_config, fixed cleanup callback and Plum Initialization
* Fixed flake8 linting issues
* plumlightpad package update
* Add 'motion' device_class to Motion Sensor
* Fixed last known Linting issue
* let homeassistant handle setting the brightness state
* String formatting vs concatenation
* use shared aiohttp session from homeassistant
* Updating to use new formatting style
* looks like @cleanup isn't neccesary
* ditch the serial awaits
* Ensure async_add_entities is only called once per async_setup_platform
* Creating tasks to wait for vs coroutines
* Remove unused white component in the GlowRing
* Used local variables for GlowRing colors & added a setter for the hs_color property to keep the values in sync
* Linted and added docstring
* Update the documentation path to point to the component page
* Removed the extra sensor and binary_sensor platforms as requested. (To be added in later PRs)
* Update plum_lightpad.py
* Update plum_lightpad.py
* Add Philips Moonlight Bedside Lamp support
* Update comment
* Make hound happy
* Wrap the call that could raise the exception only
* Remote blank line
* Use updated python-miio API
* move component to a package
* move TelldusLiveEntry to separate file
* refactor
* move entities from a shared container
* using the dispatch helper instead for communication between component and platforms
* updated covereagerc and codeowners
* suggestions from MartinHjelmare
* don't make update async
* "Strip is good!"
* Added lightwave components for switches and lights.
* Address warnings raised by Hound
* Correcting lint messages and major typo. This time tested before commit.
* Trying to fix author
* Minor lint changes
* Attempt to correct other lint error.
* Another lint attempt.
* More lint issues.
* Last two lint errors! Hurrah.
* Changes after review from fabaff.
* Moved device dependent code to PyPi.
* Replaced DEPENDENCIES with REQUIREMENTS
* Updated following code review from Martin Hjelmare.
* Added lightwave to requirements_all.txt
* Omit lightwave from tests.
* Updated requirements_all.txt
* Refactored how lightwave lights and switches load.
* Removed imports that were no longer required.
* Add guard for no discovery_info.
* Make it a guard clause and save indentation. Rename LRFxxx to LWRFxxx.
* Sorted imports to match style guidelines.
* Correct return value.
* Update requirements_all.txt
* Catch case where we have no lights or switches configured.
* Improve configuration validation.
* Restore states through a JSON store
* Accept entity_id directly in restore state helper
* Keep states stored between runs for a limited time
* Remove warning
* Use asyncio Lock for fibaro light
* line length and empty line at end
* async turn_off
Turned the turn_off into async as well
* bless you, blank lines...
My local flake8 lies to me. Not cool.
Remove the return value from setup_platform
Convert LutronLight.__init__ to use super() when referencing the parent class.
Change device_state_attributes() to use lowercase snakecase (Rename 'Lutron Integration ID' to 'lutron_integration_id')
* Added Fibaro omcponents
Added cover, light, sensor and switch components
* Improvements based on code review
Improvements based on code review
* Fixes based on code review
Fixes based on code review
* Changes to light behavior based on code review
Changes to light behavior based on code review
* Internal changes
Changed how brightness is represented internally.
It should have no impact on functionality.
* Update Avi-On to work with the API.
* Use voluptuous defaults instead of .get()
* Bump library version.
* Remove unnecessary voluptuous defaults. Fix manually-configured devices.
API-discovered devices are already Avion objects, but manually-configured devices need to be instantiated as Avion objects first.
* Use .get() where appropriate.
* Remove default
* Enable brightness slider for RGB
If we are using RGB with no brightness topic, the brighness slider
should still be visible, as we can scale the RGB amount to give us the
brightness.
* Output RGB scaled by brightness
If we are outputting to an RGB device, but do not have a dedicated
brightness topic set, when the brightness slider is changed, we should
output the current colour's HS, with the V coming from the brightness
slider.
* Brightness from RGB when we're not using a brightness topic
When we aren't using a brightness topic, set the brightness slider based
on the received value from an RGB -> HSV conversion.
* Test for new brightness state scaled by RGB
This adds a test to make sure the brightness stored in the state is
being computed correctly from the RGB value when a dedicated brightness
topic is not set.
* Changes from review
Fixes formatting of supported features flags, and checks HS colour
hasn't been set when operating in RGB-only mode
* Set optimistic brightness correctly in rgb mode
When we're using rgb mode to set the brightness, we want to set
optimistic brightness if:
we are running in optimistic mode
OR
the brightness state topic isn't set and we have a brightness command topic
OR
the rgb state topic isn't set and we don't have a brightness command topic
* Add test for turn_on in RGB brightness mode
* Add device_registry support for sensor and switch domains
* Add device_registry support for light
* Add device registry to binary_sensor, climate, cover
* Add device registry to zwave fan
* Fix test for config entry loading
* lint
* revert erroneous modification
* Revert device_registry.py change
* Provide an individual color temperature range per Yeelight model
* Fix lint
* Bump yeelight version
* Remove unused const
* Enable SUPPORT_COLOR_TEMP for BulbType.WhiteTemp