Fix SNMP device_tracker results without MAC addresses

@llauren reported that his router returns empty MAC addresses for things
on different subnets, which causes heartache for the HA snmp device tracker.
This commit is contained in:
Dan Smith 2016-03-02 11:43:08 -08:00
parent d641cd5eef
commit e59d6b7da0

View File

@ -66,7 +66,8 @@ class SnmpScanner(object):
""" """
self._update_info() self._update_info()
return [client['mac'] for client in self.last_results] return [client['mac'] for client in self.last_results
if client.get('mac')]
# Supressing no-self-use warning # Supressing no-self-use warning
# pylint: disable=R0201 # pylint: disable=R0201
@ -111,6 +112,7 @@ class SnmpScanner(object):
for resrow in restable: for resrow in restable:
for _, val in resrow: for _, val in resrow:
mac = binascii.hexlify(val.asOctets()).decode('utf-8') mac = binascii.hexlify(val.asOctets()).decode('utf-8')
_LOGGER.debug('Found mac %s', mac)
mac = ':'.join([mac[i:i+2] for i in range(0, len(mac), 2)]) mac = ':'.join([mac[i:i+2] for i in range(0, len(mac), 2)])
devices.append({'mac': mac}) devices.append({'mac': mac})
return devices return devices