* Added timestamp for when device was marked unavailable
* protect time 1st marked
* client removal, no errors
* Optional removal interval added
* Linting error fix
* Implemented guard to prevent indentation
Removed vars in favour of inline calcs
* Using hass.add_job() for cleanup
* Lint
* Revert removal interval to 600sec
* Changed datetime to hass implementation
* Forgot to include one of the references to dt
* already in the default schema
* these are already globally disabled
* require a single entity id
* remove unused import
* w h i t e s p a c e
* actually keep it
* it is a string
* use a generator expression
* 💄
* Revert "💄"
This reverts commit 81c08bb732.
* Revert "actually keep it"
This reverts commit 0d92d3afb2.
* Revert "remove unused import"
This reverts commit 8a166208e4.
* Revert "already in the default schema"
This reverts commit 9173de4fd3.
* we're already ensuring defaults with the platform schema
* Marks Devices unavailable if they 'vanish' and clears media
* Fixed PEP8 complaint
* Fixed Linting
* Lint Fix
* Fix redine of id
* More lint fixes
* Removed redundant loop for setting availability of client
Renamed '_is_device_available' to '_available'
Renamed 'available_ids' to 'available_client_ids'
* removed whitespace per houndCI
* Refactor Google Assistant
* Fix cloud test
* Fix supported features media player demo
* Fix query
* Fix execute
* Fix demo media player tests
* Add tests for traits
* Lint
* Lint
* Add integration tests
* Add more tests
* update logging
* Catch out of range temp errrors
* Fix cloud error
* Lint
* add Channels media player
* add Channels' services
* style 💄
* more 💄
* make up your mind robot
* 💄💄💄
* dump client and pull it in via a package
* ChannelsApp -> ChannelsPlayer
* load the lib
* add pychannels in requirements
* not using requests anymore
* extra line 💄
* move this here
* move this up
* 🔥
* use constants for these
* add a platform schema
* force update here
* get defaults to None
* break out after finding it
* use None for state if offline or errored
* pull in CONF_NAME
* fix syntax
* update requirements_all.txt
* 💄💄💄
* 💄
* docs
* like this? ¯\(°_o)/¯
* Unique IDs for Clients
* HoundCI cleanup
* debug output removal
* Updates from feedback
* More Updates from feedback
* More Updates from feedback
* Lint Fixes
* Add Songpal ("Sony Audio Control API") platform
This adds support for a variety of Sony soundbars and potentially
many more devices using the same API.
See http://vssupport.sony.net/en_ww/device.html for list of
supported devices.
* add songpal requirement
* update coveragerc
* fix linting
* add service description to yaml
* add entity_id
* make pylint also happy.
* raise PlatformNotReady when initialization fails, bump requirement for better exception handling
* use noqa instead of pylint's disable, fix newline error
* use async defs and awaits
* Make linter happy
* Changes based on code review, fix set_sound_setting.
* define set_sound_setting schema on top of the file
* Move initialization back to async_setup_platform
* Fix linting
* Fixes based on code review
* Fix coveragerc ordering
* Do not print out the whole exception trace when failing to update
* Do not bail out when receiving more than one volume control
* Set to unavailable when no volume controls are available
* Added support for join and unjoin
* Added support for sleep functionality
* Fixed supported features
* Removed long lines and fixed documentation strings
* Fixed D401, imperative mood
* Added shuffle support
* Removed unnecessary log row
* Removed model, modelname and brand
* Removed descriptions
* Removed polling command on method run. This change is not needed
* Fixed merge errors
* Removed unused usings
* Pylint fixes
* Hound fixes
* Remove attr Sleep and removed white space in services.xml
* Rework Sonos media player platform for push
* Ignore play_mode from events where it is missing
* Remove unused preload helper
* Freeze SoCo version
* Updates for entity registry
* Add codeowner
* Use real soco release
* Added the Xiaomi TV platform.
* Implemented a more efficient default name.
* Fixed a few style errors that slipped past the eye.
* Indicate that state is assumed.
The yamaha component previously used a property named unique_id to
ensure that exactly 1 media_player was discovered per zone per
control_url. This was introduced so that hard coded devices wouldn't
be duplicated by automatically discovered devices.
In HA 0.63 unique_id became a reserved concept as part of the new
device registry, and the property was removed from the component. But
the default returns None, which had the side effect of only ever
registering a single unit + zone, the first one discovered. This was
typically the Main_Zone of the unit, but there is actually no
guaruntee of that.
This fix brings back the logic under a different property called
zone_id. This is not guarunteed to be globally stable like unique_id
is supposed to be, but it is suitable for the deduplication for yamaha
media players.