mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Add CAPSman master to mikrotik presence detection (#9729)
* Add CAPSman master to mikrotik presence detection Automatically prefer caps-man registered clients over locally connected * Remove blank line * Trailing whitespace removed
This commit is contained in:
parent
b00d0a1253
commit
80826bc985
@ -83,6 +83,15 @@ class MikrotikScanner(DeviceScanner):
|
|||||||
routerboard_info[0].get('model', 'Router'),
|
routerboard_info[0].get('model', 'Router'),
|
||||||
self.host)
|
self.host)
|
||||||
self.connected = True
|
self.connected = True
|
||||||
|
self.capsman_exist = self.client(
|
||||||
|
cmd='/capsman/interface/getall'
|
||||||
|
)
|
||||||
|
if not self.capsman_exist:
|
||||||
|
_LOGGER.info(
|
||||||
|
'Mikrotik %s: Not a CAPSman controller. Trying '
|
||||||
|
'local interfaces ',
|
||||||
|
self.host
|
||||||
|
)
|
||||||
self.wireless_exist = self.client(
|
self.wireless_exist = self.client(
|
||||||
cmd='/interface/wireless/getall'
|
cmd='/interface/wireless/getall'
|
||||||
)
|
)
|
||||||
@ -111,7 +120,9 @@ class MikrotikScanner(DeviceScanner):
|
|||||||
|
|
||||||
def _update_info(self):
|
def _update_info(self):
|
||||||
"""Retrieve latest information from the Mikrotik box."""
|
"""Retrieve latest information from the Mikrotik box."""
|
||||||
if self.wireless_exist:
|
if self.capsman_exist:
|
||||||
|
devices_tracker = 'capsman'
|
||||||
|
elif self.wireless_exist:
|
||||||
devices_tracker = 'wireless'
|
devices_tracker = 'wireless'
|
||||||
else:
|
else:
|
||||||
devices_tracker = 'ip'
|
devices_tracker = 'ip'
|
||||||
@ -123,7 +134,11 @@ class MikrotikScanner(DeviceScanner):
|
|||||||
)
|
)
|
||||||
|
|
||||||
device_names = self.client(cmd='/ip/dhcp-server/lease/getall')
|
device_names = self.client(cmd='/ip/dhcp-server/lease/getall')
|
||||||
if self.wireless_exist:
|
if devices_tracker == 'capsman':
|
||||||
|
devices = self.client(
|
||||||
|
cmd='/caps-man/registration-table/getall'
|
||||||
|
)
|
||||||
|
elif devices_tracker == 'wireless':
|
||||||
devices = self.client(
|
devices = self.client(
|
||||||
cmd='/interface/wireless/registration-table/getall'
|
cmd='/interface/wireless/registration-table/getall'
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user