* Add internet sensor updated by events
* Strings for internet sensor
* Update binary_sensor snapshot with internet sensor
* Add test for internet sensor
* Address review comments
---------
Co-authored-by: Tim Lunn <tim@feathertop.org>
* 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 reconnect logic and proper reporting
* Use snake_case
* Log on warning, not on info
* Reduce line length
* Refactor non-raising code out of try blocks
* Remove `_ensure_connected()` from action functions
* Force root import of references from other components
* Improve
* Adjust
* Tweak exceptions
* Another
* Another
* Another
* Another
* Another
* Another
* Another
* Another
* Another
* Another
* Another
* Another
* Adjust
* More
* Ignore violations in test
* Improve
* if the derivative is negative, ignore it
* add option to ignore the negatives or not
* add tests for a new ignore negative derivative
* add missing description when editing
* rename to ignore_negative_derivative
to increase clarity of which negative I mean
in case in the future we want a ignore_negative_value...
* use state_class=total_increasing to ignore the negative derivative
* remove ignore negative from the config
* add test for total_increasing_reset case
* add comments
* update test_total_increasing_reset with history tests
Also remove the last comment because the test is already clear
My existing comment there isn't unique to this unit test but applies to the entire component. The existing web documentation pointing to Wikipedia should suffice.
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add platform Entity classes to pylint plugin
* Fix violations
* Fix violations
* More
* Allow component package with same name as a platform
* One more