* Add support for Automatic OAuth2 authentication
* Fix async conversion of configurator
* Rename method for async
* Use hass.components to get configurator component
* Fix typo
* Move session data to hidden directory
* Make configurator callback optional
* Do not use pychromecast.Chromecast for Cast Groups
pychromecast.Chromecast creates Chromecast instance with friendly_name and cast_type of the device and not of a group.
Which leads to collisions
* Update cast.py
* using hass.data
* Fixed and extended tests
* Line length in tests
* Lint in tests
* Allow sonos to select playlists as a source
Most of this was taken from
https://github.com/home-assistant/home-assistant/issues/5598#issuecomment-278229895
however I made a few small improvements so that it works for other
services than Spotify and it should properly switch to playing the queue
if you had another song playing previously.
/cc @PatBoud
* Attempt to fix style issues
* More indent changes
* Fix misplaced period
* Move playlist replacement to function
* Privatize replace_queue_with_playlist and explain
* Remove unneeded decorator
* Fix doc formatting
* New media_player platform for Russound devices using the RIO protocol
Auto discovers zones and sources
Handles media metadata from sources that support it
asyncio implementation
Push updates for any zone or source changes so no polling required.
* Fixed up linting issues
* Addressing PR feedback
Updated russound_rio dependency to 0.1.3
Use enumerate_zones and enumerate_sources methods instead of doing it in
the platform.
Register callbacks in async_added_to_hass coroutine
Corrected behavior of async methods
DirectPy, the third party library used for controlling directv boxes,
has the ability to accept an ID in order to act as a remote for Genie
slaves instead of just the master directv box. This commit adds glue
such that one can configure home assistant to interface with these slave
genie boxes.
Signed-off-by: Nicholas Sielicki <sielicki@yandex.com>
* Make it available during state paused.
* Don't adjust for media_position_updated_at. I.e. do as vlc, sonos etc
so that returned position is the position at the time of
media_position_updated_at, not now.
* Lift Apple TV to pyatv 0.3.2
Update code to use basic new features.
* Support button presses in Apple TV
* Support device authentication
* Convert Apple TV to a component
A media_player platform and a remote platform will be loaded for each
manually configured or discovered device.
* Move device auth to apple_tv component
* Update requirements and coverage config
* Add scan support to apple_tv
* Fix Plex component to use port number in discovery.
* Break line
* Correctly save port to config
* Handle port with fewer code changes
* This is stuck configuring and I'm not sure why
* Changes suggested by @dale3h
* handle TransportError exceptions when calling JSONRPC API
* use double quotes for log messages; show TransportErrors as in async_ws_connect
* fix spaces around keyword / parameter
* fix logging message
* review changes
* Adding support for https.
This change allows to access a firetv-server instance that runs over https (via a reverse proxy for exemple).
Default stays http, but if `ssl: true` is set in the configuration the connection goes over https.
Successfully tested.
* respecting the 79 characters line limit
* initial commit
* class name and requirements_all.txt
* removed mentions of D7050
* changed default name
* catch oserror in update, travis errors.
* use nad_receiver pip version
* update coveragerc
* add option to display all sources / pushed to version 0.4.3 of library
* Add show_all_sources option for auto discovery too
* change code style for hass
* fix lint
* Check if media commands are actually applicable
- Explicitly allow ‘stop’ and ‘play’ on radio streams
- Disallow media commands when the playlist is empty
- Check if command is supported when calling `turn_on` and `turn_off`
* Suppress UPnP error 701 on media commands
* Clean up soco_filter_upnperror
Clean up soco_filter_upnperror and fix small bug in support_previous_track determination
* Remove setting up an hbmqtt broker
* Don't pass loop to web.Application in tests
* Use .query instead of deprecated .GET for aiohttp requests
* Fix closing file resource
* Do not use asyncio mark
* Notify.html5 - PyJWT: Use options to disable verify
* Yamaha: Test was still using deprecated ip
* Remove pytest-asyncio
* Kodi specific services to call Kodi API methods
- new service: `kodi_execute_addon` to run a Kodi Addon with optional parameters. Results of the Kodi API call, if any, are redirected in a Home Assistant event: `kodi_execute_addon_result`.
- new service: `kodi_run_method` to run a Kodi JSONRPC API method with optional parameters. Results of the Kodi API call are redirected in a Home Assistant event: `kodi_run_method_result`.
- Add descriptions in services.yaml.
- Add `timeout` parameter to yaml config (needed to make slow queries to the JSONRPC API, default timeout is set to 5s).
- Trigger events with the results of the Kodi API calls, with:
```
event_data = {
'result': api_call_results,
'result_ok': boolean,
'input': api_call_parameters,
'entity_id': 'media_player.kodi'}
```
* no need to clean OrderedDicts; no need for the `kodi_execute_addon` service
* no need for the `kodi_execute_addon` service
* unused import
* naming changes
* Add sonos alarm clock update service
* Add tests and break lines
* Fix style errors
* Make test work with python<3.6
* Fix last two pylint errors
* fix new line to long errors
* Fix Kodi specific services, add descriptions, add more handled exceptions
- Fixes issue #7528
- Add descriptions for Kodi specific services in services.yaml.
- Error handling in Kodi API errors.
- Make compatible the existent specific service `media_player.kodi_set_shuffle` with the general `media_player.shuffle_set` service (both use the same method but with different named parameter, I think the Kodi specific service should be eliminated, since it is not)
* fix line too long
* removed new services (for another PR); removed `kodi_set_shuffle` service
* requested changes
- Removed `kodi_set_shuffle` service.
- Optional `media_name` and `artist_name` parameters. `media_name` defaults to 'ALL'.
- Guard clause to check if the services are already registered.
* add support for shuffle toggling on Spotify component.
this also required adding support for shuffle on the
media_player component.
* lint
* Use ATTR_MEDIA_SHUFFLING for service handler param
* Line too long fix
* fix tests
* add shuffle set to demo mediaplayer
* rename shuffle attribute
* - changed updater to only do updated if they succed and handle calls when tv is off better by only doing 1 remote call
- show all sources instead of only connected, to fix source selection when unit is powered off
- fixed sources so they can launch apps and select sources
* fixed lint errors
* show all sources and apps if no custom options are defined in the conf
* fixed indentation for lint
* set _current_source when state is off and fixed timeout exception
* updated pylgtv module to fix problems with timeouts
* - update pylgtv to 0.1.6
- handle new TimeoutError exception from pylgtv
* used full name for exception handling of concurrent.futures._base.TimeoutError
* the exception handling should now follow the rules
* float typecasting should not be necessary
* use asyncio for TimeoutError it’s an alias for concurrent.futures.TimeoutError
* added new service
* fixed basic test in kodi platform
* Added new method async_get_albums
* Added new methods in module kodi
* added method find_song in kodi module
* method add_song_to_playlist made
async
* Added media type to method async_play_media
* added methods async_clear_playlist
and play_song
* methods play_song and find_song
made async
* added new service play_song
* Improved kodi._find
now it find for whole words only
* added possibility to specify artist in
kodi.async_find_artist
* added kodi.async_find_album
* added new optional input to play_song service
* In async_play_song added handling of no song found
* default artist value changed to ''
* async_add_song_to_playlist now can also
search for musinc
* added service add_song_to_playlist
* Added new service add_album_to_playlist
* added services to switch shuffle mode
* added service add_all_albums_to_playlist
* handled error in async_unset_shuffle
and async_set_shuffle
* Added abstract methods to media_player
* _server substituted with server property
* style made consistent with requirements
* Fixed issue with pylint
* Services moved to kodi platform
* service play_song removed
* removed service unset_shuffle
* all add services merged into one
* removed service get_artists
* added kodi_ to service names
* Fixed some style issues
* Removed changes in media_player __init__
* Implemented requested changes
* Fixed pylint problem
* Add link to docs and remove comments which are obvious
* Update docstrings
* Repleace conf details with link to docs
* Add link to docs
* Update docstrings
* Update import
* Update ordering
* Update ordering
* Update docstring
* Update ordering
* Update ordering
* Add new media_player platform: Volumio Media Player
Volumio media player is a rpi music player, this platfor adds http based control of the player.
* Modify mute command to accept boolean
* Adjust mute call to reset volume after unmute
Remove references to volimi"a"
* Use yield from calls in mute and volume calls
Trying to speed up the indication of mute and volume level changes in UI, but doesn't seem to do much.
* Adjust async_add_devices call
* Support for non-clients, NVidia shield, dynamic grouping, extra metadata, and more
* Fixed import orderdering, line lengths, and comment violations
* Local player check and season fixes
* Honor entity_namespace when using custom entity ids
* Semi compatibility with channels, force controls option added
* media_position_updated_at fix - only update when media is playing
* Fix: controls now work as expected on 1) casted sessions and 2) client sessions when client and PMS reside on the same sever
* Made PEP8 compliant
* Made PEP8 compliant
* Made PEP8 compliant, hopefully
* Better Tivo compatibility
* Added frozen detection and remediation
* PlayMedia EPISODE now supports season number and episode number (instead of episode index)
* Fix: Dynamic groups now exclude hidden devices
* Fix: Dynamic groups now exclude hidden devices
* Implemented arsaboo suggested formatting
* Implemented pylint command line suggested fixes
* Implemented Travis CI build suggested fixes
* Sorted Imports using Importanize
* Grouped request imports
* Removed dynamic groups, network calls from properties, and other cleanup
* Balloob recommendations and Plex Protocol Capabilities checks
* Remove deprecated disable-msg in favor of disable
* Removed position related items (seek, frozen detection, etc)
* Removed unused datetime
* media_player.kodi extra attributes for tvshow and music media
* removed extra whitespaces/CR
* Kodi - add extra attributes #6250 (removed music attributes)
* Restored music attributes, this is ready for merge
* linting amended
* Fix Kodi artist support
* Copy-paste error
* Fix for non-music artist lookup
Kodi returns an emtpy list on videos, so we need to be able to
handle that as well.
* Update to pylgtv 0.1.4
* Send icon with webostv notifications
Default to the homeassistant logo, but allow customizing it on the
component and for individual notifications
* added frontier_silicon constant
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* added frontier_silicon constant
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* changed info to debug
* added frontier_silicon constant
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* added the frontier_silicon component
* trying to satisfy pylint
* fsapi version 0.0.6
* remove white space
* generated requirements
* added the frontier_silicon component
* cleaning up according to travis
* trying to satisfy pylint
* trying to satisfy pylint
* fsapi version 0.0.6
* with fsapi version 0.0.7
* added fsapi dependency
* yielding the FSAPI
* Removing white space from docstring
* Removing white space from an empty line
* Switching to sync
* clean up white spaces and rename device to FSAPIDevice
* trying to satisfy pylint
* changed info to debug
* added the frontier_silicon component
* fsapi version 0.0.6
* generated requirements
* pylint
* moved import requests to the method where it is being used
* add a basic unit test
* cleaned up source code
* added frontier_silicon constant
* added the frontier_silicon component
* added basic test
* added fsapi to requirements_all.txt
* added coverage omit, though a basic test was included
* added MEDIA_TYPE_MUSIC for artist and album
* removed duplicate cons
* switched fsapi call to a property, removed unecessary comment
* detailed docstring for fs_device
* added a space for the info_name - info_text separator
* reduced proeprty (fsapi) access for volume down/up
* Add fake support for turn on/off for Apple TV
When the device is "turned off", no requests are sent to the device.
When the setting "start_off" is set to true, the device starts in off
state.
* Fix async comments
* Clean up supported features
* Stop using entity_picture that is known to be bad.
* Only abandon image on 400 or 404 response
* Return is_permanent_failure as a third part of response
* Add debug printout
* Fix lint
* Fix lint
* Bumped up version to use 0.1.7 of Russound integration module.
Fixed bug arising from not supporting TURN_ON state (fixes issue https://github.com/home-assistant/home-assistant/issues/5012)
Implemented state support in 0.1.7 such that component state is returned from the actual AMP. (Still uses polling model though).
Tested it with home-assitant users @laf (original developer of the module) and @hofsta. Works fine with their Russounds.
* Made styling / compliance changes and updated correct version of russound module on requirements_all.txt.
* Changed handling of properties to be compliant with https://github.com/home-assistant/home-assistant/issues/4210
(Specifcailly added member variables for state, volume and source to cache these values, and introduced Update() method to set their values).
Now returns None if the selected source index that is returned from russound is greater than the length of the specified source list in the yaml config.
Removed unnecesary comment.
* Removed blank line after docstring.
* Removed updated() in class init and added True paramter to add_devices in setup_platform.
* Dropped the no longer needed self.update()
* Support for the Orage Livebox Play TV appliance
* Add liveboxplaytv to coveragerc
* Minor refactoring
* Update requirements
* Adjust comments
* Fix alignment
* Fix some coding-style issues highlighted by Travis CI
* The livebox play TV does not support playing media
* Lint: shorten line
* Remove unused callback function
* Remove redundant backslash
* Implement changes requested by balloob
* Don't error out if channel name or media url could not be retrieved
* Support current program (media title property)
* Remove unnecessary check
* Clean up: Remove another unnecessary check, _CONFIGURING variable and _playing attribute
* Update liveboxplaytv dependency to version 1.4.4
* Fix liveboxplaytv requirement
* Improve media state (support for playing and pause state)
* Update liveboxplaytv.py
* Bugfix sonos / refactor of sonos function for TTS
* fix unittest
* update service yaml
* restore group of a coordinator
* use group function to evaluate
* fix state flooting
* fix comments
* cec client object
* cec command structure
* autodetect source
* volume support and native source select
* switch device
* media player device
* detecting of state
* friendly names
* hdmi cec properties
* presence detection
* simplified callbacks
* stable names
* renamed methods
* code cleanup
* name with vendor
* fixed standby call name
* fake standby/poweron
* domain switch
* domain switch
* async updating
* update separated
* cec -> hass event bridge
* fixed name generation
* code cleanup
* code cleanup
* icon constants
* code cleanup
* do not register unavailable devices
* discovery of deevices
* code cleanup
* cec device discovery
* moved method implementation into child
* service descriptions
* service descriptions
* service descriptions
* changed entity init sequence
* logging cleanup
* add remove as job
* closing cec, no service schemas
* correct iterate over dictionary
* Volume by commands
* threading
* logging minimized
* get load out of main thread
* naming cleanup
* get load out of main thread
* optimized discovery
* async where possible
* cleanup logging, constructors first
* pydoc
* formatting
* no async_update from out of loop
no hiding entities
removed redundant device_state_attributes
async updating presence
* no async
* working async cec
* cec in thirdparty lib
* cec initialized oudsice
* working without SIGSEGV
* rollbacked file changed by mistake
* sending of commands
* working with ha
* using hass loop and device driven updates
* version up
* version up
* Command types in pycec, cleanup for HA integration
* Removed media player, state moved to switch
* service descriptions
* requirements: pyCEC
* line width to 79
* doc
* doc
* overindentation solved
* HDMI to uppercase
* minimal dependency on cec
* removed unwanted line
* doc wording
* margin 79
* line continuation indent
* imperative doc
* lint: indentation
* fixed overindented
* fixed overindented
* fixed overindented
* fixed overindented
* order of imports
* PEP8
* keep signature of overriding
* removed redundant blank line
* fixed update call method (#4)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* Dev (#6)
* reordered
* sending nonserialized data through hass.data
* code formatting
* code formatting
* import order
* Dev (#7)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* reordered
* sending nonserialized data through hass.data
* import order
* fixed object handling
* code formatting
* Backwards compatibility of hdmi_cec (#10)
* services:
power_on
standby
active_source
* new version of pyCEC (#12)
* newer version of pyCEC
* devices config (#13)
* getting device name from config
* shutdown fix (#14)
* correct call on shutdown
* remove misplaced annotations (#15)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* reordered
* sending nonserialized data through hass.data
* services:
power_on
standby
active_source
* code formatting
* getting device name from config
* correct call on shutdown
* pyCEC version 0.3.6 (#18)
* newer version of pyCEC
* updated services.yaml
* sending nonserialized data through hass.data
* services:
** power_on
** standby
** active_source
* getting device name from config
* correct call on shutdown
* fork new thread on multicore machines
* support both config schemas: original and new (#16)
* volume press and release support (#17)
* support for media_player (#21)
* accept hexadecimal format of commands
* support for media player
* platform customization
* type constants
* Dev (#23)
* accept hexadecimal format of commands
* support for media player
* platform customization
* TCP CEC support (#24)
* accept hexadecimal format of commands
* support for media player
* platform customization
* preparing tcp support
* volume handling (#25)
* Incorporated CR remarks (#26)
* cleanup imports
* cleanup and enhance services description
* removed unwanted file
* implemented CR remarks (#27)
* pyCEC v0.4.6
* pined dependency version
* tighten service schemas
* requirements (#28)
* incorporate remarks from users (#32)
* home-assistant-31 make mute schema better (#31)
* pycec-30 pyCEC version up (#30)
* pycec-30 pyCEC version up (#30)
* home-assistant-30 OSD display name from configuration (#30) (#33)
* Home assistant 29 (#34)
* home-assistant-29 counting from 0 (#29)
* Home assistant 31 (#35)
* home-assistant-31 add support for mute-on and mute-off (#31)
* home-assistant-31 pyCEC version up (#31)
* Home assistant 31 (#36)
* home-assistant-31 Limit OSD name to 13 chars (#31)
* home-assistant-31 Limit OSD name to 13 chars moved to CEC adapter (#31)
* home-assistant-31 version up (#31)
* home-assistant-31 formatting (#31)
* formatting
* service description
* service description
* single attribute for volume
* fixed mute on -> mute off
* moved config constant from core into component
* cec client object
* cec command structure
* autodetect source
* volume support and native source select
* switch device
* media player device
* detecting of state
* friendly names
* hdmi cec properties
* presence detection
* simplified callbacks
* stable names
* renamed methods
* code cleanup
* name with vendor
* fixed standby call name
* fake standby/poweron
* domain switch
* domain switch
* async updating
* update separated
* cec -> hass event bridge
* fixed name generation
* code cleanup
* code cleanup
* icon constants
* code cleanup
* do not register unavailable devices
* discovery of deevices
* code cleanup
* cec device discovery
* moved method implementation into child
* service descriptions
* service descriptions
* service descriptions
* changed entity init sequence
* logging cleanup
* add remove as job
* closing cec, no service schemas
* correct iterate over dictionary
* Volume by commands
* threading
* logging minimized
* get load out of main thread
* naming cleanup
* get load out of main thread
* optimized discovery
* async where possible
* cleanup logging, constructors first
* pydoc
* formatting
* no async_update from out of loop
no hiding entities
removed redundant device_state_attributes
async updating presence
* no async
* working async cec
* cec in thirdparty lib
* cec initialized oudsice
* working without SIGSEGV
* rollbacked file changed by mistake
* sending of commands
* working with ha
* using hass loop and device driven updates
* version up
* version up
* Command types in pycec, cleanup for HA integration
* Removed media player, state moved to switch
* service descriptions
* requirements: pyCEC
* line width to 79
* doc
* doc
* overindentation solved
* HDMI to uppercase
* minimal dependency on cec
* removed unwanted line
* doc wording
* margin 79
* line continuation indent
* imperative doc
* lint: indentation
* fixed overindented
* fixed overindented
* fixed overindented
* fixed overindented
* order of imports
* PEP8
* keep signature of overriding
* removed redundant blank line
* fixed update call method (#4)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* Dev (#6)
* reordered
* sending nonserialized data through hass.data
* code formatting
* code formatting
* import order
* Dev (#7)
* newer version of pyCEC
* updated services.yaml
* fixed lint scrpt to operate only on python files
* pycec version up
* update services
* no coverage report
* exclude non python files from lint
* lint only on python files
* reordered
* sending nonserialized data through hass.data
* import order
* fixed object handling
* code formatting
* Backwards compatibility of hdmi_cec (#10)
* services:
power_on
standby
active_source
* new version of pyCEC (#12)
* newer version of pyCEC
* devices config (#13)
* getting device name from config
* shutdown fix (#14)
* correct call on shutdown
* remove misplaced annotations (#15)
* Preparation for merge to upstream (#5)
* newer version of pyCEC
* updated services.yaml
* reordered
* sending nonserialized data through hass.data
* services:
power_on
standby
active_source
* code formatting
* getting device name from config
* correct call on shutdown
* pyCEC version 0.3.6 (#18)
* newer version of pyCEC
* updated services.yaml
* sending nonserialized data through hass.data
* services:
** power_on
** standby
** active_source
* getting device name from config
* correct call on shutdown
* fork new thread on multicore machines
* support both config schemas: original and new (#16)
* volume press and release support (#17)
* support for media_player (#21)
* accept hexadecimal format of commands
* support for media player
* platform customization
* type constants
* Dev (#23)
* accept hexadecimal format of commands
* support for media player
* platform customization
* TCP CEC support (#24)
* accept hexadecimal format of commands
* support for media player
* platform customization
* preparing tcp support
* volume handling (#25)
* Incorporated CR remarks (#26)
* cleanup imports
* cleanup and enhance services description
* removed unwanted file
* implemented CR remarks (#27)
* pyCEC v0.4.6
* pined dependency version
* tighten service schemas
* requirements (#28)
* Initial commit of anthemav platform. It loads but has no purpose.
* Now presents a card in the UI but the values aren't real
* Mute and volume polling/setting work now
* Source lists and selection works now.
* Reduce debug logging verbosity
* Support power on/off and skip polling for details if power is off
* Add some static tables to decode numerics from telnet commands
* Add stub for unsupported media_play
* New style anthemav uses native asyncio structure
* Add device callback for asyncio
* This is ugly but it works
* Simplify async setup and abstract class data retrieval
* Implement commands (power on and power off for now)
* Add support for scan_interval and set default to 120 seconds
* Pass-through to package handlers for volume and input selection
* Slight restructuring to satisfy anthemav 0.9
* Load anthemav package from pypi now that it's registered
* Proper app_name from a/v info
* Mispelled word
* media_player/anthemav initial commit of platform requirements
* Philio 3-in-1 Gen 4 zwave sensor needs the no-off-event workaround. (#5120)
* Add print_config_parameter service to Z-Wave (#5121)
* Add print_config_param service to z-wave
* Add print_config_parameter service to z-wave
* Add print_config_parameter service to z-wave
* Fix typos
* Fix typos
* Fix typo
* Conform to Python/project style requirements
* Making pylint happy
* Bring pip requirements in agreement with the code
* Bungled previous update
* Remove unnecessady SCAN_INTERVAL logic
I was unawre that this is performed as part of the normal platform behavior and
it's unnecessary for a platform to independently implement this logic.
* Refactor code based on @armills PR requests
* Re-add media_play stub to avoid traceback
* Align with platform reqirements
* Remove references to SCAN_INTERVAL and clean up _lookup logic
* Add DEFAULT_PORT assignment
* Code style changes and removal of vestigial structures
* CONF_NAME handling changes to allow local override to default from device
* Address PR feedback from @balloob
* Remove media_play function override
It's no longer necesary for the platform to implement a stub media_play
function override now that the Add SUPPORT_PLAY flag #5181 issue has been
resolved and merged into the dev branch.
* Rename callback function to async_ for clarity
* Use async routines for platform methods
* Convert update callback to coroutine for conformity
Underlying anthemav library now properly supports coroutine callbacks instead
of normal functions. Converted the platform callback to a coroutine for
conformance with async operation for the device.
Special thanks to @pvizeli and @armills for their invaluable remedial Python
instruction!
* Further callback refinements
Altered the nature of callback handling based on suggestions from @pvizeli
* True not needed for local push update_ha_state
* Small style fix
* denonavr: Expose input as title when in non playing modes
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* denon: Pop from the intended end of the list
Pop from front of list, so we start with NSE0, then NSE1X and so on.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* denonavr: Don't provide broken media_url's
Only return a media_url if we're in a state that might provide one.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* denonavr: Only expose player support when in a player mode
This changes so the denonavr only exposes the media player support, when
in a mode that supports media playing.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Add listing and selection of available MPD playlists through input source UI.
* MPD support updating playlist list on the fly as well as at turn-on.
* Added no_throttle to force playlist update on mpd power cycle.
* Added kwargs signature to get Throttle working right.
Added support for additional optional configuration
arguments:
to send to vlc.
It is useful for special configurations of VLC.
For example, I have two sound cards on my server, so I defined two vlc media players:
media_player:
- platform: vlc
name: speaker_1
arguments: '--alsa-audio-device=hw:1,0'
- platform: vlc
name: speaker_2
arguments: '--alsa-audio-device=hw:0,0'
This way, by specifying the corresponding entity_id, I can send the output to the desired speaker.
It is also useful for TTS.
async_volume_up / async_volume_down should be async versions of
volume_up / volume_down, not a async version of the default variants of
volume_up / volume_down.
The previous code always called into the mediaplayers set_volume_level,
and never into volume_up / volume_down.
Signed-off-by: Anton Lundin <glance@acc.umu.se>
* Refactor of Squeezebox connection code
* Refactor of Squeezebox connection code
* Typos
* Make Python 3.4 friendly
* Addressing comments
* Improving docstring
* Using discovered port
* Style better
* Accept new disco object
* Revert "Accept new disco object"
* Make it obvious that port isn't discovered yet
* Flake8. ;)
* Fix Sonos album art for non-radio streams
* Revert "Fix Sonos album art for non-radio streams"
This reverts commit d71502d18f.
* Fix Sonos album art for non-radio streams
* Move art existance check into _format_media_image_url
Updated the schema check to accept any string
Search custom sources in app title and app id
The makes the short list redundant and thus removed
Tested by adding livetv, netflix, youtube, makovod and others
This is also compatible with the list that was supported till now
so current users won't see any difference.
Signed-off-by: Roi Dayan <roi.dayan@gmail.com>
* Removed return False so the Panasonic Viera TV can be added even if it doesn't connect
* Removed return False so the Panasonic Viera TV can be added even if it doesn't connect
* Removed return False so the Panasonic Viera TV can be added even if it doesn't connect
* Remove try/except to connect to the TV
* Update panasonic_viera.py
* Update panasonic_viera.py
* Added Volume Set option and autodiscovery functions to Denon AVR receivers
* Corrected issues in SSDP discovery and in case no host could be discovered
* Corrected discovery handling / added denonavr to discovery platform
* No needless discoveries anymore / add_devices() with list instead of loop
* TTS Component / Google speech platform
* Change file backend handling / cache
* Use mimetype / rename Provider function / allow cache on service call
* Add a memcache for faster response
* Add demo platform
* First version of unittest
* Address comments
* improve error handling / address comments
* Add google unittest & check http response code
* Change url param handling
* add test for other language
* Change hash to sha256 for same hash on every os/hardware
* add unittest for receive demo data
* add test for error cases
* Test case load from file to mem over aiohttp server
* Use cache SpeechManager level, address other comments
* Add service for clear cache
* Update service.yaml
* add support for spliting google message
* Add media position support and trailer type to Emby
* Adjustments to mitigate TypeError
* Simplify media_position property
* Update handling when data isn't available
* Update emby.py
* Add debug level logging of messages in denon
* Added media stop for Denon AVR Media Player
* Sort source list
* Rework input selection for Denon AVR
This reworks the input selection, adding more modes and making it so
that the media controls are only announced in modes where they actually
makes sense.
* Added real media info for Denon AVR Media modes
* Read more configuration from denon devices
This reads network name, and overrides the local name with that.
This also reads the source names and reconfigures the input list to
those names, and also reads the source deleted list and removes the
inputs that are set to deleted in the device.
* Discover and handle max volume in Denon media player
* Rework source discovery in Denon media player
This uses SSFUN as authorative source for which sources that we should
present.
* Add source_list to universal media player
* Expanded attirubte and command support for UMP
Added support to the universal media player
for the following:
Volume Set
Current Source
Set Source
Current Volume
The goal is to facilitate a single-card media player
that includes source selection and setting the volume
of the receiver.
Example setup:
```
media_player:
- platform: universal
name: Media Center
children:
- media_player.kodi
- media_player.cast
commands:
select_source:
service: media_player.select_source
data:
entity_id: media_player.receiver
volume_set:
service: media_player.volume_set
data:
entity_id: media_player.receiver
volume_mute:
service: media_player.volume_mute
data:
entity_id: media_player.receiver
turn_on:
service: homeassistant.turn_on
data:
entity_id: media_player.receiver
turn_off:
service: homeassistant.turn_off
data:
entity_id: media_player.receiver
attributes:
state: media_player.receiver
is_volume_muted: media_player.receiver|is_volume_muted
volume_level: media_player.receiver|volume_level
source: media_player.receiver|source
source_list: media_player.receiver|source_list
```
* Remove print statements
* Change service call back to use call_from_config
* Modified service calls to use template data
* linting fixes
* Add tests
* linting fices
* More pylinting
If the mpd client ran into an socket timeout, the socket will raise an
OSError on every further request. This adds OSError to the list of
excptions, that causes a client reconnect.
This fixes#4650
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
In media_content_id() the "id" of the current song was returned. as
stated in bug #4652 the id is only the Tracklist-Id in the current
tracklist and is omitted if the track is not part of a tracklist (what
caused the bug in the first place).
To match the semantics described in the dockstring, to return a "Content
ID", this chooses the filename of the current song as id and returns
it.
It also uses get() instead of [] to prevent KeyError.
This fixes bug #4652
Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>