I've been fighting with my AiMesh for quite a while with clients not on the optimal AiMesh node
Issue:
I run with a hardwired Backhaul
I have about 50 clients and two AX88U's running Merlin
I do run with split SSID's (2.4Ghz and 5.0Ghz) all the problems exist even with "Smart Connect" (one SSID for both)
I'd have situations where I'd see clients on absolutely the wrong node (connection with have to pass one node to reach the further node it connected to)
It's mainly due to boot up order, that the main AX88U comes up first, a whole bunch of clients end up on that router then the Slave AiMesh node comes up a couple minutes later
So I end up with like 45 devices on Main AX88U and 5 on the Slave AX88U
The smarter devices (e.g. phones and computers) would migrate to the best node, but a lot of dumb devices would stick. So next day it might be
40 and 10, still very lopsided
I have, lot's of smart devices, smart appliances, echo shows, 4 macs and many other iDevices, and a boat load of phones (I'm a mobile developer)
Oh and a Tesla that needs good wifi in the garage which is what started this whole mess
I hardwire as much as I can
1) AX88U is in the cellar in the ceiling in the corner closest to the Garage
2) AX88U is on main floor in a closet almost on the extreme the end of the house about 45 ft away (away from the garage)
Experimenting:
For grins, I turned off Hardwired Backhaul and instantly everything was like 20 and 30 (as they should be) and all the closest clients were on the correct node.
OMG, the back haul is broken. So I turn it back on, and every thing was still balanced.
So it's not the hardwire Backhaul, it's from flipping the switch, that causes it to drop all wifi clients and let everything reconnect with both nodes fully up.
Unrelated learnings:
Binding works like SH*T (it just stops things from rebalancing) [didn't retry binding after I came up with the work around below]
If you do use binding and want to move a client to another node, ignore the low power warning message, which is bogus
Optimize seemed useless too. If you ran Optimize (hardwired backhaul off) it ran a lot like a fresh boot that everything would connect to the primary first.
Flipping the hardwired backhaul switch was the best "Optimization" I could do
Pretty disappointed that ASUS does this and I may look elsewhere next time around
Solution:
How can I automate simulating flipping that hardwired backhaul switch? like this
This may require Merlin
Setup a boot script that does /sbin/service restart_wireless a couple minutes after router boots
It needs to be done TWICE, it partially rebalances the first time, but the 2nd time it seems to be fully balanced (i.e. fully optimized)
So there are two scripts, one to restart wireless twice and another to run that script 2 minutes after boot and set up a cron job to run that script once a day
The cron job might be overkill, but won't hurt.
Scheduled Reboot will NOT solve this, if anything it will make it worse and make you regularly unbalanced (i.e. unoptimized)
If anyone knows a better way to resolve this, let me know
In Administration
Enable jffs
Enabled ssh
ssh [email protected]
cat << 'EOF' > /jffs/scripts/services-start
#!/bin/sh
# --- Schedule nightly WiFi reset at 3:00 AM ---
cru a WiFiReset "0 3 * * * /jffs/scripts/wifi_reset.sh"
# --- Run once 2 minutes after boot ---
(
sleep 120
/jffs/scripts/wifi_reset.sh
) &
EOF
chmod 755 /jffs/scripts/services-start
cat << 'EOF' > /jffs/scripts/wifi_reset.sh
#!/bin/sh
logger -t wifi_reset "Starting WiFi reset sequence"
logger -t wifi_reset "Restart #1 initiated"
/sbin/service restart_wireless
sleep 60
logger -t wifi_reset "Restart #2 initiated"
/sbin/service restart_wireless
logger -t wifi_reset "WiFi reset sequence complete"
EOF
chmod 755 /jffs/scripts/wifi_reset.sh
This is an alternative to the above two scripts, If you don't want the cron job then just do this:
cat << 'EOF' > /jffs/scripts/services-start
#!/bin/sh
# Run everything inside a background subshell
(
# Wait 2 minutes after boot
sleep 120
logger -t wifi_reset "Starting WiFi reset sequence"
# First wireless restart
logger -t wifi_reset "Restart #1 initiated"
/sbin/service restart_wireless
# Wait 60 seconds
sleep 60
# Second wireless restart
logger -t wifi_reset "Restart #2 initiated"
/sbin/service restart_wireless
logger -t wifi_reset "WiFi reset sequence complete"
) &
EOF
chmod 755 /jffs/scripts/services-start
Issue:
I run with a hardwired Backhaul
I have about 50 clients and two AX88U's running Merlin
I do run with split SSID's (2.4Ghz and 5.0Ghz) all the problems exist even with "Smart Connect" (one SSID for both)
I'd have situations where I'd see clients on absolutely the wrong node (connection with have to pass one node to reach the further node it connected to)
It's mainly due to boot up order, that the main AX88U comes up first, a whole bunch of clients end up on that router then the Slave AiMesh node comes up a couple minutes later
So I end up with like 45 devices on Main AX88U and 5 on the Slave AX88U
The smarter devices (e.g. phones and computers) would migrate to the best node, but a lot of dumb devices would stick. So next day it might be
40 and 10, still very lopsided
I have, lot's of smart devices, smart appliances, echo shows, 4 macs and many other iDevices, and a boat load of phones (I'm a mobile developer)
Oh and a Tesla that needs good wifi in the garage which is what started this whole mess
I hardwire as much as I can
1) AX88U is in the cellar in the ceiling in the corner closest to the Garage
2) AX88U is on main floor in a closet almost on the extreme the end of the house about 45 ft away (away from the garage)
Experimenting:
For grins, I turned off Hardwired Backhaul and instantly everything was like 20 and 30 (as they should be) and all the closest clients were on the correct node.
OMG, the back haul is broken. So I turn it back on, and every thing was still balanced.
So it's not the hardwire Backhaul, it's from flipping the switch, that causes it to drop all wifi clients and let everything reconnect with both nodes fully up.
Unrelated learnings:
Binding works like SH*T (it just stops things from rebalancing) [didn't retry binding after I came up with the work around below]
If you do use binding and want to move a client to another node, ignore the low power warning message, which is bogus
Optimize seemed useless too. If you ran Optimize (hardwired backhaul off) it ran a lot like a fresh boot that everything would connect to the primary first.
Flipping the hardwired backhaul switch was the best "Optimization" I could do
Pretty disappointed that ASUS does this and I may look elsewhere next time around
Solution:
How can I automate simulating flipping that hardwired backhaul switch? like this
This may require Merlin
Setup a boot script that does /sbin/service restart_wireless a couple minutes after router boots
It needs to be done TWICE, it partially rebalances the first time, but the 2nd time it seems to be fully balanced (i.e. fully optimized)
So there are two scripts, one to restart wireless twice and another to run that script 2 minutes after boot and set up a cron job to run that script once a day
The cron job might be overkill, but won't hurt.
Scheduled Reboot will NOT solve this, if anything it will make it worse and make you regularly unbalanced (i.e. unoptimized)
If anyone knows a better way to resolve this, let me know
In Administration
Enable jffs
Enabled ssh
ssh [email protected]
cat << 'EOF' > /jffs/scripts/services-start
#!/bin/sh
# --- Schedule nightly WiFi reset at 3:00 AM ---
cru a WiFiReset "0 3 * * * /jffs/scripts/wifi_reset.sh"
# --- Run once 2 minutes after boot ---
(
sleep 120
/jffs/scripts/wifi_reset.sh
) &
EOF
chmod 755 /jffs/scripts/services-start
cat << 'EOF' > /jffs/scripts/wifi_reset.sh
#!/bin/sh
logger -t wifi_reset "Starting WiFi reset sequence"
logger -t wifi_reset "Restart #1 initiated"
/sbin/service restart_wireless
sleep 60
logger -t wifi_reset "Restart #2 initiated"
/sbin/service restart_wireless
logger -t wifi_reset "WiFi reset sequence complete"
EOF
chmod 755 /jffs/scripts/wifi_reset.sh
This is an alternative to the above two scripts, If you don't want the cron job then just do this:
cat << 'EOF' > /jffs/scripts/services-start
#!/bin/sh
# Run everything inside a background subshell
(
# Wait 2 minutes after boot
sleep 120
logger -t wifi_reset "Starting WiFi reset sequence"
# First wireless restart
logger -t wifi_reset "Restart #1 initiated"
/sbin/service restart_wireless
# Wait 60 seconds
sleep 60
# Second wireless restart
logger -t wifi_reset "Restart #2 initiated"
/sbin/service restart_wireless
logger -t wifi_reset "WiFi reset sequence complete"
) &
EOF
chmod 755 /jffs/scripts/services-start
Last edited:
