diff --git a/.claude/skills/unifi-wifi/scripts/coverage-thin.sh b/.claude/skills/unifi-wifi/scripts/coverage-thin.sh index d699158..a001261 100644 --- a/.claude/skills/unifi-wifi/scripts/coverage-thin.sh +++ b/.claude/skills/unifi-wifi/scripts/coverage-thin.sh @@ -124,13 +124,11 @@ def chans(setlist): print(f"\nco-channel 2.4 radios BEFORE: {chans(nodes)}") print(f"co-channel 2.4 radios AFTER : {chans(keep)}") print(f"\nESTIMATE: ~{intf_removed:.0f} interference-airtime points removed from the air ({len(disabled)} fewer contending 2.4 radios).") -print("APPLY (per zone, one at a time, validate before+after with watch-ap/live-stats):") -seen=set() +print("APPLY -- PER AP (do NOT use --zone disable; that turns off the WHOLE floor, not this subset).") +print("One at a time; after each, confirm a kept neighbor took its clients + no dead spot, then continue:") for a in disabled: - z=ap[a]['zone'] - if z in seen: continue - seen.add(z) - print(f" bash .claude/skills/unifi-wifi/scripts/apply-radio.sh ng disable --zone \"{z}\" # then re-measure") + print(f" bash .claude/skills/unifi-wifi/scripts/apply-radio.sh ng disable --ap \"{a}\" --apply # {ap[a]['zone']}") +print("[rollback] re-enable any AP: apply-radio.sh ng enable --ap \"\" --apply (rollback json in .claude/tmp).") print("[note] coverage proven by AP-to-AP 2.4 SNR (APs hearing each other), a proxy for client-level overlap.") -print(" Disable one zone, watch a kept neighbor absorb the load + check no dead spot, before the next.") +print(" Tip: power-down the busy/high-client members instead of disabling; disable the low-client redundant ones.") PY