add sync_time

This commit is contained in:
Andrey
2021-03-04 20:25:59 +03:00
parent 7d8554a7aa
commit 7135bb273e
7 changed files with 26 additions and 8 deletions

View File

@@ -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,
}),
)

View File

@@ -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",

View File

@@ -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')
)

View File

@@ -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%]"
}
}
},

View File

@@ -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"
}
}
}

View File

@@ -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": "Синхронизировать время"
}
}
}

View File

@@ -27,7 +27,8 @@
"protected": "Блокувати недозволені з'єднання",
"allow_hosts": "Дозволені ip (через ;)",
"restore_on_restart": "Відновлювати виходи при перезавантаженні",
"poll_outs": "Оновити виходи"
"poll_outs": "Оновити виходи",
"update_time": "Осинхронізувати час"
}
}
}