Commit Graph

330 Commits (cee0440ab69aecf3a8aaf262a6820c1930368c91)

Author SHA1 Message Date
GitHub Action 65d14909ee [ci skip] Translation update 2021-08-27 00:14:42 +00:00
jjlawren b3e84c6ee8
Set up polling task with subscriptions in Sonos (#54355) 2021-08-26 09:35:35 -07:00
Ben Edmunds b167e05a56
Sonos add bass & treble EQ option (#53978) 2021-08-25 17:42:40 +02:00
jjlawren 6cf312f3c8
Fix Sonos missing group member race condition on startup (#55158) 2021-08-24 14:13:18 -05:00
jjlawren f4fb5f2f5a
Skip Sonos zeroconf availability check in non-timeout scenarios (#54425) 2021-08-13 15:42:55 -05:00
jjlawren 084737dd01
Cleanup Sonos grouping event callback method (#54542) 2021-08-12 22:01:34 +02:00
jjlawren 87e0b14282
Log gathered exceptions during Sonos unsubscriptions (#54190) 2021-08-12 11:46:07 -05:00
Erik Montnemery e558b3463e
Move temperature conversions to sensor base class (6/8) (#54476)
* Move temperature conversions to entity base class (6/8)

* Fix tests
2021-08-12 17:40:55 +02:00
jjlawren 1eeb12ba1c
Support unloading/reloading Sonos (#54418) 2021-08-10 10:57:39 -07:00
Reuben Gow 74d41ac5e5
Force an attempted subscribe on speaker reboot (#54100)
* Force an attempted subscribe on speaker reboot

* Recreate subscriptions and timers explicitly on speaker reboot

* only create poll timer if there is not one already

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

* Black

Co-authored-by: jjlawren <jjlawren@users.noreply.github.com>
2021-08-09 20:47:38 +02:00
jjlawren a8354e729b
Bump soco to 0.23.3 (#54288) 2021-08-09 09:21:07 +02:00
GitHub Action 98bcdc2cf5 [ci skip] Translation update 2021-08-07 00:10:12 +00:00
jjlawren 6eae5231f1
Fix empty sonos_group entity attribute on startup (#53985) 2021-08-04 21:57:19 +02:00
GitHub Action 8c5620e74b [ci skip] Translation update 2021-08-02 03:40:04 +00:00
jjlawren 9111fb60d7
Include advertise_addr in Sonos logs when used (#53617) 2021-07-28 19:19:09 +02:00
jjlawren 214920f486
Ignore Sonos Boost devices during discovery v2 (#53358) 2021-07-27 09:50:46 -05:00
jjlawren 88cffc86bb
Add crossfade control support to Sonos (#53228) 2021-07-26 21:58:13 +02:00
jjlawren 550a6f159e
Reduce repetitive noise in Sonos debug logs (#53352) 2021-07-26 00:54:38 -05:00
Anders Melchiorsen e85b0ec052
Move Sonos to upstream SoCo (#53351) 2021-07-23 00:40:30 +02:00
jjlawren 0707792bec
Handle more Sonos snapshot restore scenarios (#53277) 2021-07-22 08:04:02 -10:00
GitHub Action ecf0d4398d [ci skip] Translation update 2021-07-22 00:10:31 +00:00
jjlawren a2fbc4218d
Cleanup regroup handling in Sonos (#53241)
Check event before creating coroutine
Remove unnecessary regrouping dispatcher
Update typing to reflect actual behavior
Add optimizations for polling mode
2021-07-20 20:21:48 +02:00
Marc Mueller f6b162bc39
Add pylint CodeStyle extension (#53147) 2021-07-19 06:57:06 -07:00
Ville Skyttä 470f2dd73f
Upgrade pyupgrade to 2.21.2, apply its changes (#52987) 2021-07-19 10:46:09 +02:00
GitHub Action 531733da7b [ci skip] Translation update 2021-07-19 00:09:50 +00:00
Anders Melchiorsen 61056afe0d
Upgrade pysonos to 0.0.53 (#53137) 2021-07-18 19:00:02 +02:00
GitHub Action e6e1118dd4 [ci skip] Translation update 2021-07-17 00:09:24 +00:00
jjlawren 0277a645f1
Log source of discovery in Sonos (#53101) 2021-07-16 11:12:01 -10:00
GitHub Action db8db18b54 [ci skip] Translation update 2021-07-15 00:09:25 +00:00
GitHub Action 7b7062dded [ci skip] Translation update 2021-07-14 00:10:16 +00:00
jjlawren ab5fd70988
Bump pysonos to 0.0.52 (#52934) 2021-07-12 13:50:51 -07:00
J. Nick Koston 98109caee9
Add zeroconf discovery to Sonos (#52655) 2021-07-12 18:24:12 +02:00
jjlawren 2b6a3716e8
Ignore Sonos Boost devices during discovery (#52845) 2021-07-12 17:09:45 +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 dabb50f7ee
Warn if `interface_addr` remains in Sonos configuration (#52652) 2021-07-08 09:15:56 +02:00
GitHub Action 378b5f75ec [ci skip] Translation update 2021-07-04 00:09:33 +00:00
jjlawren 7b5ed8faa8
Catch unexpected battery update payloads on Sonos (#52040) 2021-06-20 21:38:07 -07:00
jjlawren d3724355cf
Improve Sonos Spotify/Tidal support, add service exceptions (#51871) 2021-06-17 11:09:57 +02: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 d755952148
Set playlist name on playing Sonos media (#51685)
* Use playlist name as media_channel if available

* Use proper playlist attribute
2021-06-13 17:24:46 -05:00
jjlawren c362ffd384
Clean up unused Sonos subscriptions (#51583) 2021-06-09 23:31:14 -05:00
jjlawren c512e1df3c
Bump pysonos to 0.0.51 (#51669) 2021-06-09 18:20:28 +02:00
jjlawren 4ffa0dd199
Detect Sonos reboots and recreate subscriptions (#51377) 2021-06-07 20:51:42 -05:00
jjlawren e257dd4d07
Fix Sonos battery sensors on S1 firmware (#51585) 2021-06-08 00:29:17 +02:00
jjlawren 85ce679c64
Fix Sonos restore calls (#51565) 2021-06-07 11:46:56 +02:00
jjlawren 2c9e6bd927
Handle Sonos connection issues better when polling (#51376) 2021-06-02 21:10:27 -07:00
jjlawren 9e3ee73b8b
Handle incomplete Sonos alarm event payloads (#51353) 2021-06-01 13:28:56 -07: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
jjlawren 1a5d35d7bf
Only debug log new Sonos SSDP discoveries (#51247)
* Only debug log new SSDP discoveries

* Use existing reference

* Remove from known on unseen

* Update homeassistant/components/sonos/speaker.py

Co-authored-by: J. Nick Koston <nick@koston.org>

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-05-30 20:28:22 -05:00
jjlawren 3d2f696d73
Reorganize SonosSpeaker class for readability (#51222) 2021-05-29 09:08:46 -05: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 bd34059c11
Fix use of async in Sonos switch (#51210)
* Fix use of async in Sonos switch

* Simplify

* Convert to callback
2021-05-28 23:28:07 -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
jjlawren 4b2831ddde
Improve Sonos alarm logging (#51212) 2021-05-29 00:45:43 +02:00
jjlawren 39e62f9c90
Improve Sonos polling (#51170)
* Improve Sonos polling

Warn user if polling is being used
Provide callback IP:port to help user fix networking
Fix radio handling when polling (no event payload)
Clarify dispatch target to reflect polling action

* Lint

* Revert method removal
2021-05-28 12:07:58 +02: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 f0952d3ee8
Fix Sonos media position with radio sources (#51137) 2021-05-27 10:53:51 +02:00
Anders Melchiorsen fdfb84e8e2
Upgrade pysonos to 0.0.50 (#51125) 2021-05-27 08:13:10 +02:00
jjlawren e4e3dc7fab
Fix Sonos TV source attribute (#51131) 2021-05-26 22:12:43 -07: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
tkdrob 028a07d86f
Wrap up selectors (#50794)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-05-25 14:45:17 +02:00
jjlawren 29205a9239
Sonos use common firmware version (#50861) 2021-05-23 08:43:49 -05:00
jjlawren ab86c7a135
Clean up Sonos resubscription failure logic and logging (#50831) 2021-05-18 22:15:16 -05:00
jjlawren 3d5b354def
Bump pysonos to 0.0.49 (#50841) 2021-05-18 20:31:38 -05:00
Aaron David Schneider 1d174a1f6f
Bump pysonos to 0.0.48 (#50798) 2021-05-18 08:40:51 +02:00
jjlawren 8129db1cfe
Handle Sonos subscription renewal failures (#50793) 2021-05-17 17:26:48 -05:00
jjlawren b1ff9dc45e
Bump pysonos to 0.0.47 (#50792) 2021-05-17 16:06:13 -05:00
mountainsandcode 2d29959a52
Add control of hardware buttons to Sonos (#49977) 2021-05-17 11:12:01 +02:00
jjlawren b84cf915f3
Centralize storage and updating of Sonos favorites (#50581)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-16 11:11:35 +02:00
jjlawren 1afb0a0841
Sonos improve radio metadata handling (#50493) 2021-05-15 21:19:16 +02:00
tkdrob 77e6fc6f93
Add missing requirements and target to sonos services (#50552) 2021-05-14 17:40:30 +02:00
jjlawren ca09027914
Bump pysonos to 0.0.46 (#50544) 2021-05-12 16:16:29 -05:00
jjlawren db82808466
Skip adding battery on S1 Sonos devices (#50536) 2021-05-12 20:40:10 +02:00
jjlawren afe02a4ad2
Fix Sonos const comparison (#50482)
* Fix Sonos const comparison

* Use constants for playback states
2021-05-11 16:06:51 -05:00
jjlawren 897dd012cd
Handle transport errors when updating media via events (#50481) 2021-05-11 16:00:56 -05:00
jjlawren d6a202bd74
Move core Sonos functionality out of entities (#50277) 2021-05-11 10:36:40 -07:00
jjlawren 9ae021a284
Bump pysonos to 0.0.45 (#50407) 2021-05-10 08:56:18 -07:00
jjlawren 0cdb8ad892
Fix location of current_play_mode (#50386) 2021-05-10 14:49:11 +02:00
jjlawren 85d782808c
Fix Sonos polling bug (#50265) 2021-05-09 11:09:56 +02:00
J. Nick Koston 016a4433d2
Handle missing transport_state on media update in sonos (#50051) 2021-05-04 08:54:31 +02:00
Franck Nijhof 2ed386f9e6
Migrate to async_get_current_platform everywhere (#50034) 2021-05-03 09:34:28 -07:00
Milan Meulemans 29d72714f3
Replace dict with DeviceInfo (#49950)
* Replace dict with DeviceInfo

* Clean up

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-02 00:37:19 +02:00
J. Nick Koston 4bebedb658
Bump pysonos to 0.0.44 to fix client session race (#49964)
Fixes #49954
2021-05-01 12:26:10 -10:00
jjlawren adba82de8b
Do not pass hass.data to Sonos entities (#49881) 2021-04-30 07:01:09 +02:00
Franck Nijhof c68b259bd3
Cleanup of unused connection_class logic (#49865)
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
2021-04-29 23:12:58 +02:00
jjlawren db886ef03a
Add additional Sonos codeowner (#49879) 2021-04-29 13:50:16 -07:00
Ruslan Sayfutdinov 0301706fc6
Define AddEntitiesCallback type (#49812) 2021-04-29 12:28:14 +02:00
jjlawren d4ed65e0f5
Add power binary_sensor support to Sonos (#49730)
* Add power binary_sensor support to Sonos

* Prepare for future unloading of config entries

* Remove unnecessary calls to super() inits

* Add binary_sensor to tests, remove invalid test for empty battery payload

* Move sensor added_to_hass to common sensor class

* Avoid dispatching sensors if no battery

* Use proper attributes property

* Remove power source fallback

* Update homeassistant/components/sonos/speaker.py

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

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-04-27 04:52:05 -10:00
jjlawren dc50524f32
Cleanup implementation of new Sonos sensors (#49716) 2021-04-26 23:59:04 +02:00
tkdrob d24cbde913
Add target and selectors to sonos services (#49536) 2021-04-25 10:28:42 -10:00
jjlawren 3be8c9c1c0
Add battery support for Sonos speakers (#49441)
Co-authored-by: Walter Huf <hufman@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-04-25 07:20:21 -10:00
J. Nick Koston 3fa8ffa731
Enable mccabe complexity checks in flake8 (#49616)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-25 12:38:40 +02:00
Marc Mueller c07646db5d
Update typing syntax (#49480)
* Update typing syntax

* Replace typing imports with ones from collections where possible

* Changes after review
2021-04-20 17:40:41 +02:00
J. Nick Koston f7b7a805f5
Bump pysonos to 0.0.43 (#49330)
- Downgrade asyncio log severity
2021-04-16 20:19:50 -10:00
Franck Nijhof 055cdc64c0
Add support for IoT class in manifest (#46935) 2021-04-15 10:21:38 +02:00
J. Nick Koston 19e047e801
Fix logic reversal in sonos update_media_radio (#48900) 2021-04-09 07:24:35 +02:00
J. Nick Koston d417dcb8f4
Bump pysonos to 0.0.42 to fix I/O in event loop (#48743)
fixes #48732

Changelog: https://github.com/amelchio/pysonos/compare/v0.0.41...v0.0.42
2021-04-07 00:15:36 +02:00
J. Nick Koston 6dc1414b69
Fix sonos volume always showing 0 (#48685) 2021-04-04 20:26:55 -07:00
J. Nick Koston e008e80bcf
Cleanup sonos (#48684)
- Remove unused code
- Use async_add_executor_job
- Enforce typing
2021-04-04 23:28:29 +02:00