From dc94079d749553e97b24a031ce138ea5d18004d9 Mon Sep 17 00:00:00 2001 From: Ryan Mounce Date: Wed, 7 Mar 2018 04:46:18 +1030 Subject: [PATCH] Make ubus dhcp name resolution optional (#12658) For the case that a separate DHCP server is used or the device is a dumb WiFi access point, allow device name resolution to be disabled. --- homeassistant/components/device_tracker/ubus.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/device_tracker/ubus.py b/homeassistant/components/device_tracker/ubus.py index 946aae5fe56..c75529655f4 100644 --- a/homeassistant/components/device_tracker/ubus.py +++ b/homeassistant/components/device_tracker/ubus.py @@ -23,7 +23,8 @@ CONF_DHCP_SOFTWARE = 'dhcp_software' DEFAULT_DHCP_SOFTWARE = 'dnsmasq' DHCP_SOFTWARES = [ 'dnsmasq', - 'odhcpd' + 'odhcpd', + 'none' ] PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ @@ -40,8 +41,10 @@ def get_scanner(hass, config): dhcp_sw = config[DOMAIN][CONF_DHCP_SOFTWARE] if dhcp_sw == 'dnsmasq': scanner = DnsmasqUbusDeviceScanner(config[DOMAIN]) - else: + elif dhcp_sw == 'odhcpd': scanner = OdhcpdUbusDeviceScanner(config[DOMAIN]) + else: + scanner = UbusDeviceScanner(config[DOMAIN]) return scanner if scanner.success_init else None @@ -92,8 +95,8 @@ class UbusDeviceScanner(DeviceScanner): return self.last_results def _generate_mac2name(self): - """Must be implemented depending on the software.""" - raise NotImplementedError + """Return empty MAC to name dict. Overriden if DHCP server is set.""" + self.mac2name = dict() @_refresh_on_access_denied def get_device_name(self, device):