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): class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
"""Handle a config flow for mega.""" """Handle a config flow for mega."""
VERSION = 6 VERSION = 7
CONNECTION_CLASS = config_entries.CONN_CLASS_ASSUMED CONNECTION_CLASS = config_entries.CONN_CLASS_ASSUMED
async def async_step_user(self, user_input=None): async def async_step_user(self, user_input=None):

View File

@@ -253,7 +253,7 @@ class MegaOutPort(MegaPushEntity):
return self._state == 'ON' return self._state == 'ON'
elif val is not None: elif val is not None:
val = val.get("value") 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): if not isinstance(val, dict):
self.mega.lg.warning(f'{self.entity_id}: {val} is not a dict') self.mega.lg.warning(f'{self.entity_id}: {val} is not a dict')
return return

View File

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

View File

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