diff --git a/homeassistant/components/device_tracker/asuswrt.py b/homeassistant/components/device_tracker/asuswrt.py index be530abc9e2..512ccba0b74 100644 --- a/homeassistant/components/device_tracker/asuswrt.py +++ b/homeassistant/components/device_tracker/asuswrt.py @@ -71,10 +71,11 @@ _ARP_REGEX = re.compile( _IP_NEIGH_CMD = 'ip neigh' _IP_NEIGH_REGEX = re.compile( - r'(?P([0-9]{1,3}[\.]){3}[0-9]{1,3})\s' + - r'\w+\s' + - r'\w+\s' + - r'(\w+\s(?P(([0-9a-f]{2}[:-]){5}([0-9a-f]{2}))))?\s' + + r'(?P([0-9]{1,3}[\.]){3}[0-9]{1,3}|' + r'([0-9a-fA-F]{1,4}:){1,7}[0-9a-fA-F]{0,4}(:[0-9a-fA-F]{1,4}){1,7})\s' + r'\w+\s' + r'\w+\s' + r'(\w+\s(?P(([0-9a-f]{2}[:-]){5}([0-9a-f]{2}))))?\s' r'(?P(\w+))') _NVRAM_CMD = 'nvram get client_info_tmp' @@ -323,6 +324,8 @@ class AsusWrtDeviceScanner(DeviceScanner): else: for lease in result.leases: + if lease.startswith(b'duid '): + continue match = _LEASES_REGEX.search(lease.decode('utf-8')) if not match: