Compare commits

...

2 Commits

Author SHA1 Message Date
Andrey
75a41c9667 fix i2c 2021-02-18 12:36:43 +03:00
Andrey
4f8f38fde6 fix http response and ds2413 bugs 2021-02-18 12:07:55 +03:00
4 changed files with 10 additions and 6 deletions

View File

@@ -57,7 +57,7 @@ async def validate_input(hass: core.HomeAssistant, data):
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle a config flow for mega."""
VERSION = 6
VERSION = 7
CONNECTION_CLASS = config_entries.CONN_CLASS_ASSUMED
async def async_step_user(self, user_input=None):

View File

@@ -253,7 +253,7 @@ class MegaOutPort(MegaPushEntity):
return self._state == 'ON'
elif val is not None:
val = val.get("value")
if self.index is not None and self.addr is not None:
if not isinstance(val, str) and self.index is not None and self.addr is not None:
if not isinstance(val, dict):
self.mega.lg.warning(f'{self.entity_id}: {val} is not a dict')
return

View File

@@ -66,7 +66,7 @@ class MegaView(HomeAssistantView):
update_all = False
data['value'] = data.pop('v')
data['mega_id'] = hub.id
ret = 'd'
ret = 'd' if hub.force_d else ''
if port is not None:
hub.values[port] = data
for cb in self.callbacks[hub.id][port]:
@@ -79,11 +79,12 @@ class MegaView(HomeAssistantView):
ret = template.async_render(data)
_LOGGER.debug('response %s', ret)
Response(body='', content_type='text/plain', headers={'Server': 's', 'Date': 'n'})
await hub.request(cmd=ret)
if ret:
await hub.request(cmd=ret)
return ret
async def later_update(self, hub):
_LOGGER.debug('force update')
await asyncio.sleep(1)
_LOGGER.debug('force update')
await hub.updater.async_refresh()

View File

@@ -260,7 +260,10 @@ class MegaD:
if 'busy' in ret:
return None
if ':' in ret:
ret = ret.split(';')
if ';' in ret:
ret = ret.split(';')
elif '/' in ret:
ret = ret.split('/')
ret = {'value': dict([
x.split(':') for x in ret if x.count(':') == 1
])}