added support for overriding zone name in device_tracker

This commit is contained in:
ddanssaert 2021-12-16 22:45:29 +01:00
parent 6129e18cc3
commit 873d18e60a
4 changed files with 32 additions and 1 deletions

View file

@ -16,6 +16,8 @@ from homeassistant.const import (
CONF_USERNAME, CONF_USERNAME,
CONF_PASSWORD, CONF_PASSWORD,
CONF_SSL, CONF_SSL,
CONF_ZONE,
STATE_HOME
) )
from homeassistant.core import callback from homeassistant.core import callback
@ -207,6 +209,13 @@ class MikrotikControllerOptionsFlowHandler(OptionsFlow):
CONF_TRACK_HOSTS_TIMEOUT, DEFAULT_TRACK_HOST_TIMEOUT CONF_TRACK_HOSTS_TIMEOUT, DEFAULT_TRACK_HOST_TIMEOUT
), ),
): int, ): int,
vol.Optional(
CONF_ZONE,
default=self.config_entry.options.get(
CONF_ZONE, STATE_HOME
),
): str,
} }
), ),
) )

View file

@ -9,6 +9,7 @@ from homeassistant.components.device_tracker.const import SOURCE_TYPE_ROUTER
from homeassistant.const import ( from homeassistant.const import (
CONF_NAME, CONF_NAME,
ATTR_ATTRIBUTION, ATTR_ATTRIBUTION,
STATE_NOT_HOME,
) )
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC
@ -300,6 +301,13 @@ class MikrotikControllerHostDeviceTracker(MikrotikControllerDeviceTracker):
return "mdi:lan-connect" return "mdi:lan-connect"
return "mdi:lan-disconnect" return "mdi:lan-disconnect"
@property
def state(self) -> str:
"""Return the state of the device."""
if self.is_connected:
return self._ctrl.option_zone
return STATE_NOT_HOME
@property @property
def extra_state_attributes(self) -> Dict[str, Any]: def extra_state_attributes(self) -> Dict[str, Any]:
"""Return the state attributes.""" """Return the state attributes."""

View file

@ -24,6 +24,8 @@ from homeassistant.const import (
CONF_USERNAME, CONF_USERNAME,
CONF_PASSWORD, CONF_PASSWORD,
CONF_SSL, CONF_SSL,
CONF_ZONE,
STATE_HOME,
) )
from .const import ( from .const import (
@ -311,6 +313,17 @@ class MikrotikControllerData:
CONF_UNIT_OF_MEASUREMENT, DEFAULT_UNIT_OF_MEASUREMENT CONF_UNIT_OF_MEASUREMENT, DEFAULT_UNIT_OF_MEASUREMENT
) )
# ---------------------------
# option_zone
# ---------------------------
@property
def option_zone(self):
"""Config entry option to not track ARP."""
return self.config_entry.options.get(
CONF_ZONE, STATE_HOME
)
# --------------------------- # ---------------------------
# signal_update # signal_update
# --------------------------- # ---------------------------

View file

@ -29,7 +29,8 @@
"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)" "track_network_hosts_timeout": "Track network devices timeout (seconds)",
"zone": "Zone for device tracker"
}, },
"title": "Basic options" "title": "Basic options"
}, },