This tool will connect to a Unifi controller and to access points on a local network to analyze the roaming performance of client devices to make tuning recommendations, such as transmit power level adjustments.
This application has been developed against these access point models:
Support for other access point models may be added in the future. To encourage the increased development rate of other devices, please see the Donations section below.
java -jar <path_to_application.jar> <server_hostname_or_ip> <admin_username> <admin_pw> <site_name_or_id>
Example: java -jar app.jar 192.168.0.2 admin_bob bobpassword bobs_site
iperf -c 192.168.0.3 -b 100 -u -t 999
The application will log into the controller with the given credentials, then retrieve the site and access point details. The application will simultaneously ssh into each access point to retrieve near-real-time client connection statistics, and continuously monitor the signal strength of the client connection to the access point. The application will make tuning recommendations, which may conflict with local site requirements. The application cannot accommodate for inadequate coverage due to an insufficient number of access points.
The recommendations provided by the application are based on the belief that if the transmit power of an access point is too high, the client will "hang on" to the connection for too long, and not roam at the optimal time. Likewise, if the transmit power of the access point is too low, the client will roam too soon. Basically, there should not be a great discrepancy between the transmit power of the access point and the transmit power of the client, to facilitate good roaming behavior.
My network is 5GHz-only. I developed this application against controller v5.6.x and UAP firmware 3.8.x and 3.9.x. I have tested it with 5GHz and 2.4GHz networks, with multiple Android smartphones (2016 and 2017 models). If you have recommendations for changes to this application, please email me (see below).
Thank me with a donation. If you would like your donation to go toward a specific goal, please include a comment at checkout.
Q: I have only one access point. Will this help me?
A: No. This tool is designed to provide recommendations to help tune a multi-access point system.
Q: Will the <model> access point be supported?
A: Maybe. To encourage the increased development rate of support of other devices, please consider making a Donation (see above).
Q: Why does this require Java?
A: Because that's what I programmed it in.
Q: But I don't want to use Java.
A: That's fine. Feel free to implement a similar program in your programming language of choice. You are not required to use this free program.
No Warranty. No Support. I'm not responsible for anything that results from the use of this application. Use it as you like.
This application uses sshj, guava, jackson, and httpclient; the license of each of those libraries applies as appropriate.
Version 1 - Open source
20171129 - Add support for UAP-AC (square) models and UAP-AC-Pro
20171114 - Add support for first-gen UAP and UAP-LR devices
20171107 - Report on poor distribution of channels
20171106 - Add recommendations for DTIM and Data Rate.
20171105 - Initial release
Email: unifi.analyzer@gmail.com