Tuesday 11 September 2018

UniFi APs and time scheduling

UniFi has been my choice for WIFI access points for a while, I've put quite a few in now in large and small installations. The smallest being at home where I have two APs.
One in the house and one in the garage to cover the drive, garden, etc. They work pretty well and I get good coverage generally. I've gone with setting them both to the same channel for the same SSID. In some ways this is frowned upon as you get overlap and arguing over channels, but I find it works really well and some of my older devices quite happily shift between access points.
They're the older 11N/B/G units so nothing amazing, but for home use pretty good.

The biggest problem I have is their configuration. UniFi APs have no way of configuring them directly, they require the "UniFi controller" which is a java (Urgh... Really... Urgh) web control panel that drives it all. The panel is actually pretty good, shows client connections, signal strength, number of APs, nearby channels, lets you control guest access, etc. Here is where UniFi is nice and "just works", you can setup guest wifi hotspots, with doorway pages, terms to agree to, or just limit how long people can spend on the AP. You can also set wifi access times (Times of the day/week that the Wifi SSID is broadcast/available), block/permit MAC addresses, use VLANs and other clever parts that are all just built in.
As mentioned before, the issue is their configuration. Their method of the APs being remote to the controller means after making most changes to the controller the APs have to re-provision to then take the new configuration. This re-provision causes them to STOP traffic/drop the SSID's, update and then come back online. This is a major headache as means after each change your entire wireless network drops, configures then comes back. Not really good for production use that! There isn't a clear indicator as to what changes cause a wifi drop either, so you're sometimes left guessing whether wifi will drop or not.

WiFi access times - This is a feature I really wanted, it'd allow me to control my guest and kids wifi network, whilst leaving my own alone.

Here you can see it setup to only allow access 8am-6pm 7 days a week. Firstly, you'll see you can't have multiple schedules per day, only one ON and OFF per day.
There was another issue with this, if you want to make a one-off quick change to the schedule you can't really, you have to modify the time or disable/enable WLAN schedule (WARNING: If you disable it, when you go back to re-enable it, the times are all reset back to defaults). So this doesn't give you the option for dynamic changes to add time if needed, etc.

At present this feature has been continuously requested from Unifi but no success. I've therefore been looking for alternatives, and at the moment have only a partial fix to this.
There is a PHP class that provides access to the UniFi controller through scripts (https://github.com/Art-of-WiFi/UniFi-API-client) that I've used for a quick script that allows me to switch on and off the relevant SSID's on demand.
The problem is that this makes a change to the controller, and so in turn all the APs go back through provisioning and cause all wifi clients to drop!

No solution to that at the moment, so I'm open to suggestions, even if that might be to move to an alternative wifi product (Microtik maybe?).