Commit Graph

83 Commits (e30940ef2adc2a2f4b006e85092f53bcbcb68bfb)

Author SHA1 Message Date
jjlawren 1f1932d224
Fix Sonos races related to grouping and startup (#71026) 2022-04-28 14:26:29 -07:00
jjlawren 5bcc83f6f2
Remove "sonos" prefix for Sonos switch entity_ids (#70698) 2022-04-25 16:01:54 -10:00
jjlawren ac88d0be14
Add Sonos favorites sensor (#70235) 2022-04-21 10:37:16 -07:00
jjlawren c53aa50093
Rework Sonos discovery & availability (#70066) 2022-04-17 22:54:51 -07:00
jjlawren 653305b998
Support multiple Plex servers in media browser (#68321) 2022-03-21 15:48:44 -07:00
jjlawren dbb79e2937
Add support for Sonos subwoofer gain controls (#68334) 2022-03-18 10:12:10 -07:00
jjlawren f75d621888
Normalize enqueuing Plex media on Sonos (#68132) 2022-03-17 13:52:59 -07:00
jjlawren cfd763db40
Refactor Sonos media metadata handling (#66840)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-02-23 08:58:00 -08:00
jjlawren 76149876ab
Enable fallback polling for Sonos microphone binary_sensor (#66299) 2022-02-21 19:46:20 +01:00
Joshua Roys 9134e5c844
Get discovered zeroconf IPv6 addresses (#65462) 2022-02-11 16:46:17 -06:00
jjlawren 4d944e35fd
Skip polling Sonos audio input sensor when idle (#66271) 2022-02-10 12:48:13 -08:00
jjlawren cdad1a9f27
Use local Sonos API for Plex music playback (#63357) 2022-01-25 21:10:11 -08:00
jjlawren ec88897d04
Add event statistics to Sonos diagnostics (#64845) 2022-01-24 22:52:40 -10:00
jjlawren a7982adc73
Discard duplicate sonos events (#64722)
* Throttle duplicate Sonos events

* Fix test by breaking reference
2022-01-23 00:40:08 +01:00
jjlawren e7f0962979
Improve Sonos diagnostics (#64586) 2022-01-20 13:14:08 -10:00
jjlawren 740a8c33ee
Add `audio_delay` number entity to Sonos (#63566) 2022-01-10 16:04:40 +01:00
jjlawren 8a8ffa1c08
Add support for Sonos microphone binary_sensor (#63097)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-01-04 18:45:40 +01:00
jjlawren 00307e1ade
Bump soco to 0.25.2 (#62691) 2021-12-23 11:07:29 -08:00
jjlawren 6d54261322
Remove external library discovery call in Sonos (#61461)
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-12-10 11:28:47 -10:00
jjlawren 9f3a4c3617
Improve Sonos tests, begin adding coverage (#61198)
* Update entity registry handling

* Add and use fixtures to test setup via config entry

* Remove legacy redundant tests

* Remove unnecessary mock_coro

* Remove unnecessary namespace change

* Move zeroconf payload to fixture

* Begin adding Sonos to codecov

* Mock proper return value

* Revert return value for platform
2021-12-08 19:28:27 +01:00
jjlawren cbf2bf2e1f
Add audio input format sensor to Sonos HT devices (#60884) 2021-12-03 10:06:56 -08:00
jjlawren b883014ed4
Add Sonos subwoofer and surround on/off controls (#60918) 2021-12-03 16:05:40 +01:00
J. Nick Koston 8e0ef52cc8
Ensure sonos ssdp callbacks use dataclass methods (#60782) 2021-12-02 09:53:08 -08:00
jjlawren a88cc8b98c
Move Sonos bass & treble controls to number entities (#60498) 2021-11-29 16:00:37 +01:00
epenet 77dfeb062f
Update ZeroconfServiceInfo in tests (n-t) (#60219)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 10:35:44 -06:00
epenet b465131170
Use ZeroconfServiceInfo in sonos (#60095) 2021-11-21 15:49:50 -06:00
jjlawren 81e02a39df
Ignore non-Sonos SSDP devices with Sonos-like identifiers (#59809) 2021-11-19 10:14:12 -06:00
J. Nick Koston cab9f821a1
Fix zeroconf with sonos v1 firmware (#59460) 2021-11-10 22:31:08 -08:00
jjlawren 6e7fe13d51
Disable polling Sonos switches by default (#58705) 2021-10-29 14:43:59 -05:00
jjlawren 084fd2d19f
Expose Sonos features as switch entities (#54502)
Co-authored-by: Tobias Sauerwein <cgtobi@users.noreply.github.com>
2021-10-23 23:11:27 +02:00
Paulus Schoutsen a4d9019ffc
Refactor persistent notification to no longer route all data via a service (#57157)
* Convert persistent notification tests to async

* Create/dismiss persistent notifications in exposed functions, not service calls

* Fix notify persistent_notification

* Remove setting up persistent_notification

* Drop more setups

* Empty methods

* Undeprecate sync methods because too big task

* Fix setup clearing notifications

* Fix a bunch of tests

* Fix more tests

* Uno mas

* Test persistent notification events

* Clean up stale comment

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-07 12:58:00 +02:00
jjlawren 0d6aa89fd4
Refactor Sonos alarms and favorites updating (#55529) 2021-09-28 09:49:32 +02:00
Michael Chisholm 805e73f78c
Add UPNP device connection for Sonos (#56702) 2021-09-27 17:36:47 +02:00
J. Nick Koston 0363c22dd8
Fix Sonos going offline with 13.3 firmware (#56590) 2021-09-23 20:39:20 -07:00
Erik Montnemery be0819b456
Mock out network.util.async_get_source_ip in tests (#56339) 2021-09-17 21:40:58 -10:00
Steven Looman 73260c5b88
Move parts of ssdp to async_upnp_client (#55540)
* Move parts of ssdp to async_upnp_client

* Fix test for environments with multiple sources

* Fix sonos tests

* More fixes/changes

* More fixes

* Use async_upnp_client==0.21.0

* Pylint/test fixes

* More changes after review

* Fix tests

* Improve testing

* Fix mypy

* Fix yamaha_musiccast tests?

* Changes after review

* Pylint

* Reduce calls to combined_headers

* Update to async_upnp_client==0.21.1

* Update to async_upnp_client==0.21.2

* use as_dict

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-11 13:38:16 -10:00
jjlawren 214920f486
Ignore Sonos Boost devices during discovery v2 (#53358) 2021-07-27 09:50:46 -05:00
Anders Melchiorsen e85b0ec052
Move Sonos to upstream SoCo (#53351) 2021-07-23 00:40:30 +02:00
J. Nick Koston 98109caee9
Add zeroconf discovery to Sonos (#52655) 2021-07-12 18:24:12 +02:00
jjlawren 578c897161
Ignore unused keys from Sonos device properties callback (#52660)
* Ignore known but unused keys from device callback

* Fix bug, add test
2021-07-08 11:56:50 +02:00
jjlawren 7b5ed8faa8
Catch unexpected battery update payloads on Sonos (#52040) 2021-06-20 21:38:07 -07:00
jjlawren 31db3fcb23
Refactor Sonos alarms and favorites into system-level coordinators (#51757)
* Refactor alarms and favorites into household-level coordinators

Create SonosHouseholdCoodinator class for system-level data
Fix polling for both alarms and favorites
Adjust tests

* Fix docstring

* Review cleanup

* Move exception handling up a level, do not save a failed coordinator

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-06-16 10:30:05 -05:00
jjlawren e257dd4d07
Fix Sonos battery sensors on S1 firmware (#51585) 2021-06-08 00:29:17 +02:00
jjlawren e5309e89ea
Skip processed Sonos alarm updates (#51217)
* Skip processed Sonos alarm updates

* Fix bad conflict merge
2021-05-30 21:03:53 -07:00
J. Nick Koston c5e5787e1d
Replace sonos discovery thread with ssdp callback registration (#51033)
Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
2021-05-29 08:31:22 -05:00
jjlawren 84f0d3f961
Centralize Sonos subscription logic (#51172)
* Centralize Sonos subscription logic

* Clean up mocked Sonos Service instances, use subscription callback

* Use existing mocked attributes

* Use event dispatcher dict, move methods together, make update_alarms sync

* Create dispatcher dict once
2021-05-28 21:32:50 -05:00
Aaron David Schneider f7f8672eea
Add tests for sonos switch platform (#51142)
* add tests

* refactor async_added_to_hass

* fix tests and race condition

* use async_get

* typo
2021-05-27 19:56:59 +02:00
jjlawren 1e86818f85
Add battery support for Sonos S1 speakers (#50864) 2021-05-25 18:39:31 +02:00
Aaron David Schneider 9bf6ea60db
Add Sonos alarm to sonos component (#50719)
* add sonos_alarm

* bug fix for _update_device

* fix pylint and black and co

* small bug fix in speaker.available_alarms

* cleanup and add _LOGGER.debug statements, fix pylint

* fix pylint

* _alarm_id to alarm_id

* fixed rare bug due to raceconditions

* Part 2 of raceconditionfix

* address review suggestions

* readd check for not yet subscribed

* - platforms_ready fix
- add alarmClock to pytest mock

* fixture for ListAlarms

* cleanup mock and match UUID for test

* add simple tests for sonos_alarm

* extend test for attributes

* typhint fix

* typo

* use get_alarms() directly

* refactor available_alarms

* fix attributes

* some cleanup

* change logic of fetch_alarms_for_speaker and rename to update_alarms_for_speaker

* update_alarms_for_speaker is now a method

* Update homeassistant/components/sonos/switch.py

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>

* Update homeassistant/components/sonos/speaker.py

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
2021-05-25 11:32:25 -05:00
jjlawren 29205a9239
Sonos use common firmware version (#50861) 2021-05-23 08:43:49 -05:00