[Custom component] AsusRouter integration

@jhummel, great, that it works for you now :+1:


:book:

While the work on AsusRouter never stops (even though is slowing down when there is no free time in my life, there might be something useful for users of the multi-gig routers who want to use all the fast ports for LAN. An example of GT-AX11000 Pro with 2.5 + 10 Gbps ports both in LAN + 1 Gbps remapped to WAN. Potentially applicable to other routers as well

For those who don’t like to read, at the end there is a recap of what to do in several simple steps

1 Like

0.31.0 :rocket: Merlin 388.7 support

2024-05-01

:octopus: GitHub release ←

:rocket: Features

  • Added support for Merlin 388.7

:package: Dependencies

  • Bumped asusrouter library to 1.9.0

:coffee: Support AsusRouter

Monetary support:

Non-monetary support:

2 Likes

Great, rt-ax88U pro now works. Thanks!
But, i have a strange situation…
i have rt-ax88 pro as main router (on IP 192.168.0.1) and two AP’s (RT-AC86U) on IP’s 2 and 3. When i add those two their entities are mixed into both… on “hubs” page they are correctly stated as 192.168.0.2 and 3, entities are also correctly generated (i have “button.rt_ac86u_reboot” and “button rt_ac86u_reboot_2” etc), number of entities is also correct on this page, but when i click on either one of them all entities from both AP’s are shown - so each name is doubled (see picture). When i want to rename one device they are both renamed - if i agree to rename all sensors with renaming device again all sensors are renamed from both devices.
What’s also weird that i have some sensors from my main router here…? (bottom of my pic)

Any clues what can be wrong? Do i have just “bad luck” by having two identical routers as AP?
Note that i don’t have them in AiMesh, i just have devices as AP.

It is not related to having 2 devices of the same model, but with the way the integration realises these are actually 2 separate devices. I have an RT-AX88U and a RT-AC87U which appear as the same device, as is your case. I also had 2 TUF-AX5400 which appeared as separate devices.

Well, the point is that integeration “kind of” realises that they are two integrations - it creates two hubs, but “kinda” doesn’t, since when i rename one device both are renamed into same name (with all sensors from both devices)…

With latest HSA 2025.5.0 I see this error when restart HA:

2024-05-02 09:24:08.260 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry 192.168.100.1 for asusrouter
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 575, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/asusrouter/__init__.py", line 27, in async_setup_entry
    await router.setup()
  File "/config/custom_components/asusrouter/router.py", line 413, in setup
    await self.update_pc_rules()
  File "/config/custom_components/asusrouter/router.py", line 706, in update_pc_rules
    await self.bridge._get_data_parental_control()  # pylint: disable=protected-access
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/asusrouter/bridge.py", line 348, in _get_data_parental_control
    return await self._get_data(
           ^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/asusrouter/bridge.py", line 274, in _get_data
    return process(raw)
           ^^^^^^^^^^^^
  File "/config/custom_components/asusrouter/bridge.py", line 421, in _process_data_parental_control
    rules = raw.get("rules")
            ^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'

0.32.0 :hammer: AiMesh improvement and HA fixes

2024-05-21

:octopus: GitHub release ←

:rocket: Features

  • Added support for the full AiMesh reboot with button.{}_reboot_aimesh entity
  • Improved logging on connection errors

:bug: Bug fixes

  • Fixed the blocking function call which was logging a warning in HA logs since 2024.5.x (report #823)
  • Improved handling of empty data (report #C756)

:package: Dependencies

  • Bumped asusrouter library to 1.10.0

:coffee: Support AsusRouter

Monetary support:

Non-monetary support:


@poudenes, the issue should be fixed now. Please, check it


@Protoncek, @mihsu81, unfortunately, a multi-device setup is still not working properly in some cases. Mostly happens with 2 of the same models, but sometimes with different ones as well. Due to the lack of any device pair, I cannot yet promise any timeframe for the fix.


If you experience any issue with AsusRouter, please, open an issue on GitHub. Currently, I have a rather limited amount of time to check the forum (and GitHub as well) due to some personal reasons. But on GitHub, at least tracking the issues I haven’t yet answered to is easier to handle

2 Likes

Thanks, i went back to AiMesh config anyway, since i found out that my iot devices work better in aimesh than in AP mode, and here i have all my devices shown correctly.

Only thing i miss now are temperatures of mesh devices (only main temp’s are shown)… but that’s not so big deal.

1 Like

0.32.1 :bug: JSON fixes & documentation

2024-05-28

:octopus: GitHub release ←

:bug: Bug fixes

  • Fixed JSON parsing for missing values (report #832)

:books: Documentation

  • Added info on HTTPS connection as a preferred method for the integration
  • Added info on the number of connected clients and its correspondence to the Web UI
  • Updated supported devices

:package: Dependencies

  • Bumped asusrouter library to 1.11.0

:coffee: Support AsusRouter

Monetary support:

Non-monetary support:

1 Like

Hello,

as suggested in a topic I recently open, I’d want to know if there will be the chance to implement the sensors which read the dsl features.
If I connect to my modem and go into the menu and click first on “1”, then on “2”, I see the real speed of my internet connection (“3”), that in this moment is 151619 kbps in download and 21600 kbps in upload:

So it would be nice if the integration could also read those two parameters.

Anyone else experiencing issues where after a random amount of hours the integration can no longer connect with the router?

I had to start from scratch a few weeks ago, but for the life of me I can’t get any of the Asuswrt integrations to behave stable. Thought it was integration related, so tried Asus Router this time, but same behaviour.

Last night this happend:

Logger: custom_components.asusrouter.router
Bron: custom_components/asusrouter/router.py:492
integratie: AsusRouter (documentatie, problemen)
Eerst voorgekomen: 03:15:51 (1 gebeurtenissen)
Laatst gelogd: 03:15:51

Cannot get clients from ‘192.168.0.2’: (‘Reached maximum allowed timeout for a single connection attempt: 425.0. The last error: (“Cannot connect to 192.168.0.2 on port 8443. Failed in _send_request with error: Cannot connect to host 192.168.0.2:8443 ssl:False [Connect call failed ('192.168.0.2', 8443)]”, None)’, None)

After that I’m unable to reload the integration and I have to reboot the router to get it to work again… Router is an AX88U on latest stable merlin version.

I’m really puzzled as nothing has changed on the router/network side of things.

Hello all,
Thank you for this great integration. Brilliant work. I have a new zenwifi mesh system since i got very annoyed with the Tplink X60.

It all works fine. I managed to get all 100+ devices in a tracker and a table. And all the upload and download speeds and other info shows up perfectly.

Except all my wired devices. They don’t show up and download speeds. All other attributes work fine.
They are simply not in the attribute of the tracked device.

Can anyone help me with solving this, if it is at all possible?

I’ve just bought a pair of ET12 mesh routers and got them set up without issue however I’m struggling to get WireGuard client info into HA. Clients set up and working no problem but not displaying correctly in HA, missing all attributes.

I’ve scanned over this thread and saw a comment around OpenVPN showing client connection status etc but nothing for a WireGuard clients.

Anyone help?


Hi Guys,

I’m on Asus GT-BE98 with Stock firmware, I was able to configure the integration everything seems to be working as intended, How ever I’m not able to see / control the 6Ghz band radio, Can some one guide me how can I configure it manually ?

image

In the documentation I see that the 6Ghz band is controllable, but I’m not sure how I can do that.

Hello, guys.

Link to open a new issue: New Issue · Vaskivskyi/ha-asusrouter (github.com) (so that I don’t paste it several times in a single post)


@PyroPath, you would need to check in the router logs, what happens around the time when neither AsusRouter nor AsusWRT integrations cannot connect to the router anymore. Might be, that HTTP daemon gets stuck in some weird state. If you would like to try more with AsusRouter, please, open a new Issue on GitHub - I will try to guide you and help with troubleshooting.


@yngwiebach, integration cannot provide speeds for the wired clients - the same is the reason why Web UI does not show anything in the network map client list. Please, keep in mind that the speed for the wireless devices is just what is “agreed on” between devices. This is not the actual speed of data transfer between the device and router.

If you think, there is the info you need in any place of Web UI or mobile Asus app, please open a feature request (same link as for issues). If it’s there, it can be added to the integration


@myromeo, please provide the FW version you are using. WireGuard way of work varies a lot between the versions (and stock / Merlin). For troubleshooting I would strongly advice opening an issue in GitHub repo, so that we can keep track on the progress


@Hitesh_Singh, AsusRouter was not yet tested with the new WiFi 7 devices. And I don’t have access to any such device for tests. If you don’t mind, please open an issue in the repository (link above), so that we can check what’s needed to make it work. Probably, just some WLAN index is different for the new devices

@Vaskivskyi on stock firmware (no Merlin for my model), version is 3.0.0.4.388_24542

I recently turned off (safe shutdown and disconnect from power) the RPi running HA, and my router to move stuff around.

Once I got it al back up and running the integration stopped working. I removed it, rebooted the router, and tried adding the integration again.

Error log and device info below. Any ideas what might be the cause?

Logger: custom_components.asusrouter.config_flow
Source: custom_components/asusrouter/config_flow.py:269
integration: AsusRouter (documentation, issues)
First occurred: 22:44:40 (1 occurrences)
Last logged: 22:44:40

Unknown error of type '<class 'asusrouter.error.AsusRouterTimeoutError'>' during connection to `192.168.1.1`: ('Reached maximum allowed timeout for a single connection attempt: 425.0. The last error: ("Cannot connect to `192.168.1.1` on port `8443`. Failed in `_send_request` with error: `Cannot connect to host 192.168.1.1:8443 ssl:False [Connect call failed (\'192.168.1.1\', 8443)]`", None)', None)

Router

RT-AC68U
Merlin 386.13

HA

Core
2024.8.0
Supervisor
2024.08.0
Operating System
12.4
Frontend
20240806.1

Just to follow up, I did a firmware update to my router and still no luck.

Now running Merlin 386.14

0.33.x :rotating_light: Aura support & firmware improvements

2024-08-28

:octopus: GitHub release ←

0.33.0

2024-08-28

:rocket: Features

  • Added sensor with the number of clients connected to guest networks via sensor.{}_connected_guestnetwork_devices (by @GaryHuang-ASUS)
  • Added Aura RGB support:
    • light.{}_aura entity for the global colour/brightness control (as single-zone light)
    • light.{}_aura_zone_{} for the per-zone colour/brightness control (disabled by default to avoid cluttering the UI when not needed)
    • full effects support (Gradient, Static, Breathing, Evolution, Rainbow, Wave, Marquee)
  • Improved handling of client entities
  • Switched to the new firmware backend:
    • better support for different formats on FW branches (Stock, Merlin, Gnuton)
    • improved version comparison
    • added update.{}_firmware_update_beta entity for the beta firmware updates (disabled by default)
  • Changed the default update time for the update entities to 10 minutes (can be changed in the integration settings in the same way as before)
  • Updated the asusrouter_device_disconnected event to show the last known guest, guest_id and connection_type attributes

:bug: Bug fixes

  • Fixed issue with some entities being assigned to AsusRouter before their native integrations
  • Fixed issue with the update entity showing:
    • lower beta version as an update
    • version from a different branch (e.g. Stock when on Merlin)
    • _rog and non-_rog FW versions are treated as different (Merlin, Gnuton)
  • Fixed issue with integration blocked by unsafe type conversion on startup

:books: Documentation

  • Added AsusRouter logo
  • Updated supported devices

:package: Dependencies

  • Bumped asusrouter library to 1.12.0

:adhesive_bandage: Patches

0.33.1

2024-08-28

[Bugfix] Fixed blocking call when fetching Aura data on non-Aura devices
[Dependency] Bumped asusrouter library to 1.12.1


:coffee: Support AsusRouter

Monetary support:

Non-monetary support:


@neekulp, your log is saying that you try to connect on port 8443 with the SSL option set to False. Please, check this. If you are using plain HTTP, the default port is 80. For HTTPS the default port is 8443. But you can always check both in the Web UI of your device - Administration - System - Local Access Config


@myromeo, looking into it. I will let you know if any more info is needed from your side

2 Likes

I just updated to the latest version and I am taking the opportunity to ask a question. The ‘problem’ was already before the latest update. I have 7 asus routers in my home (It’s a farm). All connected to HA. But one I never got to see in the list


I am missing 192.168.2.3
If I add it as a HUB, it tells me it is already connected. How do make it visible in this list?