sync: auto-sync from HOWARD-HOME at 2026-06-15 23:24:56
Author: Howard Enos Machine: HOWARD-HOME Timestamp: 2026-06-15 23:24:56
This commit is contained in:
@@ -227,3 +227,51 @@ real measured RF data that supports a DATA-DRIVEN CHANNEL PLAN. Sample AP 132 (R
|
||||
- [ ] (Howard) has more information to add — pending.
|
||||
- Confirmed env: firmware 8.6.11.18870 on U7-Pro; AP device-auth SSH = uid 0 (root); split-tunnel
|
||||
VPN gives AP reach on 192.168.2.x/3.x (192.168.0.x shadowed by home LAN).
|
||||
|
||||
---
|
||||
|
||||
## Update: 23:24 PT — BREAKTHROUGH: AP-to-AP SNR matrix IS obtainable; neighbor-collect.sh built; disables now data-supportable
|
||||
|
||||
**REVERSES the earlier "AP-neighbor table unobtainable / disables not data-supportable" conclusion.**
|
||||
The data DOES exist — not via any controller API/DB (all of which filter our managed APs) but on
|
||||
each AP in `/proc`, populated NON-DISRUPTIVELY by UniFi's background RRM scanning:
|
||||
- `/proc/ui_neighbor/ess_ap_list` — full list of managed APs this AP hears (serial/band/channel)
|
||||
- `/proc/ui_neighbor/ssid/<n>` — same neighbors WITH SNR (per scan-vap, per band)
|
||||
Discovered via `strings $(which mcad) | grep neighbor` → `/proc/ui_neighbor/ess_ap_list` +
|
||||
`load_ssid_neighbor_cache`. `/proc/ui_neighbor` exists on every UniFi AP → fleet-generic.
|
||||
|
||||
### NEW: .claude/skills/unifi-wifi/scripts/neighbor-collect.sh (built + validated, Mike notified 3dbe2437)
|
||||
Logs into controller for the mac/bssid->AP-name map, SSHes each online AP (sshpass OR SSH_ASKPASS
|
||||
fallback), reads `/proc/ui_neighbor`, maps neighbors to AP names, emits the AP-to-AP SNR adjacency
|
||||
matrix + a redundancy summary (APs heard by >=2 neighbors at SNR>=N = power-down/disable candidates).
|
||||
Usage: `neighbor-collect.sh <site> [ap-ssh-vault-path] [snr_min]`. Run FOREGROUND.
|
||||
**Validated on Cascades: 74/74 APs reporting.** Physically sensible (115<->116 SNR 63, 121<->221
|
||||
SNR 65 = adjacent). Redundancy: **73/74 APs have >=2 strong (SNR>=20) 2.4GHz neighbors**, 72/74 on
|
||||
5GHz, 65/74 on 6GHz → nearly every AP is coverage-redundant on 2.4 → aggressive 2.4 pruning is
|
||||
data-supported, and individual radio DISABLES are now decidable from data.
|
||||
|
||||
### Three bugs found+fixed building it (apply to any loop-over-AP script)
|
||||
1. Python wrote the AP-list temp file in Windows TEXT mode -> CRLF -> bash `read` left `\r` on the
|
||||
IP -> ssh "hostname contains invalid characters" on EVERY AP (the "reachable 0" symptom). Fix:
|
||||
`open(...,newline='\n')` + `ip="${ip%$'\r'}"` strip in the read loop.
|
||||
2. Must run FOREGROUND — a fully detached background process can't spawn the SSH_ASKPASS helper
|
||||
(both background runs got reachable 0; foreground after the CRLF fix got 74).
|
||||
3. `ssh` in a `while read` loop needs `</dev/null` or it consumes the loop's stdin.
|
||||
|
||||
### Skill capability assessment (Howard: "must work for ALL clients / any unifi issue")
|
||||
For WiFi/RF, the skill now gathers essentially everything obtainable, all site-parameterized
|
||||
(works for any of the 49 UOS sites): config (uos-mongo), live per-AP+per-client (live-stats),
|
||||
interference (audit-site + neighbor-collect), per-AP ground truth (watch-ap: mca-dump/iw survey),
|
||||
the AP-to-AP SNR matrix (neighbor-collect), and gated apply (apply-radio). Per-client gap:
|
||||
watch-ap/neighbor-collect default the AP device-auth cred to cascades — other clients need their
|
||||
own `clients/<x>/unifi-ap-ssh` vaulted (overridable via arg). Out of current scope (it's
|
||||
unifi-WIFI): switch/PoE, gateway/WAN/firewall, adoption — reachable via the same access layer
|
||||
(uos-mongo/controller API/device SSH) but not yet wrapped as scripts.
|
||||
|
||||
### Pending follow-ups
|
||||
- [ ] Wire neighbor-collect redundancy output into optimize-radios.sh (data-backed disables).
|
||||
- [ ] Fold survey-dump (per-channel busy/noise) + dmesg DFS-radar recipes into the skill as
|
||||
reusable collectors (the two ad-hoc datasets from this session).
|
||||
- [ ] Per-client AP device-auth creds for other clients when extending beyond Cascades.
|
||||
- [ ] Floor-4 2.4 power-down pilot (still the next live change; nothing applied yet).
|
||||
- Coord this update: neighbor-collect.sh announce 3dbe2437.
|
||||
|
||||
Reference in New Issue
Block a user