Library change log
About 9 min
Library change log
π 1.21.0 AiMesh network monitoring
2025-09-03
β π GitHub release β
π Features
- Added traffic monitoring for the AiMesh network via
asusrouter.modules.traffic- Data rates can be independently monitored for any of the nodes (routers) connected to the AiMesh
- Wired traffic (fronthaul or backhaul) via
ARTrafficSourceEthernet - Wireless fronthaul (per band via its MAC address) via
ARTrafficSourceWiFi - Wireless backhaul via
ARTrafficSourceBackhaul
- Added units (and corresponding converters) for data and data rate in
asusrouter.tools.units
π Bug Fixes
- Improved error handling on data fetch
π§βπ v2 preparation
- Added new data fetch flow
- Already in use for traffic monitoring (directly accessible through v1 calls)
- Added universal source module in
asusrouter.modules.sourcefor handling data sources
π£ GitHub & Development
- Added new exception type
AsusRouterRequestFormatError - Other code improvements
- Bumped
ruffto0.12.11
π 1.20.1 Bug fix
2025-08-23
β π GitHub release β
π Bug Fixes
- Fixed bug in HA sensors list generation on raw data failure
βοΈ 1.20.0 Instance configurations
2025-08-23
β π GitHub release β
π Features
- Added instance configuration management to
AsusRouterclass viaARInstanceConfigclass inasusrouter.configmodule - Added enum tools with
FromIntMixinandFromStrMixinmixins to standardise value-to-enum conversion - Added
DeviceOperationModedefinition inasusrouter.modules.device - Added
dict_to_requestwriter
π§βπ v2 preparation
This release starts implementing non-breaking changes to the library in preparation for the v2 upgrade. Such changes will be gradually introduced and will not be directly available without an explicit call.
- Added
ARCallableRegistryviaasusrouter.registry - Added
MacAddressclass inasusrouter.tools.identifiers - Added masking tools for
MacAddressinstances inasusrouter.tools.masking
π£ GitHub & Development
- Bumped
codecov-actionto5.5.0
βοΈ 1.19.0 Connection configurations
2025-08-16
β π GitHub release β
π Features
- Added
asusrouter.tools.securitymodule andARSecurityLevellevel definition - Added universal configuration manager base
ARConfigBaseand key baseARConfigKeyBase - Added
ARConfigKey.DEBUG_PAYLOADconfiguration key to define which data can be exposed in the debug logging. Defaults toARSecurityLevel.DEFAULT, which will automatically block any sensitive data (from the known sensitive endpoints + login endpoint) - Added configuration management for connection settings in
asusrouter.connection_configmoduleARConnectionConfigconnection configuration classARConnectionConfigKeyconnection configuration parameters- Configurations are set per instance of the
Connectionclass and can be passed duringAsusRouter, directConnectioninitialisation, or dynamically set during runtime.
- Added fallback features for the connection:
- To be enabled manually via
ARConnectionConfigKey.ALLOW_FALLBACK - Fallback matrix follows:
- HTTPS @ Custom port -> HTTPS @ Default port
- HTTPS @ Default port -> HTTP @ Default port (if
ARConnectionConfigKey.STRICT_SSLisfalse, default) - HTTP @ Custom port -> HTTP @ Default port
- HTTP @ Default port -> HTTPS @ Default port (if
ARConnectionConfigKey.ALLOW_UPGRADE_HTTP_TO_HTTPSistrue, default)
- Loop protection via tracking which fallback was already used
- To be enabled manually via
- Added new exceptions to the
asusrouter.errormodule (SSL certificate errors, fallback errors)
π Bug Fixes
- Fixed issue when SSL certificate verification relied on the provided session configs rather than AR settings
π£ GitHub & Development
- Improved and extended unit tests for the
asusrouter.connectionmodule - Bumped
uv.lockdependencies:aiohttpto3.12.15pytest-covto6.2.1ruffto0.12.9
π Documentation
- Updated documentation for the latest features
π‘οΈ 1.18.2 More config controls
2025-08-13
β π GitHub release β
π Features
- Added
ARConfigKey.NOTIFIED_OPTIMISTIC_TEMPERATUREvalue for custom control of the optimistic temperature notification warning
π£ GitHub & Development
- Bumped
uv.lockdependencies:pytestto8.4.1pytest-asyncioto1.1.0pydanticto2.11.7mypyto1.17.1urllib3to2.5.0
βοΈ 1.18.1 Development release
2025-08-12
β π GitHub release β
π£ GitHub & Development
- Added
py.typedand marked project as typed - Bumped and fixed setuptools to
80.9.0 - Updated deprecated fields in package description
- Updated dependabot configuration
- Bumped CI dependencies
π οΈ 1.18.0 DDNS, robust boottime and many dev improvements
2025-08-10
β π GitHub release β
π Features
- Added DDNS support via
AsusData.DDNS- Full compatibility with Asus DDNS servers (
.comand.cn)
- Full compatibility with Asus DDNS servers (
- Added
ARConfigKeyenum to help with configuration management. This is now the only supported way to get and setARConfigkeys - Added robust boot time measurement to fix 1-second jitter. Optional, can be set via
ARConfigKey.ROBUST_BOOTTIME(default:False)
π£ GitHub & Development
- Added
ruffconfigurations - Added
pre-commithooks - Added CI check on
ruff - Improved the
CONTRIBUTING.mddocumentation
π¦ Dependencies
- Bumped
ruffto0.12.8 - Set
pre-committo4.3.0
1.17.0 π£ ARConfig, node control and optimistic temperature
2025-08-03
β π GitHub release β
π Features
- Added global
ARConfigconfiguration to store settings during the library usage - Added optimistic temperature conversion for automatic data fix when it is obviously wrong (controlled via the corresponding config)
- Added single AiMesh node reboot via
AsusSystem.NODE_REBOOTstate (requires MAC of the target node) - Added config control for target node via
AsusSystem.NODE_CONFIG_CHANGEstate (requires MAC of the target node and config data)
1.16.0 π£ AsusSystem members and GitHub Actions
2025-08-02
β π GitHub release β
π Features
- Added new
AsusSystemmembers for onboarding (AIMESH_ADD_NODE,AIMESH_ONBOARDING) - Adjusted FW parsing warning to be triggered only once for each unique FW string
π£ GitHub
- Added Python 3.13 to the testing matrix
- Improved Actions workflows for better safety and performance
- Removed the release drafter, which was not in use
1.15.1 β Uptime fix
2025-07-27
β π GitHub release β
π Bug fixes
- Fixed issue when
uptimewas not updated if the boottime was not changed
1.15.0 β Uptime
2025-07-27
β π GitHub release β
π Features
- Added
uptimevalue to theAsusData.BOOTTIMEstate corresponding to the device uptime in seconds
1.14.2 π Bugfix for those with no PORT_STATUS endpoint
2025-06-14
β π GitHub release β
π Bug fixes
- Fixed aiohttp error when non-existing
PORT_STATUSendpoint was queued withPOSTmethod
1.14.1 π aiohttp fix
2025-06-13
β π GitHub release β
π Bug fixes
- Fixed issue with aiohttp version
3.12.7+, cookie quoting and some devices
1.14.0 π‘ Improved connection
2025-03-23
β πGitHub release β
π Features
- Improved connection logic
- Improved fallbacks for the failed connection
π¨ Other changes
- Switched to
uvandrufffor the development environment - Refactored the connection module
π¦ Dependencies
- Bumped development dependencies
1.13.1 π Bugfixes
2024-11-10
β π GitHub release β
π Bug fixes
- Fixed erroneous logging for some old firmware versions
1.13.0 βοΈ DSL support and connection improvements
2024-09-07
β π GitHub release β
π Features
- Added new
AsusData.DSLstate (by @GaryHuang-ASUS) - Added DSL endpoint check for the identity
- Improved session management in the connection module
- Improved initialization of the connection module
π¦ Dependencies
- Bumped
python-dateutilto2.9.0.post0
1.12.2 π» Firmware handling improvements
2024-08-28
β π GitHub release β
π Features
- Improved beta flag handling in firmware strings
1.12.1 π Bugfixes
2024-08-28
β π GitHub release β
π Bug fixes
- Fixed blocking call when fetching Aura data on non-Aura devices
1.12.0 π¨ Aura support & firmware improvements
2024-08-28
β π GitHub release β
π Features
- Added Aura RGB support (
auramodule) - Upgraded
firmwaremodule - Migrated
AsusSystemupdate and upgrade members to the new format (non-breaking change)
π Bug fixes
- Fixed unsafe int conversion in the
onboardingmodule
π¨ Testing
- Added mypy type checking settings
π¨ Other changes
- Fixed typo in the
AsusSystemenum (by @TheCjw) - Removed code duplication in the generic
readfunction of endpoints
π£ GitHub
- Added templates for issue reports
π Documentation
- Added better code example to the README (by @tomer-w)
- Added AsusRouter logo
- Updated supported devices
1.11.0 Ping-ping & JSON fixes
2024-05-28
β π GitHub release β
π Features
- Added possibility to force request type for aiohttp with
asusrouter.const.RequestType.POSTandGETare available - Added custom
requestargument support forAsusRouter.async_get_data(any dict). - Added
AsusData.PINGstate to to ping a device or get the last ping result (request is required to get result)request = {"type": $type$, "target": $domain$}typeis one of:0(get data),1(ping, loss, jitter),2(ping only)targetcan be a domain or IP address
π Bug fixes
- Fixed JSON parsing for missing values
π Documentation
- Updated supported devices
1.10.0 π¨ AiMesh, threading & logging
2024-05-21
β π GitHub release β
π Features
- Import modules in a separate thread to avoid blocking the main thread
- Improved logging on the exceptions
- Added support for AiMesh reboot via
AsusSystem.AIMESH_REBOOTstate - Moved AiMesh rebuild to
AsusSystem.AIMESH_REBUILDstate
β°οΈ Deprecation
- Marked
AsusSystem.REBUILD_AIMESHas deprecated. The newAsusSystem.AIMESH_REBUILDshould be used instead. There is no yet defined version of removal, but its usage will cause a warning in the logs.
1.9.0 π€ Merlin 388.7 support
2024-05-01
β π GitHub release β
π Features
- Added support for the new sysinfo layout with Merlin
388.7
1.8.0 π» Firmware control & quality features
2024-03-20
β π GitHub release β
π Features
- Added
AsusSystem.FIRMWARE_UPGRADE(no feedback) state to install a new firmware from web (if available). The firmware will be installed in the background and the device will reboot after the installation. - Added
AsusSystem.FIRMWARE_CHECK(no feedback) state to check for a new firmware. - Added support for release note in the non-AiMesh mode to support more devices.
π Bug fixes
- Added a check on the VPNC client data availability before processing it
- Added explicit string conversion on saving parent control rules
1.7.0 π Unbind client forcing & more system services
2024-02-15
β π GitHub release β
π Features
- Added more system services (
AsusSystem.{x}). Refer to the code for the full list - Added handling of the unknown port types in the legacy endpoint
- Removed
force_clientsfrom clients poll (non-breaking) - Added FW release note when available
π Bug fixes
- Fixed issue with unknown port types in the legacy endpoint
π¦ Dependencies
- Fixed
pytestto7.4.4untilpytest-asynciobecomes compatible
1.6.1 π Model name and identity
2023-12-31
β π GitHub release β
π Features
- Get model name for identity from onboarding (if available) to correspond to the
UI Model Namein Web UI - Added
product_idto identity
1.6.0 π£ Parental control & clients stability
2023-12-31
β π GitHub release β
π Features
- Added
AsusSystem.REBUILD_AIMESHstate to start AiMesh optimization - Added
int_as_bitsandint_as_capabilitiesconverters - Added
AccessPointdataclass - Added support for ports when using modern endpoint for
AsusData.PORTS:- Monitor the main (default, no arguments), selected (providing
device = MAC_ADDRESS) or all (device = "all") AiMesh node(s) PortSpeedmembers:LINK_10(10 Mb/s),LINK_5000(5 Gb/s)USBSpeedmembers:USB_20(480 Mb/s),USB_30(5 Gb/s),USB_31(10 Gb/s),USB_32(20 Gb/s)PortTypemembers:MOCA,SFPP(implemented)POWERLINE(planned)
PortCapabilitymembers:WAN,LAN,GAME,PLC,WAN2,WAN3,SFPP,USB,MOBILE,WANLAN,MOCA,IPTV_BRIDGE,IPTV_VOIP,IPTV_STB,DUALWAN_SECONDARY,DUALWAN_PRIMIRY
- Monitor the main (default, no arguments), selected (providing
- Added support for ports when using legacy endpoint for
AsusData.PORTS:PortSpeedmembers:LINK_10(10 Mb/s),LINK_5000(5 Gb/s),LINK_10000(10 Gb/s)
- Added parental control rule features:
- Allowed
ParentalControlRuleto be sent as a state toAsusRouter.async_set_state - Added
PCRuleTypeenum with members:DISABLE,BLOCK,TIMEcorresponding to the rule types - using any of them as the rule type will add or update the ruleREMOVE- using this as a type will remove the rule for a corresponding MAC address
- Allowed
- Switched to creation of a new session if the old one is not available anymore
π Bug fixes
- Fixed issue on the client status detection when AiMesh is supported but no nodes assigned
π¨ Other changes
- Moved and refactored all the parental control rules processing to be in
asusrouter.modules.parental_controlmodule
π Documentation
- Confirmed support for the new device
GT-AX11000 Pro/388.24198RT-AX88U Pro/388.4_0(Merlin)Zen WiFi ET8/388.23759Zen WiFi Pro ET12/388.23013
- Confirmed support for the new FW versions which were not reported before:
4G-AX55U/380.8102GT-AX11000/388.4_0(Merlin)RT-AC88U/386.12_2RT-AX55/386.52041RT-AX56U/388.1_0(Merlin),388.2_2(Merlin)RT-AX58U/388.4_0(Merlin)RT-AX86U/388.4_0(Merlin)TUF-AX5400/388.23285,388.4_0(Merlin)
1.5.0 π» Clients tracking & multiple instances improvements
2023-12-24
β π GitHub release β
π Features
- Improved client status detection
π Bug fixes
- Fixed issue with data mix in cache when multiple instances are used
1.4.0 π¨ Tests and updates to workflows
2023-12-21
β π GitHub release β
π Features
- Added WLAN rename (
5ghz2 -> 6ghz) forRT-AXE95Q(ZenWiFi ET8)
π¨ Testing
- Added tests for:
asusrouter.modules.endpoint.onboarding
π£ GitHub
- Updated code coverage CI workflow
- Bumped
actions/setup-pythonto5.0.0 - Bumped
actions/download-artifactto4.0.0,4.1.0 - Bumped
actions/upload-artifactto4.0.0
1.3.0 π¨ More tests and improvements
2023-12-03
β π GitHub release β
π Features
- Added
get_argumentsconverter - Added support for
l2pt,pptpandsurfsharkVPNs as part ofvpncmodule - Added WLAN rename when indeces are not in the expected order (e.g.
6ghzis present, but not5ghz2) - Added
AsusBlockAllstate for the general internet access block
π Bug fixes
- Switched to keyword arguments in
AsusRouter.keep_statecall
π¨ Testing
- Added tests for:
asusrouter.modules.clientasusrouter.modules.ledasusrouter.modules.openvpnasusrouter.modules.parental_controlasusrouter.modules.port_forwardingasusrouter.modules.stateasusrouter.modules.systemasusrouter.modules.vpncasusrouter.modules.wireguardasusrouter.modules.wlan
π¨ Other changes
- Refactored:
- All the modules listed above in the testing section
AsusRouter.async_set_stateto usekwargs
π Documentation
- Added Python Library section with a short manual on how to use the library
1.2.0 π» Force clients update, services & more
2023-11-23
β π GitHub release β
π Features
- Added
AsusSystem.UPDATE_CLIENTSstate and compatible service - Added
force_clientspossibility on eachAsusData.CLIENTSqueue - Added runtime-available
set_force_clients()method for setting both state and wait time of the feature - Added new
AsusSystemstates:RESTART_CHPASS,RESTART_DNSMASQ,RESTART_LEDS,RESTART_OPENVPND,RESTART_SAMBA,RESTART_TIME,RESTART_USB_IDLE,RESTART_VPNC,RESTART_WGS,STOP_OPENVPND,STOP_VPNC - Added new
.tools.converters:safe_timestamp_to_utc,safe_utc_to_timestamp,safe_utc_to_timestamp_milli - Added
AsusData.SPEEDTESTandAsusData.SPEEDTEST_RESULT
π¨ Testing
- Added tests for
asusrouter.modules.service
π¨ Other changes
- Improved exceptions messages
π£ GitHub
- Updated CI workflow to be more modular and allow parallel unit- and device-testing
- Added testing with
Python 3.12
1.1.2 π©Ή
2023-11-21
β π GitHub release β
π Bug fixes
- Fixed reboot flag not being reset
- Fixed connection type code
π¨ Testing
- Added tests for the connection module
π Documentation
- Updated supported devices
1.1.1 π©Ή
2023-11-20
β π GitHub release β
π Bug fixes
- Removed WireGuard and VPNC data maps for version below 388
π¨ Other changes
- Fixed typo in logging
1.1.0 π VPNs, WANs and tests
2023-11-19
β π GitHub release β
π Features
- Added support for VPN Fusion (stock
388+) - Added support for OpenVPN (stock
388+) - Added support for WireGuard (stock and merlin
388+) - Improved HA converters (+ new
convert_to_ha_datafor proper flattening data) - Added start-up calculated values as
None(CPU) - Added data drop for cases of the same data on multiple endpoints
- Added
dumptools for logging and dumping replies of the device - Small improvements over the code
- Improved logging on connection failure
- Added Dual WAN support
- Added WAN Aggregation support
π Bug fixes
- Fixed error in historic data calculation
- Other minor fixes in data processing
- Blocked request attempts on closed session
- Fixed missing values for OpenVPN client
- Fixed unsafe dict pop
- Fixed missing arguments on state setting
π¨ Testing
- Added unit tests for tools: cleaners, converters, readers, writers
- Added unit tests for some endpoint modules
- Added full device test for RT-AX88U / Merlin / 388
π¨ Other changes
- Minor improvements to logging and code stability
π£ GitHub
- Added testing workflow for all incomming PRs and pushes to the dev / main branch
1.1.0b1
2023-11-13
β π GitHub release β
π Bug fixes
- Fixed missing values for OpenVPN client
- Fixed unsafe dict pop
1.1.0b0
2023-11-12
β π GitHub release β
π Features
- Added support for VPN Fusion (stock
388+) - Added support for OpenVPN (stock
388+) - Added support for WireGuard (stock and merlin
388+) - Improved HA converters (+ new
convert_to_ha_datafor proper flattening data) - Added start-up calculated values as
None(CPU) - Added data drop for cases of the same data on multiple endpoints
- Added
dumptools for logging and dumping replies of the device - Small improvements over the code
- Improved logging on connection failure
- Added Dual WAN support
- Added WAN Aggregation support
π Bug fixes
- Blocked request attempts on closed session
1.0.5 π Error loop fix
2023-11-05
β π GitHub release β
π Bug fixes
- Fixed an infinite loop with authorization error
1.0.4 π More legacy bugfixes
2023-11-04
β π GitHub release β
π Bug fixes
- Fixed bug with 5 GHz clients for older devices
1.0.3 π 380 - 384 bugfixes
2023-11-04
β π GitHub release β
π Bug fixes
- Fixed issue for
380-384FW versions
π£ GitHub
- Updated build and release workflow
1.0.2 π Better features for older devices
2023-11-03
β π GitHub release β
π Features
- Added parsing for the legacy format of
Update Clientsendpoint
π Bug fixes
- Improved temperature reading code to prevent errors with older FW
1.0.1 π Bugfix / FW 380
2023-11-02
β π GitHub release β
π Bug fixes
- Fixed identity error on 380 FW
1.0.0 π¨ New core
2023-11-01
β π GitHub release β
This release brings a fully-rebuild core of the library, making it faster and simpler.
π₯ Breaking
- Python
3.11+is now required
π Features
- Added error codes 9, 10 and 11 reported by device
- Improved FW processing for different generations
- Improved clients monitoring
- Added USB WAN data recovery when interface is off
- Added network speed values on first empty run
- Added proper timeout when login blocked
π Bug fixes
- Improved JSON parsing
- Added UnicodeDecodeError ignore on reading content
π Documentation
- Confirmed support for device / firmware:
DSL-AC68U/386.50117RT-AC66U B1/386.51255RT-AC86U/386.49709RT-AC88U/386.48260,386.5_0RT-AX58U/388.22237RT-AX86U Pro/388.23565RT-AX88U/388.24198,388.2_0,388.4_0RT-AXE7800/388_22068TUF-AX5400/388.22525TUF-AX6000/388.32432TUF-AX3000 V2/388.23785ZenWiFi AX (XT8)/388.23285ZenWiFi XT9/388_23285