Skip to content

Commit a3a357b

Browse files
committed
Fix now playing update issue and removed player_id from controller
1 parent 33e0b74 commit a3a357b

7 files changed

+20
-25
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ __pycache__/
77
/build/
88
/.mypy_cache/
99
/.env/
10+
venv

aioheos/aioheoscontroller.py

+9-17
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
GET_GROUPS = 'group/get_groups'
3434
SET_GROUP = 'group/set_group'
3535

36-
BROWSE = 'browser/browse'
36+
BROWSE = 'browse/browse'
3737

3838
EVENT_PLAYER_VOLUME_CHANGED = 'event/player_volume_changed'
3939
EVENT_PLAYER_STATE_CHANGED = 'event/player_state_changed'
@@ -88,7 +88,7 @@ def __init__(self, message):
8888
self.message = message
8989

9090

91-
class AioHeosController():
91+
class AioHeosController:
9292
"""Asynchronous Heos class."""
9393

9494
# ddpylint: disable=too-many-public-methods,too-many-instance-attributes
@@ -107,7 +107,6 @@ def __init__(self,
107107
self._players = None
108108
self._groups = None
109109

110-
self._player_id = None
111110
self._upnp = None
112111
self._reader = None
113112
self._writer = None
@@ -122,7 +121,7 @@ async def ensure_player(self):
122121
# timeout after 10 sec
123122
self.request_players()
124123
for _ in range(0, 20):
125-
if self.player_id:
124+
if self._players:
126125
return
127126
await asyncio.sleep(0.5)
128127

@@ -219,8 +218,6 @@ def send_command(self, command, message=None):
219218
"""Send command."""
220219
msg = 'heos://' + command
221220
if message:
222-
if not message.get('pid'):
223-
message['pid'] = self.player_id
224221
msg += '?' + '&'.join("{}={}".format(key, val)
225222
for (key, val) in message.items())
226223
msg += '\r\n'
@@ -420,7 +417,6 @@ def login(self):
420417

421418
def _parse_players(self, payload, _message):
422419
_players_json = payload
423-
self._player_id = _players_json[0]['pid']
424420
if not self._players:
425421
self._players = []
426422

@@ -484,11 +480,6 @@ def get_group(self, pid):
484480
return group
485481
return None
486482

487-
@property
488-
def player_id(self):
489-
" get player id "
490-
return self._player_id
491-
492483
def request_player_info(self, pid):
493484
" request player info "
494485
self.send_command(GET_PLAYER_INFO, {'pid': pid})
@@ -525,13 +516,13 @@ def _parse_volume(self, _payload, message):
525516
if self.get_group(message['pid']):
526517
self.get_group(message['pid']).volume = float(message['level'])
527518

528-
def _set_play_state(self, state, pid=None):
519+
def _set_play_state(self, state, pid):
529520
" set play state "
530521
if state not in ('play', 'pause', 'stop'):
531522
AioHeosException('Not an accepted play state {}.'.format(state))
532523

533524
self.send_command(SET_PLAY_STATE, {
534-
'pid': pid if pid else self.player_id,
525+
'pid': pid,
535526
'state': state
536527
})
537528

@@ -547,10 +538,10 @@ def pause(self, pid=None):
547538
" pause "
548539
self._set_play_state('pause', pid)
549540

550-
def request_now_playing_media(self, pid=None):
541+
def request_now_playing_media(self, pid):
551542
" get playing media "
552543
self.send_command(GET_NOW_PLAYING_MEDIA,
553-
{'pid': pid if pid else self.player_id})
544+
{'pid': pid})
554545

555546
def _parse_now_playing_media(self, payload, message):
556547
player = self.get_player(message["pid"])
@@ -679,7 +670,8 @@ def _parse_players_changed(self, _payload, _message):
679670

680671
def _parse_player_now_playing_changed(self, _payload, _message):
681672
" event / now playing changed, request what changed. "
682-
self.request_now_playing_media()
673+
player_id = _message['pid']
674+
self.request_now_playing_media(player_id)
683675

684676
def _parse_player_now_playing_progress(self, _payload, message):
685677
player = self.get_player(message["pid"])

aioheos/aioheosgroup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ class AioHeosGroup(aioheosplayer.AioHeosPlayer):
1313
def __init__(self, controller, group_json):
1414
group_json["pid"] = group_json["gid"]
1515
super().__init__(controller, group_json)
16-
_LOGGER.debug("[D] Creating group object %s for controller pid %s",
17-
self._player_id, self._controller._player_id)
16+
_LOGGER.debug("[D] Creating group object %s",
17+
self._player_id)
1818

1919
def recreate_group(self):
2020
" Recreate group "

aioheos/aioheosplayer.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
_LOGGER = logging.getLogger(__name__)
1010

1111

12-
class AioHeosPlayer():
12+
class AioHeosPlayer:
1313
" Asynchronous Heos Player class "
1414

1515
def __init__(self, controller, player_json):
@@ -32,8 +32,8 @@ def __init__(self, controller, player_json):
3232
self._media_image_url = None
3333
self._media_id = None
3434
self._callback = None
35-
_LOGGER.debug("[D] Creating player object %s for controller pid %s",
36-
self._player_id, self._controller._player_id)
35+
_LOGGER.debug("[D] Creating player object %s",
36+
self._player_id)
3737

3838
def __lt__(self, other):
3939
return self._player_id < other.player_id

requirements.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
lxml
21
aiohttp
2+
lxml
3+
pytz

setup.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@
1313
packages=['aioheos'],
1414
long_description=open('README.md').read(),
1515
install_requires=[
16-
'lxml',
1716
'aiohttp',
17+
'lxml',
18+
'pytz'
1819
],
1920
classifiers=[
2021
"Programming Language :: Python :: 3",

test.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ async def heos_test(loop):
1111
# host = None
1212
host = 'HEOS-1'
1313

14-
heos = aioheos.AioHeosController(loop, host=host, verbose=verbose)
14+
heos = aioheos.AioHeosController(loop, host=host)
1515

1616
# connect to player
1717
await heos.connect()

0 commit comments

Comments
 (0)