Updating the Omada 'Access Point Tracker'
Since the post where an 'Access Point Tracker' was developed that makes use of the Omada Open API, many improvements have been made to my project and it is now far appropriate for an IT support team that needs to get information on access points (APs) in their network. On top of quality-of-life changes, the method for updating the page has also been modified to be more efficient and put less stress on the server hosting the tracker, now using JavaScript to access the AP data and fill in the HTML elements. It is essentially a template now, so the HTML is not constantly being generated on the server and will certainly lower the processing power required by the server whenever an update is made. This also allows for the interval at which the AP tracker will update to be lowered tremendously to every second.
More Data and Tooltips
A key change with the information on APs that is being retrieved is that a lot more is being taken in by the Omada update script. It still gets the IP and status of each AP, but additionally gets the MAC address, model and name of each AP, and the uptime if the AP is online. This will all be used with a new tooltip system, allowing for each of these pieces of information to be displayed all at once as soon as you hover over any AP. This dynamic system will greatly impact the speed at which an IT support team can discover and resolve issues with APs without needing to go through Omada and track down the necessary pieces of information to even find where exactly the AP is located.
Tooltips for an online AP and an offline AP.
These tooltips will also be guaranteed to always stay within the website's display, being prevented from exceeding the highest and lowest positions across the X and Y axis to keep all pieces of information perfectly visible for a good user experience.
Auto Scrolling
A feature that is great for displaying this tracker on a big TV or a monitor on the side is the auto scrolling feature. If there is a lot of groups or APs, the scrollbar will become active as extra content overflows from the main division. This auto scroller will go from the minimum scroll amount to the maximum, eventually showing all groups and APs on an infinite loop, and the speed of this scroll will increase if the website's width becomes smaller. In case this creates a distraction or a quick analysis is needed, the auto scrolling can be toggled in the header to stop and start the scroll loop.
Themes
Another major change made in the header is a theme selection. This takes the project learnt in the post about changing a web page's style based on a date and applies it to this project to give individual IT technicians a preference for their display as well as a fun gimmick when Halloween or Christmas comes, automatically changing the theme during October and December, and more themes can swiftly be added if an idea suddenly sparks. The choice of theme is also cached to the local machine, meaning that when someone goes back to the website, it will keep the theme they chose previously.
Light theme with new data.
Spooky theme with new data.
Winter theme with new data.
Test Data Generator
As demonstrated in the screenshots for the various themes that have been implemented, a generation tool was programmed to give test data fast with many parameters that can be changed. These parameters range from the number of groups there will be, to the chance of an AP being online. The data generated includes AP IPs, names, models, MAC addresses, online and offline states, with an uptime included in online APs. Every value is random but stick to set rules; IPs stay within the range of 192.168.1.2-192.168.255.254, making sure that they are accurately depicted IPs, but will not be in a random order; MAC addresses follow the format of actual MAC addresses where the first 6 hexadecimal values are an Organisationally Unique Identifier (OUI) that is associated with the APs randomly chosen model, and the last 6 hexadecimal values are a random value for the Network Interface Controller (NIC); a model is randomly chosen from a dictionary written in the code that provides the model name, OUI and the chance of getting that model. This can help visualise certain scenarios that the AP tracker may be placed under with accurate depictions of what a network's APs would show, and can also act as a stress test depending on how many APs will be present in a network.
This program can be found in the GitHub Repository, specifically in the 'omada' folder, and has been made to be user-friendly so that nothing has to be changed inside the code, unless the dictionary of AP models need to be changed. The JSON file generated from this script will be placed in the same directory as the script, making updates simple and quick if placed in the same directory as the JSON file that the website's JavaScript will be taking data from.
Responsiveness
To top everything off, the website is now more responsive. When shrinking the width of the screen, each group will appropriately shrink while wrapping their APs, and the elements within the header will shrink and change position as the screen gets small and smaller.
Small page width demonstration.
Evaluation
Improvements can still be made on this project and greatly enhance the user experience as well as display more key information for an IT team.
Since APs show their uptime if they are online, they should also display their downtime if they are offline. This can certainly impact an analysis of down APs since technicians will want to know the exact moment an AP went down to find correlations to other events or see how long it takes for an AP to restart.
Groups could have a sorting feature, changing the order of the APs to be placed by their IP, uptime, downtime, model, etc. instead of the default sorting of AP names. This can be used to gather information like the volume of a certain model in groups, or to track which APs have been kept online or offline the longest. Expanding on the idea of using this for information gathering, a function that could export CSV files of the data present on this website could be helpful for easier analysis (and certainly would be fun to look into and implement). A function that could create and display a graph for certain pieces of data would also be a great tool for data analysis, however Omada may already have such functions already implemented. Nevertheless, they would be intriguing projects to do at a later date, and there is no harm in using this tracker as a hub to keep all of these potential tools in a single location.
More customisability can also be implemented, allowing for the speed of the auto-scrolling to be adjusted if there are too many APs and the default auto-scrolling speed is just too slow to display them all in time, especially before the next update and webpage refresh. The minimum widths of areas could also get a customisable option, allowing for wider and shorter blocks of APs instead of them being tall and thin. These customisation options could reside in an options window that opens at the press of a button, ensuring that the header does not become cluttered while giving the ability to add even more customisation options without worrying about screen space.
The final improvement that could be thought of is improving the responsiveness even more. Currently, when shrinking the width of the screen, the text on the header only gets smaller. This can cause issues for users who have a hard time reading small fonts and will not make out the values of the total, online, and offline APs. A way to get around this accessibility issue to by changing the texts to only show the values and replacing their corresponding texts (total, online, offline) with icons that match what is displayed in the main wrapper, circles. This would allow for the values to be in a bigger font as the screen gets smaller and would make the website more accessible.
These possible improvements would be fun to look into and learn more about, and I hope that I will look into them and document my findings in the near future!
GitHub & Demo Link
(Despite it being a little over nine months since the last post for the AP tracker, this project was actually originally updated to this new state around January 2025)