From 7135bb273e126c5f5ff99d657bb14cb16671f3c9 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 4 Mar 2021 20:25:59 +0300 Subject: [PATCH] add sync_time --- custom_components/mega/config_flow.py | 4 +++- custom_components/mega/const.py | 1 + custom_components/mega/hub.py | 10 +++++++++- custom_components/mega/strings.json | 4 +++- custom_components/mega/translations/en.json | 6 ++++-- custom_components/mega/translations/ru.json | 6 ++++-- custom_components/mega/translations/uk.json | 3 ++- 7 files changed, 26 insertions(+), 8 deletions(-) diff --git a/custom_components/mega/config_flow.py b/custom_components/mega/config_flow.py index 176b64a..3c11b31 100644 --- a/custom_components/mega/config_flow.py +++ b/custom_components/mega/config_flow.py @@ -11,7 +11,7 @@ from homeassistant.const import CONF_HOST, CONF_ID, CONF_PASSWORD, CONF_SCAN_INT from homeassistant.core import callback, HomeAssistant from .const import DOMAIN, CONF_PORT_TO_SCAN, CONF_RELOAD, PLATFORMS, CONF_MQTT_INPUTS, \ CONF_NPORTS, CONF_UPDATE_ALL, CONF_POLL_OUTS, CONF_FAKE_RESPONSE, CONF_FORCE_D, \ - CONF_ALLOW_HOSTS, CONF_PROTECTED, CONF_RESTORE_ON_RESTART # pylint:disable=unused-import + CONF_ALLOW_HOSTS, CONF_PROTECTED, CONF_RESTORE_ON_RESTART, CONF_UPDATE_TIME # pylint:disable=unused-import from .hub import MegaD from . import exceptions @@ -33,6 +33,7 @@ STEP_USER_DATA_SCHEMA = vol.Schema( vol.Optional(CONF_RESTORE_ON_RESTART, default=True): bool, vol.Optional(CONF_PROTECTED, default=True): bool, vol.Optional(CONF_ALLOW_HOSTS, default='::1;127.0.0.1'): str, + vol.Optional(CONF_UPDATE_TIME, default=True): bool, }, ) @@ -152,6 +153,7 @@ class OptionsFlowHandler(config_entries.OptionsFlow): vol.Optional(CONF_RESTORE_ON_RESTART, default=e.get(CONF_RESTORE_ON_RESTART, False)): bool, vol.Optional(CONF_PROTECTED, default=e.get(CONF_PROTECTED, True)): bool, vol.Optional(CONF_ALLOW_HOSTS, default='::1;127.0.0.1'): str, + vol.Optional(CONF_UPDATE_TIME, default=e.get(CONF_UPDATE_TIME, False)): bool, # vol.Optional(CONF_INVERT, default=''): str, }), ) diff --git a/custom_components/mega/const.py b/custom_components/mega/const.py index fa430cf..b3e0822 100644 --- a/custom_components/mega/const.py +++ b/custom_components/mega/const.py @@ -35,6 +35,7 @@ CONF_RESTORE_ON_RESTART = 'restore_on_restart' CONF_CLICK_TIME = 'click_time' CONF_LONG_TIME = 'long_time' CONF_FORCE_I2C_SCAN = 'force_i2c_scan' +CONF_UPDATE_TIME = 'update_time' PLATFORMS = [ "light", "switch", diff --git a/custom_components/mega/hub.py b/custom_components/mega/hub.py index 1e7f764..ceef7c8 100644 --- a/custom_components/mega/hub.py +++ b/custom_components/mega/hub.py @@ -86,6 +86,7 @@ class MegaD: ext_acts=None, i2c_sensors=None, new_naming=False, + update_time=False, **kwargs, ): """Initialize.""" @@ -105,6 +106,7 @@ class MegaD: self.ext_in = ext_in or {} self.ext_act = ext_acts or {} self.i2c_sensors = i2c_sensors or [] + self._update_time = update_time self.poll_outs = poll_outs self.update_all = update_all if update_all is not None else True self.nports = nports @@ -250,6 +252,8 @@ class MegaD: Polling ports """ self.lg.debug('poll') + if self._update_time: + await self.update_time() for x in self.i2c_sensors: if not isinstance(x, dict): continue @@ -649,4 +653,8 @@ class MegaD: else: await x.async_turn_off() - + async def update_time(self): + await self.request( + cf=7, + stime=datetime.now().strftime('%H:%M:%S') + ) \ No newline at end of file diff --git a/custom_components/mega/strings.json b/custom_components/mega/strings.json index 7f41bd5..805cde6 100644 --- a/custom_components/mega/strings.json +++ b/custom_components/mega/strings.json @@ -20,7 +20,9 @@ "protected": "[%key:common::config_flow::data::protected%]", "allow_hosts": "[%key:common::config_flow::data::allow_hosts%]", "restore_on_restart": "[%key:common::config_flow::data::restore_on_restart%]", - "poll_outs": "[%key:common::config_flow::data::poll_outs%]" + "poll_outs": "[%key:common::config_flow::data::poll_outs%]", + "update_time": "[%key:common::config_flow::data::update_time%]" + } } }, diff --git a/custom_components/mega/translations/en.json b/custom_components/mega/translations/en.json index 2e8fd90..6cd075e 100644 --- a/custom_components/mega/translations/en.json +++ b/custom_components/mega/translations/en.json @@ -28,7 +28,8 @@ "protected": "Protected", "allow_hosts": "Allowed hosts", "restore_on_restart": "Restore outs on restart", - "poll_outs": "Poll outs" + "poll_outs": "Poll outs", + "update_time": "Sync time" } } } @@ -47,7 +48,8 @@ "protected": "Protected", "allow_hosts": "Allowed hosts", "restore_on_restart": "Restore outs on restart", - "poll_outs": "Poll outs" + "poll_outs": "Poll outs", + "update_time": "Sync time" } } } diff --git a/custom_components/mega/translations/ru.json b/custom_components/mega/translations/ru.json index 8206837..f917ba7 100644 --- a/custom_components/mega/translations/ru.json +++ b/custom_components/mega/translations/ru.json @@ -27,7 +27,8 @@ "protected": "Блокировать неразрешенные соединения", "restore_on_restart": "Восстанавливать выходы при перезагрузке", "allow_hosts": "Разрешенные ip (через ;)", - "poll_outs": "Обновлять выходы (регулярно)" + "poll_outs": "Обновлять выходы (регулярно)", + "update_time": "Синхронизировать время" } } } @@ -48,7 +49,8 @@ "protected": "Блокировать неразрешенные соединения", "allow_hosts": "Разрешенные ip (через ;)", "restore_on_restart": "Восстанавливать выходы при перезагрузке", - "poll_outs": "Обновлять выходы (регулярно)" + "poll_outs": "Обновлять выходы (регулярно)", + "update_time": "Синхронизировать время" } } } diff --git a/custom_components/mega/translations/uk.json b/custom_components/mega/translations/uk.json index 48b0594..f8bcf4f 100644 --- a/custom_components/mega/translations/uk.json +++ b/custom_components/mega/translations/uk.json @@ -27,7 +27,8 @@ "protected": "Блокувати недозволені з'єднання", "allow_hosts": "Дозволені ip (через ;)", "restore_on_restart": "Відновлювати виходи при перезавантаженні", - "poll_outs": "Оновити виходи" + "poll_outs": "Оновити виходи", + "update_time": "Осинхронізувати час" } } }