From af2360b0a04af28b89e9ccd9c50102d9feadedd7 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 17 Feb 2021 18:04:09 +0300 Subject: [PATCH] edit --- custom_components/mega/config_flow.py | 2 +- custom_components/mega/entities.py | 14 +++++++------- custom_components/mega/hub.py | 7 ++++++- custom_components/mega/manifest.json | 2 +- readme.md | 7 +++++++ 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/custom_components/mega/config_flow.py b/custom_components/mega/config_flow.py index b1414c0..45fa5e2 100644 --- a/custom_components/mega/config_flow.py +++ b/custom_components/mega/config_flow.py @@ -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 = 5 + VERSION = 6 CONNECTION_CLASS = config_entries.CONN_CLASS_ASSUMED async def async_step_user(self, user_input=None): diff --git a/custom_components/mega/entities.py b/custom_components/mega/entities.py index a89b6b7..53dda34 100644 --- a/custom_components/mega/entities.py +++ b/custom_components/mega/entities.py @@ -218,9 +218,9 @@ class MegaOutPort(MegaPushEntity): self._is_on = None self.dimmer = dimmer - @property - def assumed_state(self) -> bool: - return True if self.index is not None or self.mega.mqtt is None else False + # @property + # def assumed_state(self) -> bool: + # return True if self.index is not None or self.mega.mqtt is None else False @property def invert(self): @@ -290,12 +290,12 @@ class MegaOutPort(MegaPushEntity): await self.mega.request(**cmd) if self.index is not None: # обновление текущего стейта для ds2413 - self.hass.async_create_task(self.mega.get_port( + await self.mega.get_port( port=self.port, force_http=True, conv=False, http_cmd='list', - )) + ) else: self.mega.values[self.port] = {'value': cmd} await self.get_state() @@ -309,12 +309,12 @@ class MegaOutPort(MegaPushEntity): await self.mega.request(**cmd) if self.index is not None: # обновление текущего стейта для ds2413 - self.hass.async_create_task(self.mega.get_port( + await self.mega.get_port( port=self.port, force_http=True, conv=False, http_cmd='list', - )) + ) else: self.mega.values[self.port] = {'value': cmd} await self.get_state() diff --git a/custom_components/mega/hub.py b/custom_components/mega/hub.py index 6d3b379..65465ea 100644 --- a/custom_components/mega/hub.py +++ b/custom_components/mega/hub.py @@ -196,15 +196,20 @@ class MegaD: Polling ports """ self.lg.debug('poll') + ds2413_polled = [] for x in self.entities: # обновление ds2413 устройств if x.http_cmd == 'ds2413': + self.lg.debug(f'poll ds2413 for {x.entity_id}') + if x.port in ds2413_polled: + continue await self.get_port( port=x.port, force_http=True, http_cmd='list', conv=False ) + ds2413_polled.append(x.port) if self.mqtt is None: await self.get_all_ports() await self.get_sensors(only_list=True) @@ -253,7 +258,7 @@ class MegaD: if 'busy' in ret: return None if ':' in ret: - ret = PATT_SPLIT.split(ret) + ret = ret.split(';') ret = {'value': dict([ x.split(':') for x in ret if x.count(':') == 1 ])} diff --git a/custom_components/mega/manifest.json b/custom_components/mega/manifest.json index 5107dd8..098bde2 100644 --- a/custom_components/mega/manifest.json +++ b/custom_components/mega/manifest.json @@ -15,5 +15,5 @@ "@andvikt" ], "issue_tracker": "https://github.com/andvikt/mega_hacs/issues", - "version": "v0.4.1b" + "version": "v0.4.1b3" } \ No newline at end of file diff --git a/readme.md b/readme.md index c914344..19018a9 100644 --- a/readme.md +++ b/readme.md @@ -30,6 +30,13 @@ HACS - Integrations - Explore, в поиске ищем MegaD. +Чтобы включить возможность использования бета-версий, зайдите в HACS, найдите интеграцию MegaD, нажмите три точки, +там кнопка "переустановить" или reinstall, дальше нужно нажать галку "показывать бета-версии" + +Обновления выполняются так же в меню HACS. +Информация об обновлениях приходит с некоторым интервалом, чтобы вручную проверить наличие обновлений +нажмите три точки возле интеграции в меню HACS и нажмите `обновить информацию` + Альтернативный способ установки: ```shell # из папки с конфигом