fix multiple megas

This commit is contained in:
Andrey
2021-01-25 20:17:15 +03:00
parent 39c4ab0e3b
commit 1548e8c364
2 changed files with 3 additions and 4 deletions

View File

@@ -26,8 +26,7 @@ class MegaView(HomeAssistantView):
def __init__(self, cfg: dict):
self._try = 0
self.allowed_hosts = {'::1'}
self.callbacks: typing.DefaultDict[int, typing.List[typing.Callable[[dict], typing.Coroutine]]] \
= defaultdict(list)
self.callbacks = defaultdict(lambda: defaultdict(list))
self.templates: typing.Dict[str, typing.Dict[str, Template]] = {
mid: {
pt: cfg[mid][pt][CONF_RESPONSE_TEMPLATE]
@@ -64,7 +63,7 @@ class MegaView(HomeAssistantView):
data = data.copy()
ret = 'd'
if port is not None:
for cb in self.callbacks[port]:
for cb in self.callbacks[hub.id][port]:
cb(data)
template: Template = self.templates.get(hub.id, {}).get(port)
if hub.update_all:

View File

@@ -307,7 +307,7 @@ class MegaD:
if self.mqtt_inputs:
self._callbacks[port].append(callback)
else:
self.http.callbacks[port].append(callback)
self.http.callbacks[self.id][port].append(callback)
async def authenticate(self) -> bool:
"""Test if we can authenticate with the host."""