* Add source as parameter to beolink join service
* Add beolink join source and responses
* Improve comment
Add translation
* Remove result from beolink join custom action
* Cleanup
* Use options selector instead of string for source ID
Fix test docstring
* Update options
* Use translation dict for source ids
Add input validation
Add tests for invalid sources
Improve source id description
* Use list instead of translation dict
Remove platform prefixes
Add test for Beolink Converter source
* Fix source_id naming and order
* Add diagnostics
* Add tests for diagnostics
* Add media_player diagnostics
* Use media_player entity's state instead of registryentry
* Update tests
* Reorganize code
Remove context from media_player state
* Fix dict being read only
Simplify naming
Update test snapshot
* Update test snapshot
* Add Beolink custom services
Add support for media player grouping via beolink
Give media player entity name
* Fix progress not being set to None as Beolink listener
Revert naming changes
* Update API
simplify Beolink attributes
* Improve beolink custom services
* Fix Beolink expandable source check
Add unexpand return value
Set entity name on initialization
* Handle entity naming as intended
* Fix "null" Beolink self friendly name
* Add regex service input validation
Add all_discovered to beolink_expand service
Improve beolink_expand response
* Add service icons
* Fix merge
Remove unnecessary assignment
* Remove invalid typing
Update response typing for updated API
* Revert to old typed response dict method
Remove mypy ignore line
Fix jid possibly used before assignment
* Re add debugging logging
* Fix coroutine
Fix formatting
* Remove unnecessary update control
* Make tests pass
Fix remote leader media position bug
Improve remote leader BangOlufsenSource comparison
* Fix naming and add callback decorators
* Move regex service check to variable
Suppress KeyError
Update tests
* Re-add hass running check
* Improve comments, naming and type hinting
* Remove old temporary fix
* Convert logged warning to raised exception for invalid media_player
Simplify code using walrus operator
* Fix test for invalid media_player grouping
* Improve method naming
* Improve _beolink_sources explanation
* Improve _beolink_sources explanation
* Fix tests
* Remove service responses
Fix and add tests
* Change service to action where applicable
* Show playback progress for listeners
* Fix testing
* Remove useless initialization
* Fix allstandby name
* Fix various casts with assertions
Fix comment placement
Fix group leader group_members rebase error
Replace entity_id method call with attribute
* Add syrupy snapshots for Beolink tests, checking entity states
Use test JIDs 3 and 4 instead of 2 and 3 to avoid invalid attributes in testing
* Add sections for fields using Beolink JIDs directly
* Fix typo
* FIx rebase mistake
* Sort actions alphabetically
* Add seeking for sources other than Deezer
* Add is_seekable attribute to fallback sources and BangOlufsenSource
Add testing
* Update comment
* Use support flags instead of raising errors when seeking on incompatible source
* Add Beolink custom services
Add support for media player grouping via beolink
Give media player entity name
* Fix progress not being set to None as Beolink listener
Revert naming changes
* Update API
simplify Beolink attributes
* Improve beolink custom services
* Fix Beolink expandable source check
Add unexpand return value
Set entity name on initialization
* Handle entity naming as intended
* Fix "null" Beolink self friendly name
* Add regex service input validation
Add all_discovered to beolink_expand service
Improve beolink_expand response
* Add service icons
* Fix merge
Remove unnecessary assignment
* Remove invalid typing
Update response typing for updated API
* Revert to old typed response dict method
Remove mypy ignore line
Fix jid possibly used before assignment
* Re add debugging logging
* Fix coroutine
Fix formatting
* Remove unnecessary update control
* Make tests pass
Fix remote leader media position bug
Improve remote leader BangOlufsenSource comparison
* Fix naming and add callback decorators
* Move regex service check to variable
Suppress KeyError
Update tests
* Re-add hass running check
* Improve comments, naming and type hinting
* Remove old temporary fix
* Convert logged warning to raised exception for invalid media_player
Simplify code using walrus operator
* Fix test for invalid media_player grouping
* Improve method naming
* Improve _beolink_sources explanation
* Improve _beolink_sources explanation
* Add initial media_player grouping
* Convert custom service methods to media_player methods
Fix testing
* Remove beolink JID extra state attribute
* Modify custom services to only work as expected for media_player grouping
Fix tests
* Remove unused dispatch
* Remove wrong comment
* Remove commented out code
* Add config entry mock typing
* Fix beolink listener playback progress
Fix formatting
Add and use get_serial_number_from_jid function
* Fix testing
* Clarify beolink WebSocket notifications
* Further clarify beolink WebSocket notifications
* Convert notification value to enum value
* Improve comments for touch to join
* Fix None being cast to str if leader is not in HA
* Add error messages to devices in Beolink session and not Home Assistant
Rework _get_beolink_jid
* Replace redundant function call
* Show friendly name for unavailable remote leader instead of JID
* Update homeassistant/components/bang_olufsen/media_player.py
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Remove unneeded typing
* Rework _get_beolink_jid entity check
Clarify invalid entity error message
* Remove redundant "entity" from string
* Fix invalid typing
fix state assertions
* Fix raised error type
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add proper media_player typing to tests
* Add proper typing to init tests
* Add proper typing to config_flow tests
* Fix order of parameters of tests
* Add more typing
Reorder parameters
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
* Add bangolufsen integration
* add untested files to .coveragerc
* Simplify integration to media_player platform
* Remove missing files from .coveragerc
* Add beolink_set_relative_volume custom service
Tweaks
* Remove custom services
Remove grouping as it was dependent on custom services
* Update API to 3.2.1.150.0
Reduce and optimize code with feedback from joostlek
Tweaks
* Updated testing
* Remove unused options schema
* Fix bugfix setting wrong state
* Fix wrong initial state
* Bump API
* Fix Beosound Level not reconnecting properly
* Remove unused constant
* Fix wrong variable checked to determine source
* Update integration with feedback from emontnemery
* Update integration with feedback from emontnemery
* Remove unused code
* Move API client into dataclass
Fix not all config_flow exceptions caught
Tweaks
* Add Bang & Olufsen brand
* Revert "Add Bang & Olufsen brand"
This reverts commit 57b2722078.
* Remove volume options from setup
Simplify device checks
rename integration to bang_olufsen
update tests to pass
Update API
* Remove _device from base
Add _device to websocket
* Move SW version device update to websocket
Sort websocket variables
* Add WebSocket connection test
* Remove unused constants
* Remove confirmation form
Make discovered devices get added to Home Assistant immediately
Fix device not being available on mdns discovery
Change config flow aborts to forms with error
* Update tests for new config_flow
Add missing api_exception test
* Restrict manual and discovered IP addresses to IPv4
* Re-add confirmation step for zeroconf discovery
Improve error messages
Move exception mapping dict to module level
* Enable remote control WebSocket listener
* Update tests