mirror of
https://github.com/andvikt/mega_hacs.git
synced 2025-12-11 00:54:28 +05:00
fix errors
This commit is contained in:
@@ -63,7 +63,7 @@ async def validate_input(hass: core.HomeAssistant, data):
|
||||
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
"""Handle a config flow for mega."""
|
||||
|
||||
VERSION = 12
|
||||
VERSION = 13
|
||||
CONNECTION_CLASS = config_entries.CONN_CLASS_ASSUMED
|
||||
|
||||
async def async_step_user(self, user_input=None):
|
||||
|
||||
@@ -97,10 +97,15 @@ class MegaView(HomeAssistantView):
|
||||
if port is not None:
|
||||
if set(data).issubset(ext):
|
||||
ret = '' # пока ответ всегда пустой, неясно какая будет реакция на непустой ответ
|
||||
pt_orig = hub.ext_in.get(port)
|
||||
if pt_orig is None:
|
||||
hub.lg.warning(f'can not find extender for int port {port}')
|
||||
return Response(status=200)
|
||||
for e in ext:
|
||||
if e in data:
|
||||
idx = e[-1]
|
||||
pt = f'{port}e{idx}'
|
||||
pt = f'{pt_orig}e{idx}'
|
||||
data['pt'] = pt_orig
|
||||
data['value'] = 'ON' if data[e] == '1' else 'OFF'
|
||||
data['m'] = 1 if data[e] == '0' else 0 # имитация поведения обычного входа, чтобы события обрабатывались аналогично
|
||||
hub.values[pt] = data
|
||||
|
||||
@@ -81,6 +81,7 @@ class MegaD:
|
||||
protected=True,
|
||||
restore_on_restart=False,
|
||||
extenders=None,
|
||||
ext_in=None,
|
||||
**kwargs,
|
||||
):
|
||||
"""Initialize."""
|
||||
@@ -96,6 +97,7 @@ class MegaD:
|
||||
else:
|
||||
self.http = None
|
||||
self.extenders = extenders or []
|
||||
self.ext_in = ext_in or {}
|
||||
self.poll_outs = poll_outs
|
||||
self.update_all = update_all if update_all is not None else True
|
||||
self.nports = nports
|
||||
@@ -514,6 +516,7 @@ class MegaD:
|
||||
ret = defaultdict(lambda: defaultdict(list))
|
||||
ret['mqtt_id'] = await self.get_mqtt_id()
|
||||
ret['extenders'] = extenders = []
|
||||
ret['ext_in'] = ext_int = {}
|
||||
async for port, cfg in self.scan_ports(nports):
|
||||
if cfg.pty == "0":
|
||||
ret['binary_sensor'][port].append({})
|
||||
@@ -533,6 +536,7 @@ class MegaD:
|
||||
])
|
||||
elif cfg == MCP230:
|
||||
extenders.append(port)
|
||||
ext_int[cfg.inta] = port
|
||||
values = await self.request(pt=port, cmd='get')
|
||||
values = values.split(';')
|
||||
for n in range(len(values)):
|
||||
|
||||
Reference in New Issue
Block a user