From 41b6010210a6c671e3d316ad5e0def47782c962b Mon Sep 17 00:00:00 2001 From: tomaae <23486452+tomaae@users.noreply.github.com> Date: Thu, 9 Apr 2020 23:08:29 +0200 Subject: [PATCH] added device tracking options to config flow #24 --- .../mikrotik_router/.translations/en.json | 11 ++++---- .../mikrotik_router/config_flow.py | 28 +++++++++++++++---- custom_components/mikrotik_router/const.py | 13 +++++---- .../mikrotik_router/strings.json | 4 +-- 4 files changed, 37 insertions(+), 19 deletions(-) diff --git a/custom_components/mikrotik_router/.translations/en.json b/custom_components/mikrotik_router/.translations/en.json index f479590..e89dc3a 100644 --- a/custom_components/mikrotik_router/.translations/en.json +++ b/custom_components/mikrotik_router/.translations/en.json @@ -11,17 +11,16 @@ "port": "Port", "username": "Username", "password": "Password", - "ssl": "Use SSL", - "unit_of_measurement": "Unit of measurement" + "ssl": "Use SSL" } } }, "error": { "name_exists": "Name already exists.", "cannot_connect": "Cannot connect to Mikrotik.", - "ssl_handshake_failure": "SSL handshake failure.", + "ssl_handshake_failure": "SSL handshake failure", "connection_timeout": "Mikrotik connection timeout.", - "wrong_login": "Invalid username or password." + "wrong_login": "Invalid user name or password." } }, "options": { @@ -33,7 +32,9 @@ "data": { "scan_interval": "Scan interval (requires HA restart)", "track_iface_clients": "Show client MAC and IP on interfaces", - "unit_of_measurement": "Unit of measurement" + "unit_of_measurement": "Unit of measurement", + "track_network_hosts": "Track network devices", + "track_network_hosts_timeout": "Track network devices timeout (seconds)" } } } diff --git a/custom_components/mikrotik_router/config_flow.py b/custom_components/mikrotik_router/config_flow.py index abb0c5f..b9f8459 100644 --- a/custom_components/mikrotik_router/config_flow.py +++ b/custom_components/mikrotik_router/config_flow.py @@ -25,6 +25,10 @@ from .const import ( DEFAULT_TRACK_IFACE_CLIENTS, CONF_SCAN_INTERVAL, DEFAULT_SCAN_INTERVAL, + CONF_TRACK_HOSTS, + DEFAULT_TRACK_HOSTS, + CONF_TRACK_HOSTS_TIMEOUT, + DEFAULT_TRACK_HOST_TIMEOUT, LIST_UNIT_OF_MEASUREMENT, DEFAULT_UNIT_OF_MEASUREMENT, DEFAULT_HOST, @@ -162,12 +166,6 @@ class MikrotikControllerOptionsFlowHandler(OptionsFlow): step_id="device_tracker", data_schema=vol.Schema( { - vol.Optional( - CONF_TRACK_IFACE_CLIENTS, - default=self.config_entry.options.get( - CONF_TRACK_IFACE_CLIENTS, DEFAULT_TRACK_IFACE_CLIENTS - ), - ): bool, vol.Optional( CONF_SCAN_INTERVAL, default=self.config_entry.options.get( @@ -180,6 +178,24 @@ class MikrotikControllerOptionsFlowHandler(OptionsFlow): CONF_UNIT_OF_MEASUREMENT, DEFAULT_UNIT_OF_MEASUREMENT ), ): vol.In(LIST_UNIT_OF_MEASUREMENT), + vol.Optional( + CONF_TRACK_IFACE_CLIENTS, + default=self.config_entry.options.get( + CONF_TRACK_IFACE_CLIENTS, DEFAULT_TRACK_IFACE_CLIENTS + ), + ): bool, + vol.Optional( + CONF_TRACK_HOSTS, + default=self.config_entry.options.get( + CONF_TRACK_HOSTS, DEFAULT_TRACK_HOSTS + ), + ): bool, + vol.Optional( + CONF_TRACK_HOSTS_TIMEOUT, + default=self.config_entry.options.get( + CONF_TRACK_HOSTS_TIMEOUT, DEFAULT_TRACK_HOST_TIMEOUT + ), + ): int } ), ) diff --git a/custom_components/mikrotik_router/const.py b/custom_components/mikrotik_router/const.py index 248dc6c..97918c9 100644 --- a/custom_components/mikrotik_router/const.py +++ b/custom_components/mikrotik_router/const.py @@ -15,12 +15,13 @@ DEFAULT_PORT = 0 DEFAULT_NAME = "Mikrotik" DEFAULT_SSL = False - -LIST_UNIT_OF_MEASUREMENT = ["bps", "Kbps", "Mbps", "B/s", "KB/s", "MB/s"] - -CONF_TRACK_IFACE_CLIENTS = "track_iface_clients" CONF_SCAN_INTERVAL = "scan_interval" - -DEFAULT_TRACK_IFACE_CLIENTS = True DEFAULT_SCAN_INTERVAL = 30 +LIST_UNIT_OF_MEASUREMENT = ["bps", "Kbps", "Mbps", "B/s", "KB/s", "MB/s"] DEFAULT_UNIT_OF_MEASUREMENT = "Kbps" +CONF_TRACK_IFACE_CLIENTS = "track_iface_clients" +DEFAULT_TRACK_IFACE_CLIENTS = True +CONF_TRACK_HOSTS = "track_network_hosts" +DEFAULT_TRACK_HOSTS = False +CONF_TRACK_HOSTS_TIMEOUT = "track_network_hosts_timeout" +DEFAULT_TRACK_HOST_TIMEOUT = 180 diff --git a/custom_components/mikrotik_router/strings.json b/custom_components/mikrotik_router/strings.json index fab15de..e89dc3a 100644 --- a/custom_components/mikrotik_router/strings.json +++ b/custom_components/mikrotik_router/strings.json @@ -33,8 +33,8 @@ "scan_interval": "Scan interval (requires HA restart)", "track_iface_clients": "Show client MAC and IP on interfaces", "unit_of_measurement": "Unit of measurement", - "track_network_clients": "Track network devices", - "scan_interval": "Scan interval (requires HA restart)" + "track_network_hosts": "Track network devices", + "track_network_hosts_timeout": "Track network devices timeout (seconds)" } } }