mirror of
https://github.com/tomaae/homeassistant-mikrotik_router.git
synced 2025-06-29 20:14:30 +02:00
Added config options for sensor selection #68
This commit is contained in:
parent
bbd29aad48
commit
f114ed23b3
3 changed files with 103 additions and 25 deletions
|
@ -27,6 +27,20 @@ from .const import (
|
||||||
DEFAULT_SCAN_INTERVAL,
|
DEFAULT_SCAN_INTERVAL,
|
||||||
CONF_TRACK_HOSTS,
|
CONF_TRACK_HOSTS,
|
||||||
DEFAULT_TRACK_HOSTS,
|
DEFAULT_TRACK_HOSTS,
|
||||||
|
CONF_SENSOR_PORT_TRACKER,
|
||||||
|
DEFAULT_SENSOR_PORT_TRACKER,
|
||||||
|
CONF_SENSOR_PORT_TRAFFIC,
|
||||||
|
DEFAULT_SENSOR_PORT_TRAFFIC,
|
||||||
|
CONF_SENSOR_CLIENT_TRAFFIC,
|
||||||
|
DEFAULT_SENSOR_CLIENT_TRAFFIC,
|
||||||
|
CONF_SENSOR_SIMPLE_QUEUES,
|
||||||
|
DEFAULT_SENSOR_SIMPLE_QUEUES,
|
||||||
|
CONF_SENSOR_NAT,
|
||||||
|
DEFAULT_SENSOR_NAT,
|
||||||
|
CONF_SENSOR_SCRIPTS,
|
||||||
|
DEFAULT_SENSOR_SCRIPTS,
|
||||||
|
CONF_SENSOR_ENVIRONMENT,
|
||||||
|
DEFAULT_SENSOR_ENVIRONMENT,
|
||||||
CONF_TRACK_HOSTS_TIMEOUT,
|
CONF_TRACK_HOSTS_TIMEOUT,
|
||||||
DEFAULT_TRACK_HOST_TIMEOUT,
|
DEFAULT_TRACK_HOST_TIMEOUT,
|
||||||
LIST_UNIT_OF_MEASUREMENT,
|
LIST_UNIT_OF_MEASUREMENT,
|
||||||
|
@ -155,7 +169,7 @@ class MikrotikControllerOptionsFlowHandler(OptionsFlow):
|
||||||
"""Manage the basic options options."""
|
"""Manage the basic options options."""
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
self.options.update(user_input)
|
self.options.update(user_input)
|
||||||
return await self.async_step_device_tracker()
|
return await self.async_step_sensor_select()
|
||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="basic_options",
|
step_id="basic_options",
|
||||||
|
@ -179,26 +193,6 @@ class MikrotikControllerOptionsFlowHandler(OptionsFlow):
|
||||||
CONF_TRACK_IFACE_CLIENTS, DEFAULT_TRACK_IFACE_CLIENTS
|
CONF_TRACK_IFACE_CLIENTS, DEFAULT_TRACK_IFACE_CLIENTS
|
||||||
),
|
),
|
||||||
): bool,
|
): bool,
|
||||||
}
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
async def async_step_device_tracker(self, user_input=None):
|
|
||||||
"""Manage the device tracker options."""
|
|
||||||
if user_input is not None:
|
|
||||||
self.options.update(user_input)
|
|
||||||
return self.async_create_entry(title="", data=self.options)
|
|
||||||
|
|
||||||
return self.async_show_form(
|
|
||||||
step_id="device_tracker",
|
|
||||||
data_schema=vol.Schema(
|
|
||||||
{
|
|
||||||
vol.Optional(
|
|
||||||
CONF_TRACK_HOSTS,
|
|
||||||
default=self.config_entry.options.get(
|
|
||||||
CONF_TRACK_HOSTS, DEFAULT_TRACK_HOSTS
|
|
||||||
),
|
|
||||||
): bool,
|
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_TRACK_HOSTS_TIMEOUT,
|
CONF_TRACK_HOSTS_TIMEOUT,
|
||||||
default=self.config_entry.options.get(
|
default=self.config_entry.options.get(
|
||||||
|
@ -208,3 +202,65 @@ class MikrotikControllerOptionsFlowHandler(OptionsFlow):
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def async_step_sensor_select(self, user_input=None):
|
||||||
|
"""Manage the sensor select options."""
|
||||||
|
if user_input is not None:
|
||||||
|
self.options.update(user_input)
|
||||||
|
return self.async_create_entry(title="", data=self.options)
|
||||||
|
|
||||||
|
return self.async_show_form(
|
||||||
|
step_id="sensor_select",
|
||||||
|
data_schema=vol.Schema(
|
||||||
|
{
|
||||||
|
vol.Optional(
|
||||||
|
CONF_SENSOR_PORT_TRACKER,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_SENSOR_PORT_TRACKER, DEFAULT_SENSOR_PORT_TRACKER
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_SENSOR_PORT_TRAFFIC,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_SENSOR_PORT_TRAFFIC, DEFAULT_SENSOR_PORT_TRAFFIC
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_TRACK_HOSTS,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_TRACK_HOSTS, DEFAULT_TRACK_HOSTS
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_SENSOR_CLIENT_TRAFFIC,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_SENSOR_CLIENT_TRAFFIC, DEFAULT_SENSOR_CLIENT_TRAFFIC
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_SENSOR_SIMPLE_QUEUES,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_SENSOR_SIMPLE_QUEUES, DEFAULT_SENSOR_SIMPLE_QUEUES
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_SENSOR_NAT,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_SENSOR_NAT, DEFAULT_SENSOR_NAT
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_SENSOR_SCRIPTS,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_SENSOR_SCRIPTS, DEFAULT_SENSOR_SCRIPTS
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
vol.Optional(
|
||||||
|
CONF_SENSOR_ENVIRONMENT,
|
||||||
|
default=self.config_entry.options.get(
|
||||||
|
CONF_SENSOR_ENVIRONMENT, DEFAULT_SENSOR_ENVIRONMENT
|
||||||
|
),
|
||||||
|
): bool,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
|
@ -27,3 +27,18 @@ CONF_TRACK_HOSTS = "track_network_hosts"
|
||||||
DEFAULT_TRACK_HOSTS = False
|
DEFAULT_TRACK_HOSTS = False
|
||||||
CONF_TRACK_HOSTS_TIMEOUT = "track_network_hosts_timeout"
|
CONF_TRACK_HOSTS_TIMEOUT = "track_network_hosts_timeout"
|
||||||
DEFAULT_TRACK_HOST_TIMEOUT = 180
|
DEFAULT_TRACK_HOST_TIMEOUT = 180
|
||||||
|
|
||||||
|
CONF_SENSOR_PORT_TRACKER = "sensor_port_tracker"
|
||||||
|
DEFAULT_SENSOR_PORT_TRACKER = False
|
||||||
|
CONF_SENSOR_PORT_TRAFFIC = "sensor_port_traffic"
|
||||||
|
DEFAULT_SENSOR_PORT_TRAFFIC = False
|
||||||
|
CONF_SENSOR_CLIENT_TRAFFIC = "sensor_client_traffic"
|
||||||
|
DEFAULT_SENSOR_CLIENT_TRAFFIC = False
|
||||||
|
CONF_SENSOR_SIMPLE_QUEUES = "sensor_simple_queues"
|
||||||
|
DEFAULT_SENSOR_SIMPLE_QUEUES = False
|
||||||
|
CONF_SENSOR_NAT = "sensor_nat"
|
||||||
|
DEFAULT_SENSOR_NAT = False
|
||||||
|
CONF_SENSOR_SCRIPTS = "sensor_scripts"
|
||||||
|
DEFAULT_SENSOR_SCRIPTS = False
|
||||||
|
CONF_SENSOR_ENVIRONMENT = "sensor_environment"
|
||||||
|
DEFAULT_SENSOR_ENVIRONMENT = False
|
||||||
|
|
|
@ -28,16 +28,23 @@
|
||||||
"data": {
|
"data": {
|
||||||
"scan_interval": "Scan interval (requires HA restart)",
|
"scan_interval": "Scan interval (requires HA restart)",
|
||||||
"track_iface_clients": "Show client MAC and IP on interfaces",
|
"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_timeout": "Track network devices timeout (seconds)"
|
||||||
},
|
},
|
||||||
"title": "Basic options"
|
"title": "Basic options"
|
||||||
},
|
},
|
||||||
"device_tracker": {
|
"sensor_select": {
|
||||||
"data": {
|
"data": {
|
||||||
|
"sensor_port_tracker": "Port tracker",
|
||||||
|
"sensor_port_traffic": "Port traffic",
|
||||||
"track_network_hosts": "Track network devices",
|
"track_network_hosts": "Track network devices",
|
||||||
"track_network_hosts_timeout": "Track network devices timeout (seconds)"
|
"sensor_client_traffic": "Client traffic",
|
||||||
|
"sensor_simple_queues": "Simple queues",
|
||||||
|
"sensor_nat": "NAT",
|
||||||
|
"sensor_scripts": "Scripts",
|
||||||
|
"sensor_environment": "Environment variables"
|
||||||
},
|
},
|
||||||
"title": "Device tracking options"
|
"title": "Sensor selection"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue