* add config flow support, device registry support, available property
* raise PlatformNotReady if HA cant connect to device
* remove test logging statement and fix integration title
* store import and last user input values so user can see errors next to value that caused error
* add PARALLEL_UPDATES
* add missing type hints
* add missing type hints to tests
* fix options config flow title
* changes based on review
* better key name for message when cant connect
* fix missed update to key name
* fix comments
* remove logger from test which was used to debug and update test function names and docstrings to be more accurate
* add __init__.py to vizio tests module
* readded options flow and updated main component to handle options updates, set unique ID to serial, fixes based on review
* pop hass.data in media_player unload instead of in __init__ since it is set in media_player
* update requirements_all and requirements_test_all
* make unique_id key name a constant
* remove additional line breaks after docstrings
* unload entries during test_user_flow and test_import_flow tests to hopefully reduce teardown time
* try to speed up tests
* remove unnecessary code, use event bus to track options updates, move patches to pytest fixtures and fix patch scoping
* fix comment
* remove translations from commit
* suppress API error logging when checking for device availability as it can spam logs
* update requirements_all and requirements_test_all
* dont pass hass to entity since it is passed to entity anyway, remove entity unload from tests, other misc changes from review
* fix clearing listeners
* use config_entry unique ID for unique ID and use config_entry entry ID as update signal
* update config flow based on suggested changes
* update volume step on config import if it doesn't match config_entry volume step
* update config_entry data and options with new volume step value
* copy entry.data and entry.options before updating when updating config_entry
* fix test_import_entity_already_configured
* Store last working HTTP settings
* Add safe mode
* Fix tests
* Add cloud to safe mode
* Update logging text
* Fix camera tests leaving files behind
* Make emulated_hue tests not leave files behind
* Make logbook tests not leave files behind
* Make tts tests not leave files behind
* Make image_processing tests not leave files behind
* Make manual_mqtt tests not leave files behind
* Added custom validator function for speed list
* Replace CONF_SPEED_STATE_TOPIC with CONF_SPEED_COMMAND_TOPIC to determine SUPPORT_SET_SPEED
* Revert "Added custom validator function for speed list"
This reverts commit f000396fa6.
* Replace CONF_OSCILLATION_STATE_TOPIC with CONF_OSCILLATION_COMMAND_TOPIC to determine SUPPORT_OSCILLATE
* Support color light with nightlight
* Better nightlight mode support check
* Lint fixes
* Remove brightness control for color light with nightlight mode
* Updated NSAPI to version 3.0.0
* Fixed code style error
* Restructured API access
* Improved construction of attributes
* Fixed handling of API output
* Added @YarmoM as code owner
* Updated CODEOWNERS
* Reverted changes for full backwards compatibility
* Fixed bad conditional
* Simplify conditional
* ZHA cover device support
* flake8
* flake8, black
* isort
* pylint
* more test
* use zigpy provided functions
* black
* handle command errors, better state handling
* black
* more test
* lint
* Update ZHA cover tests coverage.
Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
* Refactor to use ids in data class
* Use station_id
* Refactor Netatmo to use oauth
* Remove old code
* Clean up
* Clean up
* Clean up
* Refactor binary sensor
* Add initial light implementation
* Add discovery
* Add set schedule service back in
* Add discovery via homekit
* More work on the light
* Fix set schedule service
* Clean up
* Remove unnecessary code
* Add support for multiple entities/accounts
* Fix MANUFACTURER typo
* Remove multiline inline if statement
* Only add tags when camera type is welcome
* Remove on/off as it's currently broken
* Fix camera turn_on/off
* Fix debug message
* Refactor some camera code
* Refactor camera methods
* Remove old code
* Rename method
* Update persons regularly
* Remove unused code
* Refactor method
* Fix isort
* Add english strings
* Catch NoDevice exception
* Fix unique id and only add sensors for tags if present
* Address comments
* Remove ToDo comment
* Add set_light_auto back in
* Add debug info
* Fix multiple camera issue
* Move camera light service to camera
* Only allow camera entities
* Make test pass
* Upgrade pyatmo module to 3.2.0
* Update requirements
* Remove list comprehension
* Remove guideline violating code
* Remove stale code
* Rename devices to entities
* Remove light platform
* Remove commented code
* Exclude files from coverage
* Remove unused code
* Fix unique id
* Address comments
* Fix comments
* Exclude sensor as well
* Add another test
* Use core interfaces
* Use collections for input_number.
* Add tests.
* Typo fix.
* Make editable a public attribute.
* Move async_setup to top.
* Update homeassistant/components/input_number/__init__.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Update homeassistant/components/input_number/__init__.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Cleanup.
* async_write_ha_state()
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* add device_info property and move component to async
* use new VizioAsync class to have proper async support
* remove hass from VizioDevice init since it is not needed
* update requirements_all
* missed type hint
* updates based on review
* pyvizio version bump
* additional fixes based on review
* mistake in last commit
* remove device_info property because it can't be used unless this integration has config flow support
* Added preset scheduling to radiothermostat. Added alternate scheduling & religious scheduling to climate/const.py
* Fix Flake8 Errors in climate.py
* Fixing more flake8 errors in climate.py
Removed duplicate set_preset_mode def
* Fixed more flake8 errors.
Please be the end of these errors.
* Fixed black formatting
* Fixed black, broke flake8, fixed flake8
* Fixed CODE_TO_FAN_STATE black error
* Fixed isort issues
* Local isort broke black formatting
Docs should run isort before black. Default isort will undo certain black formatting.
* Removed last commas from imports
* Added removed line
* Fixed formatting
Hopefully this is what the CI pipeline is looking for.
* Ran isort from git repo root, utilizing setup.cfg.
* One more try
* fixed added definition and fixed logger string
* fixed formatting
* lost a close-paren
* Update const.py
Removed radiotherm specific presets
* Update climate.py
Moved preset definitions into radiotherm climate.py
* added update listener if max_age is set
* remove commented out code
* streamline test code
* schedule next update based on the next state to expire
* fixed update process
* isort
* fixed callback function
* fixed log message
* removed logging from test case
* Add boundary name to state if it exists
If the robot is cleaning a pre defined area with a name, add the name to the state-attribute.
* Reformat patch
* Removing whitespace
* Even more formatting
That black did not catch on first run...
* Added support for template alarm panel
* Rewrote tests in new async format
* Fix stale docstring
* Update to tests, standardization on NAME vs FRIENDLY_NAME
* Steam Online: Add last_online and Level attributes
* Steam Online: Add last_online and Level attributes
* Fixes from comments on initial pull request
* Push attributes only if they are not None
* Split async_update
* Use pytest parameters to avoid duplicate code
* Fix UnboundLocalError
* Test error rendering for template state
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* move constants, move schema validation to init, prepare for zeroconf/config flow
* mistake in refactor
* update .coveragerc, move validate_auth to __init__, only attempt to get ESN if device setup is validated
* fix schema validation
* remove suppress warning config option
* remove config_flow from manifest since its not ready yet
* update requirements_all.txt
* fix issue with merge conflict
* Refactor input_boolean to use config dict for instantiation.
* Refactor input_boolean to use YamlCollection.
* Add storage collection to input_boolean.
* Update homeassistant/components/input_boolean/__init__.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Doh.
* Address comments.
* Add editable device state attribute.
* Clean up entities from entity registry on removal.
Reload yaml from correct source.
* Add tests.
* Update homeassistant/components/input_boolean/__init__.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Don't reset entity state on updates.
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* move constants, move schema validation to init, prepare for zeroconf/config flow
* update requirements_all and make setup validation more pythonic
* mistake in refactor
* un-revert change from previous PR
* rename schema var
* update .coveragerc, move validate_auth to __init__, only attempt to get ESN if device setup is validated
* reinstate validate_setup but change logic to use new connection test function
* fix schema validation
* simplify string empty check logic
* missed commit
* Initial implementation
* Passing autobypass parameter to constructor, as suggested
* Black formatting
* Removed default value from autobypass parameter of the constructor, as it's redundant
* Add pilight dimmer as light component
* fix CI errors
* fix missing new lines
* improve formatting and addresses comments of @springstan
* rename config parameter and remove super() call to match pylint
* import only used constants of the pilight component
* Add myself to the code owners
* fix CODEOWNERS
* Add tests
* Add FileSync test
* Fill in services.yaml for 'androidtv.adb_filesync' service
* Update example paths in services.yaml
* Bump androidtv to 0.0.37
* Bump androidtv to 0.0.37
* Bump androidtv to 0.0.37
* Import LockNotAcquiredException
* Import LockNotAcquiredException from androidtv.exceptions
* Rename 'host' to 'address'
* Add a logging statement when an ADB command is skipped
* Check hass.config.is_allowed_path(local_path)
* Add return
* Fix pylint
* Reduce duplicated code (AndroidTVDevice vs. FireTVDevice)
* Split 'adb_filesync' service into 'download' and 'upload' services
* Don't use '.get()' for required data; return if the services are already registered
* Replace "command" with ATTR_COMMAND
* Don't try to connect to a device if it is a duplicate
* add surepetcare
* cleanup
* remove unused imports and comments
* remove comment
* fix bug which prevented updating the sensors
* improve config validation
* fix voluptuous usage
* fix format & credential storage
* various fixes to hass-conform
* small format fixes
* change False to None
* still trying to be hass-conform
* remove unused class
* fix imports
* fix f-string
* add guard clause?!
* central data fetch
* do not pass in hass, will be provided automatically
* make the linters happy
* disable constant-test warning and add commas
* worksforme
* fix link in manifest
* remove icon
* bump surepy to 0.1.5
* worksforme
* small doc fixes
* add discovery_info guard
* result of another awesome review
* and again :)
* exclude surepetcare in .coveragerc
* Add LED control
* Bump python-velbus library to 2.0.35
To have LED control available in library
* Apply black formating
* Fix no-else-return pylint error
* Changed to f-string and more dry code
* Rewrite turn_on for LED control
* Preserve new BLE device name if one seen before the last scan but not on it
* Save an indented else block
* Use async_fire_time_changed and mock_device_tracker_conf in tests
* add unique id property for Vizio devices so they get added to entity registry
* update requirements
* small change to make code more readable
* update to use f-string for consistency
* fix property name
* set unique_id to none if serial number couldnt be found
* set unique_id to none
* ESN should be globally unique so no device type needed. pyvizio will set ESN to None if ESN is unobtainable
* Simplify media player source list
Google don't need a whitelisted set of modes anymore. So let's just forward any mode that we have.
* Report current mode with the setting name, not a synonym
* Refactor mode generation to support other modes
* Support sound mode as mode as well
* Adjust failing test now with sound modes
* Make sure first poll happens after sub-platforms are loaded and entities are created.
* Function dosn't need to return anything
* Don't forward entry if already forwarded it
* add KEF speakers platform for the integration
This will work with the KEF LS50 Wireless and KEF LSX speakers.
The development of this code happened on https://github.com/basnijholt/media_player.kef
* rename DATA_KEF -> DOMAIN
* use aiokef v0.2.0 and support LSX and new features
* sort imports
* fix @MartinHjelmare's suggestions
* remove _CONFIGURING
* change STATE_UNKNOWN to None
* use lat and long for unique_id
* bump aiokef to v0.2.2
* use config[ATTR] instead of config.get(ATTR)
* use getmac
* fix case when MAC is None
* use host as instance lifetime id
* fix requirements
* HomeKit: update position state characteristic for covers
position state is a mandatory characteristic for HK window coverings
* Test position state characteristic
Convert values to integer if rounding precision is zero. With that a
value which is an integer before filtering can be configured to stay
integer when using precision = 0. This also aligns behavior of filters
to how rounding behaves in tempaltes (homeassistant/helpers/template.py,
function forgiving_round).
* Use config entry unique id
* Clean up
* Backwards compatiblity note
* Fix some of Balloobs comments
* Bump dependency to v66
* Black somehow missed config flow tests...
* Move set unique ID til after possibility to update existing entry
* Add SUPPORT_STREAM to supported_features.
* Implement stream_source with channel RTSP URIs.
* Add Tests for Stream Support.
* Make stream_source async.
* Removed unused import.
* Re-wrote test to remove warning, and lint error.
* Add generic command functionality to denonavr
* add minimal unit tests for denonavr
* fix import order
* simplify denonavr unit test
* handle domain specific service calls with dispatcher
* update unit tests
* update unit tests
* remove unnecessary return value
* fix handling of mock instances in unit tests
* migrate webostv to new aiopylgtv version of the library and add support
for generic commands, input/button commands, and callback state updates
* update requirements
* cleanup and bump aiopylgtv version
* update webostv unit tests
* make webostv unit tests work with python 3.7
* cleanup for code checks
* cleanup and code review
* make all client request functions coroutines
* make host required for webostv configuration
* remove generic command and button functionality plus related cleanup
* fix previous track function
* update unit tests
* fix imports for unit tests
* update unit test
* further unit test updates
* remove unnecessary setup call in unit tests
* restore previous behaviour with client key config file in hass configuration directory
* Refactor ZHA component tests fixtures.
* Add tests for ZHA device discovery.
* Refactor ZHA registry MatchRule.
Allow callables as a matching criteria.
Allow sets for model & manufacturer.
* Minor ZHA class registry refactoring.
Less cluttered strict_matching registrations.
* Add entities only if there are any.
* Migrate rest of ZHA platforms to ZHA registry.
* Pylint fixes.
* Update lock.py
Allow different command and state topic + different command and state values.
* Formatting updated after black run
* TC updated to reflect different state & cmd values
* Abbreviations for lock states added
* additional non-default state test
* whitespaces fixed
* black formatting run
* [solaredge] Reduce Severity of Log Line
This log error happens frequently for some sites, but it shouldn't be an error.
It is expected, per the SolarEdge Monitoring API, that some sites do not
support this information, and the expected result is that this would be
empty (see comments on #27959).
Fixes#27959
* Fix a typo
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
* Added support for Somfy RTS wireless power socket and
Somfy Temperature Sensore Thermos Wirefree io
* Added code formatting fixes for commit 5faaf9c
* added support for RollerShutterRTSComponent from Somfy
* Added support for RTS roller shutter in set_cover_position
* Add support for Somfy RTS power socket and Somfy io temperature sensor
* black and isort fixes
* homematic: Add host port config for HMIP-only CCUs
When adding a host (CCU) to the homematic component currently the hardcoded port 2001 is used to communicate with it.
However that port is only available on the target if the target supports HM (wireless) protocol which is not the case e.g. for
the Hass.io Homematic CCU addon when running in HMIP-only mode with the HMIP-RFUSB stick.
This allows to change the port home assistant uses to talk to the CCU in order to provide services under hte homematic homain, e.g. homematic.set_variable_value
The default value for this option is the old hardcoded value this the change should be backwards compatible with existing configurations.
* Change style of config retrieval
* Added localip component
* Split config and core logic, and migrate to sensor platform (requested by @MartinHjelmare)
Also allow overriding the sensor name via the config
* Tweak docstring
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Initial support for config entries
* Rename localip to local_ip (1/2)
* Rename localip to local_ip (2/2)
* Add test for config_flow
* Split and rename tests
* Remove unneeded code from config_flow
* Implement configuration as config entry import. Other misc requested changes from code review.
* Fix tests
* minor code review fixes
* remove unneeded code
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
* fix handling of symlinked device decriptors
* make check for symlinked paths more efficient
* make variable names pylint compliant
* move sync io during setup and device connect/disconnect to executor thread pool
* move remaining sync io during setup to executor thread pool
* remove unnecessary lambda functions
* Added support for Somfy RTS wireless power socket and
Somfy Temperature Sensore Thermos Wirefree io
* Added code formatting fixes for commit 5faaf9c
* added support for RollerShutterRTSComponent from Somfy
* Added support for RTS roller shutter in set_cover_position
* added support for enocean window handle FA 10 00 (Hoppe)
* removed spaces in empty lines
* removal of rawdata attribute / code style
* isort fix
* PyLint fixes
* Improvements after review suggestions: rename device class to sensor type to avoid ambiguousness
* added import for DEVICE_CLASS_POWER from const.py
* removed window handle unit
* Pull track position from MPD status()
This allows the progress bar to work when using the media-control card in lovelace.
* Actually commit flake8 fix!
* Extra documentation.
Mainly to trigger CI rerun.
* Updated to use self._media_position
* Add support for HobbyBoards sensors: Hub, Humidity, Moisture, PulseCounter
Add support for an owserver running on a remote host
* Cleanup and fixes for style/etc
* Forgot to convert to f-strings.
* Update with changes requested by @MartinHjelmare
* Pylint
* Fix to None
* Reverse logic for hobbyboard test to eliminate pylint complaint
* Modified manifest to list myself as codeowner
* Move some functions down into OneWireProxy instead of the top OneWire
* Oops, missed some decode()'s
* And another!