Add aliased players
This commit is contained in:
parent
0295ec5a88
commit
fe5270dd81
@ -52,7 +52,7 @@ def handle_connect(hass, connection, msg):
|
||||
devices = hass.data[DOMAIN]["devices"]
|
||||
deviceID = msg["deviceID"]
|
||||
if deviceID in devices:
|
||||
devices[deviceID].connect(connection, msg["id"])
|
||||
devices[deviceID].ws_connect(connection, msg["id"])
|
||||
else:
|
||||
adder = hass.data[DOMAIN]["adders"][0]
|
||||
devices[deviceID] = adder(hass, deviceID, connection, msg["id"])
|
||||
@ -69,4 +69,4 @@ def handle_update(hass, connection, msg):
|
||||
devices = hass.data[DOMAIN]["devices"]
|
||||
deviceID = msg["deviceID"]
|
||||
if deviceID in devices:
|
||||
devices[deviceID].update(msg.get("browser", None), msg.get("player", None))
|
||||
devices[deviceID].ws_update(msg.get("browser", None), msg.get("player", None))
|
||||
|
@ -11,26 +11,45 @@ async def async_setup_platform(hass, config, async_add_devices, discovery_info=N
|
||||
def adder(hass, deviceID, connection, cid):
|
||||
player = BrowserModPlayer(hass, deviceID)
|
||||
if connection:
|
||||
player.connect(connection, cid)
|
||||
_LOGGER.error(player)
|
||||
player.ws_connect(connection, cid)
|
||||
async_add_devices([player])
|
||||
return player
|
||||
hass.data[DOMAIN]["adders"].append(adder)
|
||||
|
||||
for k,v in hass.data[DOMAIN]["aliases"].items():
|
||||
devices = hass.data[DOMAIN]["devices"]
|
||||
devices[v] = BrowserModPlayer(hass, v, k)
|
||||
async_add_devices([devices[v]])
|
||||
|
||||
class BrowserModPlayer(MediaPlayerDevice):
|
||||
|
||||
def __init__(self, hass, deviceID, alias=None):
|
||||
self.hass = hass
|
||||
self.deviceID = deviceID
|
||||
self.alias = alias
|
||||
_LOGGER.error(f"Create player {deviceID}")
|
||||
self.player_state = {}
|
||||
self.browser_state = {}
|
||||
_LOGGER.error(f"Create player {deviceID}({alias})")
|
||||
|
||||
def connect(self, connection, cid):
|
||||
@property
|
||||
def name(self):
|
||||
return self.alias or self.deviceID.replace('-','_')
|
||||
|
||||
@property
|
||||
def device_state_attributes(self):
|
||||
return {
|
||||
"player": self.player_state,
|
||||
"browser": self.browser_state,
|
||||
}
|
||||
|
||||
def ws_connect(self, connection, cid):
|
||||
self.cid = cid
|
||||
self.connection = connection
|
||||
_LOGGER.error(f"Connecting player {cid}")
|
||||
_LOGGER.error(f"Connecting player {self.entity_id}")
|
||||
connection.send_message(event_message(cid, {"command": "update"}))
|
||||
pass
|
||||
|
||||
def update(self, browser, player):
|
||||
_LOGGER.error(f"{self.deviceID}: {browser} {player}")
|
||||
def ws_update(self, browser, player):
|
||||
self.browser_state = browser
|
||||
self.player_state = player
|
||||
pass
|
||||
|
Loading…
x
Reference in New Issue
Block a user