* Return specific group state if there is one
* Refactor
* Additional test cases
* Refactor
* Break out if more than one on state
* tweaks
* Remove log, add comment
* add comment
* Apply suggestions from code review
Co-authored-by: J. Nick Koston <nick@koston.org>
* Refactor and improve comments
* Refactor to class method
* More filtering
* Apply suggestions from code review
* Only active if not excluded
* Do not use a set
* Apply suggestions from code review
Co-authored-by: Erik Montnemery <erik@montnemery.com>
---------
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add service to 17track
* Add service to 17track
change to select selector
add snapshot test
* Add service to 17track
use strings for the selector
* Add service to 17track
fix test
* add debug info to zeroconf for enphase_envoy
* Implement review feedback, lost space
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
* review feedback textual changes.
* implement review feedbackw.py
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add some more zeroconf tests and valid jwt
* review feedback assert abort reason and keyerror for serialnumber
* Review feedback config flow test ends with abort or create_entry
* Review feedback optimize resource usage
* Cover new code in test.
* Use caplog for debug COV
---------
Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add number platform to Husqvarna Automower
* use fixture to enable by default
* replace state test with snapshot test
* make property in entity description
* send value as integer
* give the exists functions something to do
* Add Epic Games Store integration
Squashed commit of the following PR: #81167
* Bump epicstore-api to 0.1.7 as it handle better error 1004
Thanks to d7469f7c99
* Use extra_state_attributes instead of overriding state_attributes
* Review: change how config_flow.validate_input is handled
* Use LanguageSelector and rename locale to language
* Review: init-better use of hass.data.setdefault
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Review: don't need to update at init
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Revert "Review: don't need to update at init" --> not working otherwise
This reverts commit 1445a87c8e9b7247f1c9835bf2e2d7297dd02586.
* Review: fix config_flow.validate_input/retactor following lib bump
* review: merge async_update function with event property
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* hassfest
* Fix duplicates data from applied comment review 5035055
* review: thanks to 5035055 async_add_entities update_before_add param is not required anymore
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Fix Christmas special "Holiday sale" case
* gen_requirements_all
* Use CONF_LANGUAGE from HA const
* Move CalendarType to const
* manifest: integration_type -> service
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
* calendar: remove date start/end assert
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* const: rename SUPPORTED_LANGUAGES
* hassfest
* config: Move to ConfigFlowResult
* coordinator: main file comment
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* ruff & hassfest
* review: do not guess country
* Add @hacf-fr as codeowner
* review: remove games extra_attrs
Was dropped somehow:
- 73c20f34803b0a0ec242bf0740494f17a68f6f59 review: move games extra_attrs to data service
- other commit that removed the service part
* review: remove unused error class
was removed:
- 040cf945bb5346b6d42b3782b5061a13fb7b1f6b
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add device tracker option
* Update const name to be more understandable
* Clean up sensor code
* Clean up init and coordinator
* Add tests and update util function and it's usage
* Switch to using the registry entry and add tests
* Clean up code
* Consolidate duplicate code and adjust tests
* Fix runtime error
* Fix blocking of the event loop
* Adjust API object handling
* Update homeassistant/components/dwd_weather_warnings/exceptions.py
* Optimize coordinator data update
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* 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>