mirror of
https://github.com/andvikt/mega_hacs.git
synced 2025-12-12 01:24:29 +05:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8dfa5926ad | ||
|
|
3978ce2203 | ||
|
|
2e025eb0c2 | ||
|
|
20d5b8ff40 |
@@ -161,6 +161,7 @@ async def async_remove_entry(hass, entry) -> None:
|
||||
return
|
||||
_LOGGER.debug(f'remove {id}')
|
||||
_hubs.pop(id, None)
|
||||
hass.data[DOMAIN].pop(id, None)
|
||||
task: asyncio.Task = _POLL_TASKS.pop(id, None)
|
||||
if task is not None:
|
||||
task.cancel()
|
||||
|
||||
@@ -209,6 +209,8 @@ class MegaD:
|
||||
def parse_response(self, ret):
|
||||
if ret is None:
|
||||
raise NoPort()
|
||||
if 'busy' in ret:
|
||||
return None
|
||||
if ':' in ret:
|
||||
ret = PATT_SPLIT.split(ret)
|
||||
ret = {'value': dict([
|
||||
@@ -229,13 +231,16 @@ class MegaD:
|
||||
"""
|
||||
self.lg.debug(f'get port %s', port)
|
||||
if self.mqtt is None or force_http:
|
||||
ret = await self.request(pt=port, cmd=http_cmd)
|
||||
ret = self.parse_response(ret)
|
||||
self.lg.debug('parsed: %s', ret)
|
||||
if http_cmd == 'list' and isinstance(ret, dict) and 'value' in ret:
|
||||
if http_cmd == 'list':
|
||||
await self.request(pt=port, cmd='conv')
|
||||
await asyncio.sleep(1)
|
||||
ret = await self.request(pt=port, cmd=http_cmd)
|
||||
ret = self.parse_response(ret)
|
||||
ret = self.parse_response(await self.request(pt=port, cmd=http_cmd))
|
||||
ntry = 0
|
||||
while http_cmd == 'list' and ret is None and ntry < 3:
|
||||
await asyncio.sleep(1)
|
||||
ret = self.parse_response(await self.request(pt=port, cmd=http_cmd))
|
||||
ntry += 1
|
||||
self.lg.debug('parsed: %s', ret)
|
||||
self.values[port] = ret
|
||||
return ret
|
||||
|
||||
|
||||
@@ -17,8 +17,11 @@
|
||||
"username": "Користувач",
|
||||
"id": "ID",
|
||||
"mqtt_id": "MQTT id",
|
||||
"scan_interval": "Період оновлення (сек.)",
|
||||
"port_to_scan": "Порт для сканування при відсутності датчиків"
|
||||
"scan_interval": "Період оновлення (сек.), 0 - не оновлювати",
|
||||
"port_to_scan": "Порт для сканування при відсутності датчиків",
|
||||
"mqtt_inputs": "Використовувати MQTT",
|
||||
"nports": "Кількість портів",
|
||||
"update_all": "Оновити всі виходи коли спрацьовує вхід"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30,7 +33,10 @@
|
||||
"scan_interval": "Період оновлення (сек.)",
|
||||
"port_to_scan": "Порт для сканування при відсутності датчиків",
|
||||
"reload": "Оновити об'єкти",
|
||||
"invert": "Список портів з інвертованою логікою (через ,)"
|
||||
"invert": "Список портів з інвертованою логікою (через ,)",
|
||||
"mqtt_inputs": "Використовувати MQTT",
|
||||
"nports": "Кількість портів",
|
||||
"update_all": "Оновити всі виходи коли спрацьовує вхід"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user