Network Discovery

Discovery answers one question: what's on my network? BareNOC combines the UniFi controller (authoritative where present), ping scans (fallback), and nmap fingerprinting (identification).

Discovery flow

flowchart LR
    UNIFI["UniFi controller"] -->|"rest/user + stat/sta"| CLIENTS["Clients + infra<br/>hostname · MAC · vendor · online"]
    UNIFI -->|"rest/networkconf + wlanconf"| NETS["VLANs / subnets / SSIDs"]
    SCAN[Ping scan 192.168.x.0/24] -->|"fallback (non-UniFi)"| HOSTS[Live hosts]
    CLIENTS --> INV[(Inventory)]
    HOSTS --> INV
    NETS --> Q[Answers: 'what vlans are in use?']
    INV -->|"fingerprint"| ID[Identified devices]

UniFi sync

  • Runs automatically at the configured interval (Settings → UniFi → Auto-sync, 5–60 min) — the manual Sync UniFi button was removed when auto-sync landed.
  • Pulls infrastructure (gateways/switches/APs) and all known clients — including offline ones — merging the full client database (rest/user) with active sessions (stat/sta) for live IPs and status.
  • New clients become unclaimed devices (type guessed from hostname/vendor); managed network gear auto-adopts when the controller connection works (Settings → UniFi → Auto-adopt).
  • You can also ask: "what vlans are on my network?" — the AI Technician answers from the controller (network_info).

Ping scan

The ping sweep (Scan Network) probes the appliance's own /24 (configurable via DISCOVERY_SUBNET in .env, default 192.168.0) for live hosts — used on deployments without a UniFi controller (with UniFi active the button is hidden; the controller is the authoritative source). It creates unclaimed devices with no metadata; fingerprint them to identify.

Fingerprinting

flowchart LR
    IP[Unclaimed IP] -->|"Fingerprint"| SCAN2[nmap top-100 TCP + service detection]
    SCAN2 --> P[Open ports · services · versions]
    PING[ping] --> TTL[TTL → OS guess]
    P --> OUT[identity]
    TTL --> OUT

Fingerprint results (vendor, OS guess, open ports) are stored on the device and shown on its card — so "192.0.2.64" becomes "Proxmox VE server (port 3128)".

Client → port resolution

For wired clients, UniFi reports which switch port they're on. Ask the AI or use the API: GET /api/v1/unifi/client/{ip}/port — e.g. 192.0.2.64 → Mini Rack Switch port 7.