* 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
* 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>
* 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