* Audit state handling of august bridges and sensors
This addresses issue #29980
* Prevent setting up august locks that do not have a bridge as they will never work
* Prevent locks showing available when their bridge is offline
* Prevent door sensors from showing available when their bridge is offline
* Prevent creating door sensors for locks that do not have them
* Prevent doorbells showing unavailable when they are in standby mode
* Set SCAN_INTERVAL for binary_sensors to 5 seconds as
data comes in from the activity endpoint more frequently
* Update homeassistant/components/august/__init__.py
raise if the detail is missing when checking doorsense
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* Handle another place where the lock detail could not exist
* Address review comments
* Handle lock detail update failing and add test
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* add oauth functionality and additional attributes
* Add tests WIP
* Make mocks work the correct way
* Use CONF_TOKEN constant for config
* Remove twitch from .coveragerc
* Update homeassistant/components/twitch/sensor.py
Lets be consistent
Co-Authored-By: springstan <46536646+springstan@users.noreply.github.com>
Co-authored-by: springstan <46536646+springstan@users.noreply.github.com>
* Computes the features of a hue group as the union of the features of the bulbs in the group
* Moved create item to a function
* Added test for hue group features
* Adjust tests after speed up to restore coverage for HomematicIP Cloud
* Fix test data
* Fixes after review
* remove duplicate cade
* remove service marker
* Support XML conversion for RESTful sensors
Many devices continue to use XML for RESTful
APIs. Interfacing with these APIs requires custom
integrations or command line fork()/exec() overhead
which many of these devices can work with as if
they were JSON using xmltojson via this spec:
https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html
This change implements converting XML output to
JSON via xmltojson so it can work with the existing
rest sensor component. As the attributes that
usually need to be scraped are deeper in the document
support for passing in a template to find the
JSON attributes that have been added. JSON APIs that
do not have their attributes at the top level
can also benefit from this change.
* Auto convert xml, change out the template for jsonpath
* Address review items and potentially unexpected normalize behavior with jsonpath
* Revert "Address review items and potentially unexpected normalize behavior with jsonpath"
This reverts commit fe9e179092.
* json_dict[0] turned out to be needed
* Fix CalDAV parsing of recurring events
Some CaDAV servers (see: SOGo) return the original event that contains
the recurrence rules. The CalDAV calendar component sorts and filters
events based on their start and end dates, and was failing to properly
show recurring events based on these recurrence rules.
This this change checks if an event has recurrence rules and changes the
start/end dates of the event to today if the event is set to occur
today. This allows the rest of the component logic to function properly.
* Use date from nextmost occurence
* Adding unit tests
* Add endless event unit test
* Create new vevent for each event recurrence today
* Remove redundant unit test
* Add timezone to events that have none
Python cannot compare them otherwise.
* Simplify code, add comments & guard clause
* Add test for recurring all day event
* Account for all-day events
* Remove redundant code
* Remove redundant code
* Remove unnecessary deepcopy
* Add hourly recurring tests
* Add tests for hourly repeating event
* Fix unit test
* Use event.copy()
* Add support for displaying Daf Yomi
* Ran black --fast
* Added docstring to get_daf
* Further lint fixes
* Remove unnecessary else
* clarify code
* Use fstrings
* pull daf yomi from hdate
* Update manifest version for daf_yomi support
* fix variable usage
* Update requirements
* Also pass in today's date as well
* Rename date variable to daytime_date
* Add tests for daf yomi sensor
* Update stale test IDs
* update ipma component for pyipma 2.0
* fix wind speed; refactor forecast
* update requirements*.txt
* fix tests; update CODEOWNERS; update pyipma to 2.0.1
* minor changes as suggested in PR
* make lint happy
* fix mocking coroutines
* restore old unique id
* fix station lat/lon; update pyipma version
* add hourly forecast option to IPMA
* add forecast tests
* use for instead of lambda
* Initial implementation of Vilfo router integration.
This commit is a combination of several commits, with commit messages in bullet form below.
* Added additional files to Vilfo integration.
* Added generated files.
* Fixed alphabetic order in generated config_flows.
* Continued implementation of config flow for Vilfo integration.
* Continued work on config_flow for Vilfo.
* Updated requirements in manifest for Vilfo Router integration.
* Some strings added to Vilfo Router integration.
* Vilfo Router integration updated with sensor support.
* Code style cleanup.
* Additional cleanup of config flow.
* Added additional UI strings for Vilfo Router
* Updated tests of config flow and fixed formatting
* Updated requirement upon vilfo-api-client.
* Sensor refactoring including support for icons
* Code style changes for Vilfo Router integration
* Code cleanup
* Fixed linting issues in Vilfo Router integration
* Fixed import order in test for Vilfo integration.
* Updates to Vilfo Router integration based on feedback
Based on the feedback received, updates have been made to the Vilfo Router integration.
A couple of the points mentioned have not been addressed yet, since the appropriate action has not yet been determined. These are:
* https://github.com/home-assistant/home-assistant/pull/31177#discussion_r371124477
* https://github.com/home-assistant/home-assistant/pull/31177#discussion_r371202896
This commit consists of:
* Removed unused folder/submodule
* Fixes to __init__
* Fixes to config_flow
* Fixes to const
* Refactored sensors and applied fixes
* Fix issue with wrong exception type in config flow
* Updated tests for Vilfo integration config_flow
* Updated dependency upon vilfo-api-client to improve testability
* Import order fixes in test
* Use constants instead of strings in tests
* Updated the VilfoRouterData class to only use the hostname as unique_id when it is the default one (admin.vilfo.com).
* Refactored based on feedback during review.
* Changes to constant names,
* Blocking IO separated to executor job,
* Data for uptime sensor changed from being computed to being a timestamp,
* Started refactoring uptime sensor in terms of naming and unit.
* Updated constants for boot time (previously uptime) sensor.
* Refactored test of Vilfo config flow to avoid patching code under test.
* UI naming fixes and better exception handling.
* Removed unused exception class.
* Various changes to Vilfo Router integration.
* Removed unit of measurement for boot time sensor,
* Added support for a sensor not having a unit,
* Updated the config_flow to handle when the integration is already configured,
* Updated tests to avoid mocking the code under test and also to cover the aforementioned changes.
* Exception handling in Vilfo Router config flow refactored to be more readable.
* Refactored constant usage, fixed sensor availability and fix API client library doing I/O in async context.
* Updated signature with hass first
* Update call to constructor with changed order of arguments
* Refresh the august access token
when needed.
Currently august will stop working when the token
expires about every six month.
This resolves issue #23788
* Make refresh_access_token_if_needed private since we do not want additional callers
* Add init
* fix unique_id computation for switches
* update konnected component to use async, config entries, registries. Pro board support and tests
* clean up formatting comments from PR
* use standard interfaces in tests
* migrate config flow to use options
* address latest pr feedback
* format for import as part of config schema validation
* address pr feedback
* lint fix
* simplify check based on pr feedback
* clarify default schema validation
* fix other schema checks
* fix translations
Co-authored-by: Nate Clark <nate@nateclark.com>
* Initial commit
* ran hassfest and gen_requirements_all scripts
* fixes per request from Paulus Schoutsen
* ran gen_requirements_all
* updated library version - removed some debug leftover
* get_requirements again...
* added documentation URL
* ran isort
* changed storage in hass.data[DOMAIN] to use entry_id instead of host
* adopted unit tests to latest fix
* Update const.py
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Add MELCloud integration
* Provides a climate and sensor platforms. Multiple platforms on one go
is not the best option, but it does not make sense to remove them and
commit them later either.
* Email and access token are stored to the ConfigEntry. The token can be
updated by adding the integration again with the same email address. The
config flow is aborted and the update is performed on the background.
* Run isort
* Fix pylint errors
* Run black
* Increase coverage
* Update pymelcloud dependency
* Add HVAC_MODE_OFF emulation
* Remove print
* Update pymelcloud to enable device type filtering
* Collapse except blocks and chain ClientNotReadys
* Add preliminary documentation URL
* Use list comp for creating model info
Filters out empty model names form units.
* f-string galore
Dropped 'HVAC' from AtaDevice name template.
* Delegate fan mode mapping to pymelcloud
* Fix type annotation
* Access AtaDevice through self._device
* Prefer list comprehension
* Update pymelcloud to leverage device type grouping
The updated backend lib returns devices in a dict grouped by the device
type. The devices do not necessarily need to be in a single list and
this way isinstance is not required to extract devices by type.
* Remove DOMAIN presence check
This does not seem to make much sense after all.
* Fix async_setup_entry
Entry setup used half-baked naming from few experimentations back.
The naming conventiens were unified to match the platforms.
A redundant noneness check was also removed after evaluating the
possible return values from the backend lib.
* Simplify empty model name check
* Improve config validation
* Use config_validation strings.
* Add CONF_EMAIL to config schema. The value is not strictly required
when configuring through configuration.yaml, but having it there makes
things more consistent.
* Use dict[key] to access required properties.
* Add DOMAIN in config check back to async_setup. This is required if an
integration is configured throught config_flow.
* Remove unused manifest properties
* Remove redundant ClimateDevice property override
* Add __init__.py to coverage exclusion
* Use CONF_USERNAME instead of CONF_EMAIL
* Use asyncio.gather instead of asyncio.wait
* Misc fixes
* any -> Any
* Better names for dict iterations
* Proper dict access with mandatory/known keys
* Remove unused 'name' argument
* Remove unnecessary platform info from unique_ids
* Remove redundant methods from climate platform
* Remove redundant default value from dict get
* Update ConfigFlow sub-classing
* Define sensors in a dict instead of a list
* Use _abort_if_unique_id_configured to update token
* Fix them tests
* Remove current state guards
* Fix that gather call
* Implement sensor definitions without str manipulation
* Use relative intra-package imports
* Update homeassistant/components/melcloud/config_flow.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* added recorder vars db_max_retries and db_retry_wait
* fixed test_recorder_setup_failure
I failed because it was missing the two new variables. I simply added these with default values.
* fixed syntax error in test_recorder_setup_failure
* fixed formatting error in test_init_py for recorder component
* fixed typo in test case
* Updated the way the default keys for db_,max_wait and db_retry_wait is set
Implemented based on suggestions from @springstan
* Updated config_schema call to adhere to Black
* changed conf.get to conf[dict] for var retrieval
* removed 2 blank lines
* Add Minecraft Server integration
* Add unit test for config flow
* Fixed some review findings and increased unit test coverage
* Fixed docstrings of new test cases
* Removed unnecessary debug log messages
* Added unique IDs and device infos and removed duplicate name validation
* Attempt to fix unit test on CI
* Return state OFF instead of UNAVAILABLE in case connection to server drops
* Added property decorator to server properties, even less debug messages, improved sensor dispatcher connection and other review findings fixed
* Moved special property handling to sensors, fixed name confusion in sensor entity, switch to HA const for scan_interval, simplified building players list string
* Improved periodic update, speeded up unit tests
* Added type hints, added callback decorator to entity update callback, added const.py to unit test exclusions
* Changed state sensor to binary sensor, removed empty unit test file, added constants for icons and units
* Let HA handle unknown state, check for None in description and players list sensor
* Removed periods at end of log messages, removed constant for default host
* Updated requirements_test_pre_commit.txt, fixed codespell findings
* Use localhost as default host
* Removed passing hass to entities, moved log message from init, moved host lower to vol, use proper patch library, patch library instead of own code
* Replaced server properties with global instance attributes, removed config option scan_interval, switch back to async_track_time_interval
* Removed description and players list sensors, added players list as state attributes to online players sensor, raise OSError instead of deprecated IOError, other minor review findings fixed
* Use MAC address for unique_id in case of an IP address as host, added getmac to manifest.json, added invalid_ip to strings.json, added new test cases for changes in config_flow, replace all IOError's with OSError, other review findings fixed
* Removed double assignment
* Call get_mac_address async safe
* Handle unavailable and unknown states to reach silver quality scale, added quality scale to manifest.json
* initial version of gdacs integration
* updated translations
* generated files
* added abbreviation
* bumped library version
* small feed entry attribute fixes
* add unit tests
* need to use original mdi name
* bumped library version
* improved entity name for earthquakes
* round vulnerability number
* typo
* support for categories
* testing support for categories
* tie longitude and latitude together
* validating categories
* simplifying setup
* passing domain as parameter
* simplified test setup
* moved test code
* simplified test code
* removed superfluous code
* changed approach to unique identifier
* changed code structure
* simplified unit system handling
* made schema a constant
* comment added
* simplifying code
* added message if location already configured
* removed unnecessary code
* simplified test code
* avoid mocking __init__
* pylint
* simplified code
* fetch categories from integration library
* setting PARALLEL_UPDATES
* setting PARALLEL_UPDATES to zero/unlimited
* added quality scale
* Add support for belgian meter and rename some sensors
* DSMR Fixes
* Add test
* More tests
* Adjust test to latest dev
* Remove unused code
* Depend on dsmr_parser 0.18
* Use entity.async_request_call in service helper
* Clean up semaphore handling
* Address comments
* Simplify call entity service helper
* Fix stupid rflink test
* Update vizio host check to handle entries that don't have port
* add comment explaining no_port test for future
* remove _name_is_same function and support user updating name in config
* Update strings.json
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* keep track of the derivative for unit_time
In this way, you will get a better estimate of the derivate during
the timescale that is relavant to the sensor.
This solved a problem where sensors have a low output resolution.
For example a temperature sensor that can only be integer numbers.
It might report many values that are the same and then suddenly go up one value.
Only in that moment (with the current implementation) the derivative will be finite.
With my proposed implementation, this problem will not occur, because it takes the average
derivative of the last `unit_time`.
* only loop as much as needed
* treat the special case of 1 entry
* add option time_window
* use cv.time_period
* fix comment
* set time_window=0 by default
* rephrase comment
* use timedelta for time_window
* fix the "G" unit_prefix and add more prefixes
https://en.wikipedia.org/wiki/Unit_prefix
* add debugging lines
* simplify logic
* fix bug where the there was a division of unit_time instead of multiplication
* simplify tests
* add test_data_moving_average_for_discrete_sensor
* fix test_dataSet6
* improve readability of the tests
* better explain the test
* remove debugging log lines
* Yield only one Speaker interface.
* Yield PowerController only is supported.
* Revert "Yield PowerController only is supported."
This reverts commit c0dbf7e4
* Add Alexa.Speaker interface properties.
* Refactor tests for Alexa.Speaker and Alexa.StepSpeaker.
* Code Smell Change.
* Fix R1705: Unnecessary "elif" after "return".
* bump pyvizio version and add additional device info
* add patches for get_model and get_version
* change keywrod argument to positional for _test_service
* added support for multiple attachments to signal_messenger integration
* updated pysignalclirestapi version in requirements_all.txt
* reworked multiple attachments feature in signal_messenger integration
* stay backwards compatible by both allowing the "attachment" and
the "attachments" attribute.
* reworked multiple attachments feature in signal_messenger integration
* stay backwards compatible by both allowing the "attachment" and
the "attachments" attribute.
* small change in signal_messenger integration
* added deprecation warning for 'attachment' attribute
* small changes in signal_messenger integration
* use 'warning' instead of 'warn' when logging the warning message
* re-generated requirements_test_pre_commit.txt
* added tests for signal_messenger integration
* regenerated requirements_test_all.txt for signal_messenger integration
* added more signal_messenger tests
* remove signal_messenger integration files from .coveragerc
* Refactor Hue Lights to use DataCoordinator
* Redo how Hue updates data
* Address comments
* Inherit from Entity and remove pylint disable
* Add tests for debounce
* Rewrite UniFi integration to use push messaging
* Add signalling for new clients/devices
* Update list of known wireless clients when we get events of them connecting
* Reconnection logic for websocket
* Fix failing tests
* Bump requirement to v12
* Add new tests
* Update homeassistant/components/unifi/controller.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>
* add media player test and update media player logic to qualify vizio for platinum quality score
* add SCAN_INTERVAL and log message once when device goes from available to unavailable and vice versa
* move test constants into one file to avoid defining dupes in each test file
* move constant to shrink diff
* move pytest fixtures to conftest.py
* remove commented out code
* move unload test to test_init
* updates to tests and logging based on review
* bypass notification service
* add fixture so component setup makes it through config flow
* split failure tests into two
* fix setup and entity check for test_init and setup failures in test_media_player
* make domain references consistent across test files
* remove logging steps that were introduced to help debug
* move common patches out to new fixture and use config entry everywhere appropriate
* fix docstring
* add test for update options to increase code coverage
* add one more assert
* refactor test_media_player to move boiler plate logic out of each test into _test_init function
* final refactor of test_media_player to move repeat logic into separate function
* update docstrings
* refactor setup failure tests to move shared logic into private function
* fix last new functions code to use variable instead of static config variable
* remove trailing comma
* test that volume_step gets properly passed to Vizio volume function
* fix comment language
* assert with unittest.mock.call in _test_service and use config_entries.async_setup instead of config_entries.async_add
* replace config_entries.async_add with config_entries.async_setup everywhere
* simplify if statement for argument assertion
* fix logging based on style guide
* remove accidentally committed changes
* update scan interval to something more reasonable and add tests for availability changes
* change filter function to list comprehension, simplify log messages, remove default entity id from logs since it is user configurable, fix docstrings
* Added support for the opening and closing states to MQTT covers
* Processed PR feedback on MQTT cover changes
* Add missing MQTT abbreviation to fix failing tests
* Fixed typo in MQTT abbreviations
* Added mqtt set cover position optimistic test
* add dispatching of groups to light
* added ha device registry device id
* added zha group object
* add group event listener
* add and remove group members
* get group by name
* api cleanup
* clean up get device info
* create and remove zigpy groups
* clean up create and remove group api
* use device id
* use device id
* cleanup
* update test
* update tests to allow group events to flow
* Update tests with rangeValue and rangeValueDelta to use int.
* Add support for rangeValueDeltaDefault for covers.
* Update tests for range changes.
* Test for AdjustRangeValue with rangeValueDeltaDefault True.
* Update tilt error.
* Add OPNSense device_tracker
This commit adds a new component for using an OPNSense router as a
device tracker. It uses pyopnsense to query the api to look at the
arptable for a list of devices on the network.
* Run black formatting locally to appease azure
* Apply suggestions from code review
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Fix issues identified during code review
This commit updates several issues found in the module during code
review.
* Update homeassistant/components/opnsense/__init__.py
Co-Authored-By: Fabian Affolter <mail@fabian-affolter.ch>
* Update CODEOWNERS for recent changes
* Fix lint
* Apply suggestions from code review
Co-Authored-By: Martin Hjelmare <marhje52@kth.se>
* More fixes from review comments
This commit fixes several issues from review comments, including
abandoning all the use of async code. This also completely reworks the
tests to be a bit clearer.
* Revert tests to previous format
* Add device detection to opnsense device_tracker test
This commit adds actual device detection to the unit test for the setup
test. A fake api response is added to mocks for both api clients so that
they will register devices as expected and asserts are added for that.
The pyopnsense import is moved from the module level to be runtime in
the class. This was done because it was the only way to make the
MockDependency() call work as expected.
* Rerun black
* Fix lint
* Move import back to module level
* Return false on configuration errors in setup
This commit updates the connection logic to return false if we're unable
to connect to the configured OPNsense API endpoint for any reason.
Previously we would not catch if an endpoint was incorrectly configured
until we first tried to use it. In this case it would raise an unhandled
exception. To handle this more gracefully this adds an api call early in
the setup and catches any exception raised by that so we can return
False to indicate the setup failed.
* Update tests
* Add pyopnsense to test requirements
* Rerun gen_requirements script
* Fix failing isort lint job step
Since opening the PR originally yet another lint/style checker was added
which failed the PR in CI. This commit makes the adjustments to have
this pass the additional tool's checks.
* Fix comment
* Update manifest.json
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
* Fix light.turn_on for emulated_hue
HarmonyHub sends `{'xy': [0, 0], 'on': True, 'bri': 0}` when turning on lights that do not support brightness control. Unfortunately current logic always uses brightness value to control on/off state which makes no sense for lights that don't support brightness at all. This change fixes that behavior, making light without brightness control usable with HarmonyHub and probably some other remotes.
* Test 'no_brightness' lights
* Track if request is local
* Cancel early if 2FA disabled
* Allow disabling 2FA for ack
* Do not mark devices with 2FA as reachable
* Add request source to GA events
* Update attribute in Alexa service call for cover tilt
* Update Tests to fix Tilt Position call.
Co-authored-by: ochlocracy <5885236+ochlocracy@users.noreply.github.com>
* use hapid as unique_id for config_entry of HomematicIP Cloud
* Add qualita_scale to manifest
* Update config_flow
* use core interface for config_flow tests
* refactor to fail earlier
* use asynctest
* rewrite tests
* rewrite tests
* fix test
* add assert
* Rewrite of Spotify integration
* Update homeassistant/components/spotify/config_flow.py
Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>
* Remove configurator dependency
* Strip whitespace from device model in case Spotify product is missing
* Ensure domain dict exists in hass data on setup entry
* Simply config validation for client id and secret
* Abort flow on any exception from spotipy
* Add tests for config flow
* Gen requirements all
* Add test package __init__
* Remove Spotify from coveragerc
* Made alias handling more robuust
* Fix supported_features for Spotify free and open accounts
* Improve error message in the logs
* Re-implement Spotify media_player
* Change media content type when play a playlist
* Process review suggestions
* Move Spotify init, static current user and supported_features
* Remove unneeded me call
* Remove playlist content type due to frontend issues
* Improve playlist handling, when context is missing
* Handle entity disabled correctly
* Handle being offline/unavailable correctly
* Bump Spotipy to 2.7.1
* Update coverage RC, mark integration silver
* Remove URI limitation, lib supports all Spotify URI's now
* Final cleanup
* Addresses Pylint error
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* Update Hue existing config entry with discovery data
* Updated method documentation comments
* Update implementation to match latest dev
* Use named argument for clarity
* Buienradar Camera for Belgium
* Voluptuous check for country code
* Black formatting
* Testing for Buienradar Belgium
* Changed MULTIPLE CHOICE variable name
* Changes from frenck review
* upgrade to aiopylgtv 0.3.0 and corresponding simplification and cleanup of webostv state tracking
* properly handle case where Live TV is not reported in list of apps
* fix tests (entity state is no longer linked to source id)
* fix pylint checks
* avoid unnecessary retrieval of channel list
* use only standard home assistant states
* add missing tests
* readd removed test
* add zeroconf discovery support for vizio integration
* no mock_coro_func needed
* add reasonable timeout and don't log exceptions from pyvizio due to timeout
* add test to test options update and bump pyvizio to avoid timeout issues
* update requirements_*
* fix gaps in coverage
* change return hint for async_setup_entry
* use source variables instead of strings
* only get unique ID if about to create entry
* update based on review
* Revert "update based on review"
This reverts commit 0d612a90eb7d02c92061f902973e527267e3110a.
* f-string
* fix last review
* revert cleanup changes to simplify PR
* remove unnecessary ConfigFlow object variables to simplify logic
* revert cleanup changes to make review easier, noted for future cleanup
* revert cleanup changes to make review easier, noted for future cleanup
* move zeroconf service type constant to test module
* enhance zeroconf service info decoding to include raw bytes
* Update homeassistant/components/zeroconf/__init__.py
Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>
* fix test based on last commit
* fix test based on last commit
* remove .keys() when asserting processed and raw service info properties
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* create derivation component
based on integration component
remove left and right
* Update test
(was'n saved)
* add some functionnal point test
* Change derivation to derivative
* Continue migration from derivation to derivative
* Add codeowners info
* fix tests typo and values
* Improve code from reviewer
add test case
fix test values
still a prefix issue that should not
* create derivation component
based on integration component
remove left and right
* Update test
(was'n saved)
* add some functionnal point test
* Change derivation to derivative
* Continue migration from derivation to derivative
* Add codeowners info
* fix tests typo and values
* Improve code from reviewer
add test case
fix test values
still a prefix issue that should not
* Update homeassistant/components/derivative/sensor.py
Fix test issue with unit of measurement
Co-Authored-By: Santobert <tobhaase@gmail.com>
* Fix review
Move ValueError to SyntaxError
* precise state test
* un comment original tests and remove error tests
* Fix isort issue
* Fix review
- update doc link
- migrate to general const import
* Rollback import conf_unit, just defined localy
Co-authored-by: Santobert <tobhaase@gmail.com>
* Add foundation for integration services
* Fix tests
* Remove async_get_platform
* Migrate Sonos partially to EntityPlatform.async_register_entity_service
* Tweaks
* Move other Sonos services to media player domain
* Move other Sonos services to media player domain
* Address comments
* Remove lock
* Fix typos
* Use make_entity_service_schema
* Add area extraction to async_extract_entities
Co-authored-by: Anders Melchiorsen <amelchio@nogoto.net>
* use media player defined device classes instead of custom ones, add options flow test, add timeout options parameter
* make options update error more generic
* fix config flow options update logic
* simplify logic for options update during import
* use platform list for load and unload
* update private config flow function name and description
* fix grammar in strings.json
* update mock config variable names to be more accurate
* remove timeout conf option, create device_class property
* update requirements
* update .coveragerc to indicate that config_flow has tests
* fix source of device_class property and move constants to const.py
* fix grammar in error message
* remove redundant device check in async_setup_entry since device connection is checked during config flow
* revert change to async_setup_entry, raise ConfigEntryNotReady if device can't be connected to
* update error text
* add more context to error text
* Refactor input_datetime.
Keep the state as datetime, but format accordingly to has_time and
has_date.
* Use config dict for input_datetime.
* Add tests.
* Lint
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* 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
* Make met config flow tests more robust
* Fix test with default form values
* Remove not needed test
* Clean create entry test
* Clean double test
* Clean last tests
* Fix docstring
* 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>
* 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
* Added support for template alarm panel
* Rewrote tests in new async format
* Fix stale docstring
* Update to tests, standardization on NAME vs FRIENDLY_NAME
* 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>
* 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>
* 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
* 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
* Migrate automatic tests from coroutine to async/await
* Remove unneeded side effect
* Replace unittest with asynctest, add additional asserts to tests