Compare commits

...

5 Commits

Author SHA1 Message Date
Andrey
8146148d0c fix bugs 2021-02-18 10:46:17 +03:00
Andrey
e0eaafd0fa fix bugs 2021-02-18 10:40:09 +03:00
Andrey
51f3eb3b19 fix bugs 2021-02-18 10:23:27 +03:00
Andrey
1716651497 fix bugs 2021-02-18 10:12:01 +03:00
Andrey
a87e8139a7 fix bugs 2021-02-18 09:53:30 +03:00
2 changed files with 17 additions and 16 deletions

View File

@@ -48,8 +48,9 @@ class BaseMegaEntity(CoordinatorEntity, RestoreEntity):
index=None, index=None,
): ):
super().__init__(mega.updater) super().__init__(mega.updater)
if self.http_cmd == 'ds2413':
self.mega.ds2413_ports |= {self.port} self.http_cmd = http_cmd
self._state: State = None self._state: State = None
self.port = port self.port = port
self.config_entry = config_entry self.config_entry = config_entry
@@ -62,9 +63,10 @@ class BaseMegaEntity(CoordinatorEntity, RestoreEntity):
self._name = name or f"{mega.id}_{port}" + \ self._name = name or f"{mega.id}_{port}" + \
(f"_{id_suffix}" if id_suffix else "") (f"_{id_suffix}" if id_suffix else "")
self._customize: dict = None self._customize: dict = None
self.http_cmd = http_cmd
self.index = index self.index = index
self.addr = addr self.addr = addr
if self.http_cmd == 'ds2413':
self.mega.ds2413_ports |= {self.port}
@property @property
def customize(self): def customize(self):
@@ -253,17 +255,17 @@ class MegaOutPort(MegaPushEntity):
val = val.get("value") val = val.get("value")
if self.index and self.addr: if self.index and self.addr:
if not isinstance(val, dict): if not isinstance(val, dict):
self.mega.lg.warning(f'{self.entity_id} has wrong state: {val}') self.mega.lg.warning(f'{self.entity_id}: {val} is not a dict')
return return
_val = val.get(self.addr) _val = val.get(self.addr, val.get(self.addr.lower(), val.get(self.addr.upper())))
if not isinstance(val, str): if not isinstance(val, str):
self.mega.lg.warning(f'{self.entity_id} has wrong state: {val}') self.mega.lg.warning(f'{self.entity_id}: can not get {self.addr} from {val}, recieved {_val}')
return return
_val = _val.split('/') _val = _val.split('/')
if len(_val) >= 2: if len(_val) >= 2:
val = val[self.index] val = _val[self.index]
else: else:
self.mega.lg.warning(f'{self.entity_id} has wrong state: {val}') self.mega.lg.warning(f'{self.entity_id}: {_val} has wrong length')
return return
elif self.index and self.addr is None: elif self.index and self.addr is None:
self.mega.lg.warning(f'{self.entity_id} does not has addr') self.mega.lg.warning(f'{self.entity_id} does not has addr')

View File

@@ -198,7 +198,6 @@ class MegaD:
:return: :return:
""" """
for x in self.ds2413_ports: for x in self.ds2413_ports:
if x.http_cmd == 'ds2413':
self.lg.debug(f'poll ds2413 for %s', x) self.lg.debug(f'poll ds2413 for %s', x)
await self.get_port( await self.get_port(
port=x, port=x,