* Use snapshot testing in NAM diagnostics
* Use snapshot testing in NAM sensor
* Add NAM data fixture
---------
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
* Use snapshot testing in NextDNS sensor
* Use snapshot testing in NextDNS switch
* Use snapshot testing in NextDNS binary sensor
* Use snapshot testing in NextDNS button
---------
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
* Default names for visible profiles
* Increase number of devices in test
* remove unnecessary check
* Add testcase and split another into two
* Add type annotations and docstring
* Remove code which not belongs to the PR
* Add myself to codeowners
* Upgrade QBittorrent integration to show torrents
This brings the QBittorrent integration to be more in line with the Transmission integration. It updates how the integration is written, along with adding sensors for Active Torrents, Inactive Torrents, Paused Torrents, Total Torrents, Seeding Torrents, Started Torrents.
* Remove unused stuff
* Correct name in comments
* Make get torrents a service with a response
* Add new sensors
* remove service
* Add service with response to get torrents list
This adds a service with a response to be able to get the list of torrents within qBittorrent
* update
* update from rebase
* Update strings.json
* Update helpers.py
* Update to satisfy lint
* add func comment
* fix lint issues
* another update attempt
* Fix helpers
* Remove unneccesary part in services.yaml and add translations
* Fix return
* Add tests
* Fix test
* Improve tests
* Fix issue from rebase
* Add icon for get_torrents service
* Make get torrents a service with a response
* remove service
* Add service with response to get torrents list
This adds a service with a response to be able to get the list of torrents within qBittorrent
* Update to satisfy lint
* Handle multiple installed integrations
* fix lint issue
* Set return types for helper methods
* Create the service method in async_setup
* Add CONFIG_SCHEMA
* Add get_all_torrents service
* fix lint issues
* Add return types and ServiceValidationError(s)
* Fix naming
* Update translations
* Fix tests
* Migrate device_sun_light_trigger to use async_track_state_change_event
async_track_state_change is legacy and will eventually be deprecated after
all core usage is removed. There are only two places left
* coverage
* Skip processing websocket_api schema if has no arguments
About 40% of the websocket commands on first connection have
no arguments. We can skip processing the schema for these cases
* cover
* fixes
* allow extra
* Revert "allow extra"
This reverts commit 85d9ec36b3.
* match behavior
* Show bluetooth adapter model and manufacturer in config flow
If there are multiple adapters, it could be a bit difficult
to figure out which one is which
* Show bluetooth adapter model and manufacturer in config flow
If there are multiple adapters, it could be a bit difficult
to figure out which one is which
* reorder
* reorder
* names
* remove
* fix incomplete mocking
* more missing mocks
* Add support for payload_template in rest component
* Update homeassistant/components/rest/schema.py
* Update homeassistant/components/rest/data.py
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Remove forecast option
* Update strings
* Use separate DataUpdateCoordinator for observation and forecast
* Fix tests
* Remove unneeded variable
* Separate data coordinator classes
* Use list comprehension
* Separate coordinator clasess to add type annotations
* Test the availability of the forecast sensor entity
* Add DataUpdateCoordinator types
* Use snapshot for test_sensor()
---------
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
* Fix check for missing parts on incoming SMS
* Add tests for get_and_delete_all_sms function
* Fix CI issues
* Install libgammu-dev in CI
* Bust the venv cache
* Include python-gammu in requirements-all.txt
* Adjust install of dependencies
---------
Co-authored-by: Erik <erik@montnemery.com>
* Fixed home hold and added select hold
* Fixed home hold and added select hold
* Removed select_hold for now
* Fixed wrong import block sorting
* Fixed unit tests for AppleTV
* Added select hold command to AppleTV integration
* Removed home_hold and added hold_secs option for remote commands
* Added DEFAULT_HOLD_SECS
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Exclude manifest files from youtube media extraction
* Add media_extractor service to extract media
* Fix snapshot
* Run ytdlp async
* Add icon
* Fix
* Fix
* Adding a new "Ambient Weather Network" integration.
* Rebase and update code coverage.
* Addressed some reviewer comments.
* Remove mnemonics and replace with station names.
* Remove climate-utils
* Remove support for virtual stations.
* Rebase
* Address feedback
* Remove redundant errors
* Reviewer feedback
* Add icons.json
* More icons
* Reviewer feedback
* Fix test
* Make sensor tests more robust
* Make coordinator more robust
* Change update coordinator to raise UpdateFailed
* Recover from no station found error
* Dynamically set device name
* Address feedback
* Disable some sensors by default
* Reviewer feedback
* Change from hub to service
* Rebase
* Address reviewer feedback
* Reviewer feedback
* Manually rerun ruff on all files
* Add Config Flow to lg_netcast
* Add YAML import to Lg Netcast ConfigFlow
Deprecates YAML config support
* Add LG Netcast Device triggers for turn_on action
* Add myself to LG Netcast codeowners
* Remove unnecessary user_input validation check.
* Move netcast discovery logic to the backend
* Use FlowResultType Enum for tests
* Mock pylgnetcast.query_device_info instead of _send_to_tv
* Refactor lg_netcast client discovery, simplify YAML import
* Simplify CONF_NAME to use friendly name
Fix: Use Friendly name for Name
* Expose model to DeviceInfo
* Add test for testing YAML import when not TV not online
* Switch to entity_name for LGTVDevice
* Add data_description to host field in user step
* Wrap try only around _get_session_id
* Send regular request for access_token to ensure it display on the TV
* Stop displaying access token when flow is aborted
* Remove config_flow only consts and minor fixups
* Simplify media_player logic & raise new migration issue
* Add async_unload_entry
* Create issues when import config flow fails, and raise only a single yaml deprecation issue type
* Remove single use trigger helpers
* Bump issue deprecation breakage version
* Lint
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* add sensor with climate activity status
* Update strings.json
* use icon translation and is_available for sensor
* use enum with translations
* Return None if value is UNKNOWN
* fix getting the value: x.value
* fix getting the value: x instead of x.value
* Fix tests and pre-commit
---------
Co-authored-by: Richard <rikroe@users.noreply.github.com>
The test assumed the node updates would happen in a specific order
but they can switch order based on timing.
Adjust to check to make sure all the nodes are called but make it
order independent
* Update Shelly to use initialize from aioshelly
* Save indentation in _async_device_connect
* Use firmware_supported property from aioshelly
* Review comments
* Bump aioshelly
* Fix lint errors
* Test RPC initialized update
* Add temperature range switch (high/low) to Balboa spa integration.
* Change Balboa spa integration temperature range control from switch to select
* Balboa spa integration: Fix ruff formatting
* Balboa spa integration: increase test coverage
* Balboa spa integration review fixes: Move instance attributes as class attributes. Fix code comments.
The patch was still too late in #115442
There is no good candidate to patch here since the late operation
is the error log that is being tested.
Patching the logger did not seem like a good idea so I went with
patching to wait for the error to be emitted since emit is the public
API of the log handler and was less likely to change
* add re-auth-flow to fyta integration
* add strings for reauth-flow
* resolve typing error
* update based on review comments
* Update homeassistant/components/fyta/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* add async_auth
* adjustment based on review commet
* Update test_config_flow.py
* remove credentials
* Update homeassistant/components/fyta/config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update tests/components/fyta/test_config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update tests/components/fyta/test_config_flow.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Update conftest.py
* Update test_config_flow.py
* Aktualisieren von conftest.py
* Update test_config_flow.py
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Use enum device class in Netatmo wind direction
* Use enum device class in Netatmo wind direction
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
* Bump aiohttp to 3.9.4
This is rc0 for now but will be updated when the full release it out
* cleanup cruft
* regen
* fix tests (these changes are fine)
* chunk size is too small to read since boundry is now enforced
* chunk size is too small to read since boundry is now enforced
* Add notify entity component
* Device classes, restore state, icons
* Add icons file
* Add tests for kitchen_sink
* Remove notify from no_entity_platforms in hassfest icons, translation link
* ruff
* Remove `data` feature
* Only message support
* Complete initial device classes
* mypy pylint
* Remove device_class implementation
* format
* Follow up comments
* Remove _attr_supported_features
* Use setup_test_component_platform
* User helper at other places
* last comment
* Add entry unload test and non async test
* Avoid default mutable object in constructor
* Protobuf audio test
* Remove extraneous code
* Rework voice assistant pipeline
* Move variables
* Fix reading flags
* Dont directly put to queue
* Bump aioesphomeapi to 24.0.0
* Update tests
- Add more tests for API pipeline
- Convert some udp tests to use api pipeline
- Update fixtures for new device info flags
* Fix bad merge
---------
Co-authored-by: Michael Hansen <mike@rhasspy.org>
* add Arve integration
* Update homeassistant/components/arve/config_flow.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Various fixes, changed scan interval to one minute
* coordinator implementation
* Code cleanup
* Moved device info to the entity.py, ArveDeviceEntityDescription to sensor.py
* delete refresh before adding entities
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update tests/components/arve/test_config_flow.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Update tests/components/arve/conftest.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Changed value_fn in sensors.py, added typing to description
* Code cleanups, platfrom test implementation
* New code cleanups, first two working tests
* Created platform test, generated snapshots
* Reworked integration to get all of the customer devices
* new fixes
* Added customer id, small cleanups
* Logic of setting unique_id to the config flow
* Added test of abortion on duplicate config_flow id
* Added "available" and "device" properties fro ArveDeviceEntity
* small _attr_unique_id fix
* Added new test, improved mocking, various fixes
* Various cleanups and fixes
* microfix
* Update homeassistant/components/arve/strings.json
* ruff fix
---------
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* airzone_cloud: add Water Heater support
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* run CI
---------
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
* Remove aux heat
* Add switch entity for emheat
* Optimized async_setup_entry
* Fix errors in comments
* Fix new ruff failuer
* Use constant for EM
* Protect EM mode - must be in heat to turn on/off
* Restore aux_heat
* Add repair issue
* Add missing place holder to issue
* Better placeholder "option"
* When quoting placeholders, always use double quotes so Lokalise recognizes the placeholder.
* Ensure that strings does not contain placeholders in single quotes.
* Avoid redefining value
* Moved string_with_no_placeholders_in_single_quotes
* Define regex once
* Fix tests
* DNM: Make run_immediately the default for listeners
This is a test to see how much progress we have made twords this goal
https://github.com/home-assistant/core/pull/113727#issuecomment-2004587947
* fix shutdown
* Revert "fix shutdown"
This reverts commit a8969d7db9.
* set false since it break utility meter tests
* one more
* fix rfxtrx test
* test needs to be explict now
* fix matrix
* fail sooner
* Ecobee: add current_humidity to humidifier
* Ecobee: Add test for current_humidity property
* Update current_humidity handling in climate and
humidifier entity to support the ecobee API
not returning actualHumidity, which is an optional
value.
Also updated tests to add a thermostat which
covers a non-populated humidity. In passing,
set up the new test thermostat to cover a missing
condition where the code doens't recognize the
ecobee model number. This gets ecobee humidifier
test coverage to 100%
* Create right import issues in Downloader
* Create right import issues in Downloader
* Create right import issues in Downloader
* Create right import issues in Downloader
* Fix
* Fix
* Fix
* Fix
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Speed up logger setup
Preload core.logger and avoid saving it
until after startup
* add comment about 180s
* Adjust grammar
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Default agent as entity
* Migrate constant to point at new value
* Fix tests
* Fix more tests
* Move assist pipeline back to cloud after dependenceis
* Add uptime sensor to Glances
* Merge upstream
* Merge upstream
* Fix coverage
* Add uptime sensor to Glances
* Merge upstream
* Merge upstream
* Fix coverage
* Move most uptime specific code to DataUpdateCoordinator
* Add last_reported after merge with upstream
* Add unit tests for uptime sensor
* Add unit tests for uptime sensor
* Add unit tests for uptime sensor
* Add unit tests for uptime sensor
* Move update code out of getter native_value()
* Add unit tests for uptime sensor
* Update uptime method signatures
* Set uptime icon in icons.json
* Use freezer.tick for uptime tests
* Frozen time test fails on github
* Add MIN_UPTIME_VARIATION const value
* Only update uptime on startup or when remote server restarts
* Fix for 0 values
* Set value to None to set state to Unknown if key is not found
* Add unit test for uptime change
* Code reduction
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Re-organize conversation integration
* Clean up 2 more imports
* Re-export models
* Fix imports
* Uno mas
* Rename agents to models
* Fix cast test that i broke?
* Just blocking till I'm done
* Wrong place
* Mark executor jobs as background unless created from a tracked task
If the current task is not tracked the executor job should not
be a background task to avoid delaying startup and shutdown.
Currently any executor job created in a untracked task or
background task would end up being tracked and delaying
startup/shutdown
* import exec has the same issue
* Avoid tracking import executor jobs
There is no reason to track these jobs as they are always awaited
and we do not want to support fire and forget import executor jobs
* fix xiaomi_miio
* lots of fire time changed without background await
* revert changes moved to other PR
* more
* more
* more
* m
* m
* p
* fix fire and forget tests
* scrape
* sonos
* system
* more
* capture callback before block
* coverage
* more
* more races
* more races
* more
* missed some
* more fixes
* missed some more
* fix
* remove unneeded
* one more race
* two