As part of my continued efforts to automate the deployment of my home network, I ran into an interesting situation. Because I was using both Ubiquiti and TP-Link devices I needed to run two controllers to achieve my deployment goals. Running just one controller, the fabled UniFi controller, turned out to be enough of a pain ( here is a script based on that article BTW) and enough of a resource hog that I decided to forgo the setting up the Omada controller and just create my own solution for configuring wireless access points automatically.
So I wrote eap225 a Python script/module for configuring TP-Link EAP225 wireless access points via their HTTP admin interface. With it, my basic workflow is this:
Use the built-in HTTP admin interface to configure the access point to my liking.
Save the current settings to a file via
System → Backup & Restore → Backup.
Use my script to apply those settings to an AP:
$ python eap225.py HOST USERNAME PASSWORD restore CONFIG(where HOST is the hostname or IP address of your access point, USERNAME is your admin interface username, PASSWORD is your admin interface password, and CONFIG is the file you saved in the second step).
The nice thing is I can call this script from a cron job (which I do to periodically reboot the APs) or use it as a module in a larger Python script that configures my entire network.