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"]
|
devices = hass.data[DOMAIN]["devices"]
|
||||||
deviceID = msg["deviceID"]
|
deviceID = msg["deviceID"]
|
||||||
if deviceID in devices:
|
if deviceID in devices:
|
||||||
devices[deviceID].connect(connection, msg["id"])
|
devices[deviceID].ws_connect(connection, msg["id"])
|
||||||
else:
|
else:
|
||||||
adder = hass.data[DOMAIN]["adders"][0]
|
adder = hass.data[DOMAIN]["adders"][0]
|
||||||
devices[deviceID] = adder(hass, deviceID, connection, msg["id"])
|
devices[deviceID] = adder(hass, deviceID, connection, msg["id"])
|
||||||
@ -69,4 +69,4 @@ def handle_update(hass, connection, msg):
|
|||||||
devices = hass.data[DOMAIN]["devices"]
|
devices = hass.data[DOMAIN]["devices"]
|
||||||
deviceID = msg["deviceID"]
|
deviceID = msg["deviceID"]
|
||||||
if deviceID in devices:
|
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):
|
def adder(hass, deviceID, connection, cid):
|
||||||
player = BrowserModPlayer(hass, deviceID)
|
player = BrowserModPlayer(hass, deviceID)
|
||||||
if connection:
|
if connection:
|
||||||
player.connect(connection, cid)
|
player.ws_connect(connection, cid)
|
||||||
_LOGGER.error(player)
|
async_add_devices([player])
|
||||||
return player
|
return player
|
||||||
hass.data[DOMAIN]["adders"].append(adder)
|
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):
|
class BrowserModPlayer(MediaPlayerDevice):
|
||||||
|
|
||||||
def __init__(self, hass, deviceID, alias=None):
|
def __init__(self, hass, deviceID, alias=None):
|
||||||
self.hass = hass
|
self.hass = hass
|
||||||
self.deviceID = deviceID
|
self.deviceID = deviceID
|
||||||
self.alias = alias
|
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.cid = cid
|
||||||
self.connection = connection
|
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"}))
|
connection.send_message(event_message(cid, {"command": "update"}))
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def update(self, browser, player):
|
def ws_update(self, browser, player):
|
||||||
_LOGGER.error(f"{self.deviceID}: {browser} {player}")
|
self.browser_state = browser
|
||||||
|
self.player_state = player
|
||||||
pass
|
pass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user