v1.6.8 - (March 17, 2024) - PATCH: After some back and forth on how to best handle the CPU temp range and colors, I'm going to settle on agreeing that the upper max range for the graph will be 100C. It's at this temperature that your router starts shutting down CPU cores to prevent damage, though it could probably get to 120C before it actually starts physically causing damage. I think if you're getting close to 100C, you should be getting concerned. So the bar chart will show green up to 80C, yellow from 80C-90C, and red from 90C-100C+. Thanks much to @Tech9, @L&LD and @visortgw for their valuable feedback on this! v1.6.7 - (March 16, 2024) - PATCH: Based on some great feedback from @adzie and @ExtremeFiretop, I've added stats for your attached USB storage. All /dev/sd* devices will now show up under the "Disk" section on page 1, showing % used and GB used. - PATCH: Thanks to the keen eye of @Tech9, the "mem used" counter being displayed on page 1 was displaying the color scheme wrong... (ie. low memory was marked green, but in this case, should be red). Fixed and reversed! - PATCH: Also thanks to @Tech9 for his feedback on this, the MAX range for all CPU temps has been dropped from 130C down to 100C, 212F and 373K, as noted that the router will start shutting down CPUs when it hits 100C to protect itself. v1.6.4 - (March 12, 2024) - PATCH: Fixed some minor spacing issues on the WiFi page that was covering some info if the 5GHz range is turned off. Also some minor fixes to the screen utility logic that was causing some visual unknown operand errors when starting RTRMON without a secondary commandline argument. - PATCH: Fixed some of the minor look & feel to bring it more in line with the latest "standards" I've implemented across some of my other scripts. v1.6.2 - (February 7, 2024) - PATCH: Changed the versioning logic to align with the general accepted way of versioning, using the notation: major.minor.patch ... finally, right? After seeing @thelonelycoder changing his ways, I figured it was probably time for me as well. All my scripts moving forward will go this route. Change log wording is now changed to conform to the major/minor/patch standards. So previously, FIXED now conforms to PATCH, ADDED conforms to MINOR, and MAJOR stays the same! - PATCH: Updated the NC statement that runs the SSL Handshake test under the Diagnostics menu. For some reason, something changed on possibly Google's end, yielding a failure each time. Now utilizing the same modified SSL Handshake statement carried over from VPNMON-R3 which is coming back successful. Thanks to @Makaveli for the heads-up! - MINOR: Added new functionality that allows you to start on a specific page. A very old request from @Stephen Harrington! Thank you! :) You can make use of this functionality by specifying a page number (1-6) after you execute RTRMON using the -monitor or -screen function switch. (Example: rtrmon -monitor 2) This would execute RTRMON, and will start on the 2nd page (network bandwidth/usage stats). Enjoy! v1.58 - (December 7, 2023) - FIXED: Issue where RTRMON would be returning invalid operand errors due to null vpnclient state entries in NVRAM. Used @Martinski's excellent function to catch for these now. v1.57 - (September 12, 2023) - FIXED: Issue where on certain routers, whether it was a new install, or perhaps openvpn was never configured, or perhaps only wireguard was being used, needless to say, the NVRAM variables for all 5 openvpn slots were returning null values, instead of an expected 0. Now assumes a zero if it returns null. v1.56 - (June 24, 2023) - FIXED: There were a few instances of "Ghz" wording on the setup screen that now have been corrected to GHz. Many thanks to @ColinTaylor for uncovering these unforgivable semantic errors. v1.55 - (May 13, 2023) - ADDED: Added functionality to the speedtest section to either test your WAN connection, or if one exists, your VPN connection! Thanks to @Shades for the suggestion/idea! :) v1.54 - (January 3, 2023) - ADDED: Now giving more visibility to the status of the Wi-Fi scheduler, and showing whether or not the Wi-Fi is up or down based on the scheduler. Please note, when the scheduler disables Wi-Fi for a certain time period, the Wi-Fi itself actually still shows as enabled. Thanks to @heysoundude for the suggestion, and to @ColinTaylor for sharing his wisdom on how to find these particular intriquite settings under NVRAM! - FIXED: Thanks to @jtp10181 for identifying an issue with the free command, and have inserted an explicit call to /usr/bin/free in case another version of free is present on the system returning invalid info. - FIXED: Regressed some changes back to v1.50 and implemented some different methods to achieve the same results, as the code I was using was causing some strange results. v1.51 - (December 31, 2022) - FIXED: Some logic was causing issues pulling up the NVRAM stats and causing a "malformed ?: operator" full-stop. I am guessing there was a difference between the way 386 reported these stats vs. 388. This fix should be backwards compatible, and was able to test that it continues to work on the old AC86U running 386.7_2. v1.50 - (December 7, 2022) HOTFIX - FIXED: Due to a variable name that was already being used, one of the UI figures was being misreported for the new speedtest results. Thanks much to @visortgw for catching this! v1.49 - (December 7, 2022) - CHANGED: Updated the script to point to the new Ookla Speedtest CLI version. Ookla updated the CLI (commandline- based speedtest executable) from v1.1.1 to v1.2.0. In order to update to the latest version, please visit the RTRMON config, disable/uninstall Speedtest, and re-enable/install it again. This will cause RTRMON to uninstall the old version, and download/install the new version. Thanks for the heads-up, @Matthew Patrick! - CHANGED: As as result of the new Speedtest CLI, page 4 has been significantly modified to show additional information as low/high idle, download and upload latencies as well as download and upload jitter, hopefully giving you a better idea on bufferbloat. - CHANGED: Modified the minimalist progress bar to show "[Selection? X]", indicating when it is acceptable to use a keypress, and added another banner indicating "[Refreshing Stats]". - ADDED: The version number now shows when RTRMON is kicked off with the -screen switch. - FIXED: The inputs on the config screen will now filter out any invalid characters, in the case someone uses decimals or accidentally adds letters. The temperature question will now also force input for C, K or F only now. Thanks to @ottofreud for working with me on this issue! v1.46 - (November 26, 2022) - HOTFIX: Added the requirement to check for the iftop binary, and if it's not installed, will prompt you through the setup menu to install/re-install entware dependencies. iftop is used to gather connections and bandwidth stats and give you the top 10 connections for WAN, LAN and VPN interfaces. v1.45 - (November 25, 2022) - MAJOR: Added a 6th page of statistics... this time borrowing a little magic from the iftop command, and giving you the top 10 network connections/bandwidth info currently taking place on your WAN, LAN and VPN connections! This info gives you a quick snapshot in time showing you current activity to satisfy any curiocity you may have on what servers or services your network clients are currently interacting with, or could be helpful determining bandwidth hogs, or tracking down curious outbound connections that require a bit more scrutiny and research. Happy Thanksgiving! v1.41 - (November 2, 2022) HOTFIX 1 - CHANGED: Added a prerequisite check for the existence of JQ, which is now required when pulling info about your VPN connection. Thanks for the heads-up, @ugandy! v1.40 - (November 2, 2022) - ADDED: Borrowing a little something from VPNMON-R2, and are now showing VPN client statistics under page 2 of RTRMON. The VPN section shows current public VPN IP, VPN IP city location, current TUN (tunnel) slot and TX/RX stats of the current connection. Having this alongside your WAN and LAN stats, gives you a good perspective on what level of network traffic is truly happening on your router. This feature will now show up to 2 connected VPN clients that you may currently have connected due to screen space contraints. - ADDED: Now you are able to pick your own custom speedtest server ID to test against. This option is now available under the config menu. Please note, in order to find the ID, one method currently available is when using the browser and going to speedtest.net, when hoving your mouse over a specific test server, the digits on the end of the URL signify its ID. Enter these digits into the config menu item to always test against this preferred server. Leaving this field with a 0 entry will choose the closest/fastest test server to your WAN exit location. Look for item #10 under config. - ADDED: An option to choose a more minimalist progress bar. Thanks to @ugandy, you can specify if you want the standard or minimalist progress bar under the config menu, item #12. For those who found it annoying or distracting, enjoy! - ADDED: An auto-rotate option is now available by hitting the (R)otate pgs option from any of the currently 5 different stats screens. When doing so, RTRMON will automatically advance to the next page, and loop through each until you disable this feature by again hitting the (R)otate pgs key. Thanks for the suggestion, @Stephen Harrington! - ADDED: More log events have been added, namely when the script started up, results of speed tests, and when your VPN changes so that it lets you know that an API call was made to determine your public VPN IP and exit city location. - CHANGED: As with VPNMON-R2, now when you make changes to the config while running the program, upon return to the main UI, your changes will automatically be applied without needing to exit and restart. - CHANGED: Modified the update functionality to allow you to force-update your current RTRMON script with the current build available on github. - FIXED: Under heavy load, I noticed that the CPU percentages did not add up (close to) 100%, and realized that I left out a vital component, namely the IRQ stat. This item has now been added under the CPU stats, giving you a little more accuracy on current CPU activity. - FIXED: RTRMON is now able to recognize whether your VPN connection is using a public or private network, and will accommodate for each in the UI under page #2. Thanks to @visortgw for reporting this issue! - FIXED: The minimalist progress bar will now also be visible during the initial booth sequence... thanks for the suggestion, @visortgw v1.32 - (October 11, 2022) - HOTFIX 2 - FIXED: Added some additional error checking on the network diag functions based on some output/screenshot received from @DJones. Thank you! NC errors should be suppressed from this point forward, allowing RTRMON to show a passed/failed message after the completion of each test. v1.31 - (October 7, 2022) - HOTFIX - FIXED: Ookla continues to surprise me with getting their licensing agreement in your face in places you don't expect it. In this case, it was interfering with the results file being saved, and causing malformed strings, gunking things up. The process has now changed a bit... On a new install, or when you select option 9 to enable the Ookla Speedtest, after the install completes, an initial speedtest is run where the license file is captured and saved to the /jffs/addons/ rtrmon.d folder. Each time RTRMON runs, it will check to see if that license file exists, if not, it will copy it over from the /root/.config/ookla folder, and vice versa... if the /root/.config/ookla folder is gone due to a router reboot, it will copy that license file back over, hopefully providing some stability. Thanks to @ugandy for reporting this issue! :) v1.30 - (October 7, 2022) - MAJOR: Added a 5th page of STATS! -- View Network Diagnostics and and Open TCP/UDP Port Scanner!! This page gives you the option of running a network diagnostics check, and will test the following: Local clock, network connectivity, network resolution, dig functionality, curl functionality, spider functionality and SSL Handshakes! It will furthermore run an nmap scan against your local BR0 LAN connection and your public WAN connection, giving you information about any open TCP or UDP ports it finds. You can switch back and forth between the TCP and UDP results by hitting (T) and (U) while on that page. Huge thanks to @SomeWhereOverTheRainbow for his inspiration and code for this functionality. This code was originally designed as a very efficient WAN check, it ended up getting converted into a slick network diag function. ;) - ADDED: Nmap is now part of the required Entware Dependencies for RTRMON to run and perform all of its intended functions. This can be added by going into the Setup menu, and choosing "sc" - Setup & Configure, or "fr" - Force Reinstall Dependencies. - FIXED: the -wipe SCREEN command is now being checked earlier before the script determines how it is going to initiate a SCREEN session. - FIXED: Looks like my 2.4GHz antenna temp sensor stopped working suddenly, and generating a weird message, so I built in some error checking to eliminate those messages from making it to the screen. v1.24 - (September 29, 2022) - MINOR: Small wording changes around the setup menu when it comes to installing Entware prerequisites. Added a check when the script starts up to ensure that all prerequisites are in place before running the script. - CHANGED: The behavior of the "rtrmon -screen" command, so that when you execute this commandline parameter, it first will look for orphaned screens and wipe them... then, it will launch RTRMON into a new screen environment, and connect to it. This skips the original behavior where it drops back to a command prompt, and asks the user to connect to the RTRMON screen by requiring the user to run the "screen -r rtrmon" command. If a screen session is already running, and you type: "rtrmon -screen", it will then connect to this screen session without requiring any user input. Thanks much to @TITAN for the great suggestion! v1.23 - (September 10, 2022) - ADDED: Compatibility added for the other Asus-Merlin-compatible routers: GT-AX11000, ZenWiFi_Pro_XT12, and ZenWIFI_AX are all tri-band routers. Please know, I'm just taking a wild stab at identifying these router "model names", which would get read from your NVRAM. If these are not correct, and you're not seeing 3 different WiFi bands under your page (3) WiFi tab, please let me know. - CHANGED: Minor fixes and enhancements v1.22 - (September 7, 2022) - ADDED: Based on excellent feedback from @ugandy, I have added compatibility for the more advanced GT-AXE11000 and the GT-AXE16000 routers with 3 or 4 different WiFi interfaces, 2.4Ghz, 2 x 5Ghz and 6Ghz transmitters. In doing so, the WiFi section has now been split off onto its own page (3) to handle up to 4 different wireless interface statistics. This version adds completely new logic to handle the weird interface assignment for the GT-AXE16000, the more standard 2.4/5/6GHz assignment for the GT-AXE11000, and the even more different 2.4/5-1/5-2GHz assignment for the GT-AX11000_PRO. I think I have a method now to easily add new models as they come up... the downside is that I have to define them to specify what kinds of assignments they "might" have. - ADDED: Included the interface names for all the Wireless transmitters to be included on top of the stats for each. - ADDED: A (P)revious page keypress function that allows you to now go back and forth between pages! Whoo! - CHANGED: Moved the (I)nitiate Speedtest menu item to the top of page (4) on the Speedtest page. v1.20 - (August 28, 2022) - CHANGED: Thanks to @Jack Yaz, always pushing me to do better, I have accepted the challenge, and created a numbered list of valid interfaces to choose from instead of typing in an interface name. It is completely understandable that relying on people to type in the correct interface name might cause you to lose faith in humanity, but I was trusting. ;) I think it took me longer to come up with a working method to validate input! LOL v1.19 - (August 28, 2022) - ADDED: Added another menu item that allows you to override the default interface assigned to WAN0. Thanks to @adahnert for the suggestion, and for @SomeWhereOverTheRainBow for helping shape this feature! :) This menu item will list the valid interfaces that are currently available on your router for you to pick from. Please note, correct spelling and case senstivity is very important when entering this value! - ADDED: The interface name is now visible on page (2) next to the WAN0/1 IP4 address field. This will give you a quick way to view what interface is currently selected to monitor your WAN stats. - FIXED: Fixed the other menu items so that if someone just hits enter while prompting for a value, that the default value gets added. This should help catch any accidental entries (or cats walking across your keyboard), and increases the chances for a valid entry to be registered. v1.17 - (August 24, 2022) - FIXED: Added a few more timeout commands to some recently imported NVRAM GET statements that were locking up my script again. Grr. - CHANGED: The way that the progress bar percentages work, and now allows them to display values > 100%. This was evident where indicated or measured speedtest bandwidth rates were being capped at the top of specified speeds, and would not show any values greater than what was specified in the config. So now, if you specified that you have a 1Gig pipe, and you're actually pulling down 1200Mbps, it will show your current bandwidth rate at 120%. This change has been made for any networking and temperature values. Thanks much to @visortgw for the suggestion! v1.15 - (August 17, 2022) - FIXED: Modified the df command which is used to assemble /jffs stats/information, and came across a weird situation that was breaking the command due to it referencing ubi:/jffs instead of dev:/jffs... Thanks for the find, @visortgw v1.14 - (August 17, 2022) - FIXED: Based on feedback from @adahnert running on stock Asus firmware, I have made some mods to certain NVRAM calls that don't seem to return any values when running on non-Merlin firmware. Happy to oblige, so now the cache total value defaults to 100 if there is no cache configured (to avoid divide-by-zero errors and wonky progress bars), and the WAN interface name now defaults to "eth0" if this value is returned as a blank. - ADDED: The router model at the top of the page to easily identify what kind of device this is. v1.12 - (August 7, 2022) - FIXED: Prevented the hotkey menu from working during the initial boot process while it is capturing data for display purposes, and makes this menu active after the capture process. This helps prevent invalid results from being display and borking things up with error messages. ;) Thanks for the find, @Stephen Harrington! - FIXED: A couple of minor numbering typos for some setup menu entries. v1.11 - (August 6, 2022) - FIXED: A parsing issue was generating some weird results due to the formatting of some the test servers, and subsequently dropping the wrong data into the wrong fields. v1.1 - (August 5, 2022) - MAJOR: Added a major enhancement to RTRMON -- namely, the commandline Ookla Speedtest binary! Whoo! On the newly added Page 3 of the application, you can now initiate a manual speedtest! It will by default use your primary WAN connection and pick the closest server to you to run its test, and display these results on Page 3. These results are saved to a file, so next time you launch RTRMON, you will be able to see your last results. There are no fancy spdMerlin graphs or charts, but just good ol' plain data, and some progress indicators giving you a dashboard-like view of your actual vs max WAN up/down speeds. In the setup menu, you can now enable 'Ookla Speedtest', which will download and install the binaries. If you disable it, the setup menu will prompt you to uninstall these components for you. - ADDED: Another variable has been added to capture your WAN upload speed. I personally don't have symmetrical up/download speeds, and using this will only give you a better indicator what's happening on your network as it measures and displays these results. - ADDED: Additional stats on the networking page, including the WAN and LAN IP6 addresses. Though my alignment OCD will have to live with the fact that IP6 addresses are variable length and won't fit nicely between brackets. Thanks to @SomewhereOverTheRainbow for his assist in developing the code that pulls this info! RTRMON v1.06b1 additions have been absorbed under this major release. v1.05 - (July 22, 2022) - FIXED: Additional bug that @Stephen Harrington uncovered regarding the WAN DNS NVRAM variable being used, and was yielding some different results for him than it was for me. Changed it to look at a different variable, and built in some more logic that picks the DNS entries depending on which WAN connection is active. v1.04 - (July 22, 2022) - ADDED: Additional stats on the networking page, include WAN0, WAN1 and LAN IP addresses... as well as WAN DNS IP addresses! Whoo! - CHANGED: Increased the number of digits after the decimal for all networking traffic to show a little more precision. - CHANGED: All setup menu's look & feel now match that of VPNMON-R2! We have achieved congruency! :) v1.03 - (July 20, 2022) - FIXED - It looks like there was some inconsistency in the way the JFFS partition was being measured as well, and fixed that code to be a bit more compliant with returning the right values. v1.02 - (July 20, 2022) - FIXED - Apparently AC68U's have a different way of capturing the CPU temp, and am checking for this alternate way on any router that might use the same methods. So now there's two. ;) v1.01 - (July 18, 2022) - FIXED - Bug fix that was occasionally being caused by reading a blank NVRAM file causing an arithmetic error! - ADDED - capability of checking NVRAM to determine whether your wl0 or wl1 (wireless LANs) are turned on or not, and if not, it will show as disabled in the UI - Thanks @Stephen Harrington! - ADDED - if someone fat-fingers the temp units other than C, F or K, it will just default to C. v1.0 - (July 16, 2022) - FIXED - Now allows you to set your WiFi speeds to 0 if you effectively have them disabled (Thanks @Stephen Harrington) - FIXED - Changed temp units to force to uppercase during config, and made a small wording change (Thanks @Thirteen) v1.0RC1 - (July 15, 2022) - RELEASE - Release Candidate 1 (RC1) is officially out there! - ADDED - Added a setup, config, uninstall, and update menu, along with options to view logs, or launch RTRMON regularly in an SSH window, or using the screen utility. Many of these capabilities came over from VPNMON-R2. - ADDED - Using proper add-on guidelines, support files are now located under /jffs/addons/rtrmon.d, with the main rtrmon.sh located under the /jffs/scripts as usual.