Repository URL to install this package:
|
Version:
1.0 ▾
|
unifi
/
unifi-log-roaming
|
|---|
#!/usr/bin/env python
from __future__ import print_function
import argparse
import time
from unifi.controller import Controller
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--controller', default='unifi', help='the controller address (default "unifi")')
parser.add_argument('-u', '--username', default='admin', help='the controller usernane (default "admin")')
parser.add_argument('-p', '--password', default='', help='the controller password')
parser.add_argument('-v', '--version', default='v2', help='the controller base version (default "v2")')
parser.add_argument('-s', '--siteid', default='default', help='the site ID, UniFi >=3.x only (default "default")')
args = parser.parse_args()
c = Controller(args.controller, args.username, args.password, args.version, args.siteid)
aps = c.get_aps()
ap_names = dict([(ap['mac'], ap['name']) for ap in aps])
client_aps = {}
while True:
clients = c.get_clients()
for client in clients:
ap = ap_names[client['ap_mac']]
mac = client['mac']
name = client['hostname'] or client['ip'] or client['mac']
channel = client['channel']
rssi = client['rssi']
key = '%s/%d' % (ap, channel)
if mac in client_aps:
if client_aps[mac] != key:
print('%s roamed %s -> %s' % (name, client_aps[mac], key))
client_aps[mac] = key
time.sleep(10)